我们有一些 UI 测试用例,目前正在 Linux 机器上手动调用(启用了 Gnome)。我们登录到机器并运行以下命令:
java -jar test_case.jar
调用测试用例。这将打开浏览器并执行应用程序测试,然后写入日志并退出。
现在我计划在 Jenkins Pipeline Job 中自动执行此操作。但我不确定执行此操作的正确方法是什么,因为我相信 Jenkins Pipeline Job 在伪终端中执行,而我相信上述命令应该在 Gnome 控制台中执行。
有没有办法自动化这个场景?
答案1
Xvfb(X 虚拟帧缓冲区)可用于此目的。它允许您拥有仅存在于内存中的显示,以便可以在不实际使用 GUI 的情况下完成具有图形依赖性的测试/操作。
在 CentOS 上,您可以使用 yum 从核心 CentOS 存储库安装 Xvfb:
yum install xorg-x11-server-Xvfb
安装 Xvfb 后,请在命令前添加前缀以xvfb-run
使用它:
xvfb-run java -jar test_case.jar
xvfb-run
是一个包装命令,可以执行一些有用的操作。首先,它初始化 Xvfb 显示并将其传递给您的命令以供执行。命令运行完成后,显示器也会正常关闭。