Xvfb Jenkins 插件:无法识别的选项:-displayfd

Xvfb Jenkins plugin: Unrecognized option: -displayfd

Jenkins 版本:1.573
Jenkins Xvfb 插件 版本:1.0.15(最新)
Linux OS:Red Hat Enterprise Linux 服务器版本 5.9 (Tikanga)

Xorg -version

X Window System Version 7.1.1
Release Date: 12 May 2006
X Protocol Version 11, Revision 0, Release 7.1.1
Build Operating System: Linux 2.6.18-308.13.1.el5 x86_64 Red Hat, Inc.
Current Operating System: Linux kobaloki2 2.6.18-348.16.1.el5 #1 SMP Sat Jul 27 01:05:23 EDT 2013 x86_64
Build Date: 06 November 2012
Build ID: xorg-x11-server 1.1.1-48.100.el5
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present

哪个Xvfb

/usr/bin/Xvfb

我有一些基于 Selenium GUI 的测试,我正在 运行针对给定的 environment/server 网站进行测试,这些测试检查该网站的所有内容是否正常工作即成功地执行登录/注销和其他几次点击。

因为这些是 Selenium GUI 测试,我想在 HEADLESS 模式的机器 (Linux) 上 运行 这些测试,我需要 X显示服务器 (Xvfb)。

我导出 DISPLAY 变量并成功启动 /etc/init。d/xvfb。

root      5996     1  0  2014 ?        00:00:00 /usr/bin/Xvfb :99 -ac -screen 0 1024x768x8

我正在使用 Xvfb 插件,它已成功安装在我的 Jenkins 实例上,并且 Jenkins Global 和 Jenkins 作业级别的配置设置正确,如果我 运行 master/slave 实例上的作业(注意目前我已经在同一个实例上创建了 2 个从属主服务器,但我还有其他独立的服务器,我打算在其中安装更多的从服务器)。

当我 运行 只有 2 个同时 运行 的作业时,我看到以下 additional进程,即每个 运行 并且作业成功完成。 注意: 我在Xvfb插件中的offset值是1,如果我用100,那么下面会分别显示:101和:102

u10003  16264  6921  1 12:56 ?        00:00:01 Xvfb :1 -screen 0 1024x768x8 -fbdir /production/JSlaves/kobaloki2_2/xvfb-2015-02-03_12-56-41-60597.fbdir
u10003  16289  6691  0 12:56 ?        00:00:00 Xvfb :2 -screen 0 1024x768x8 -fbdir /production/JSlaves/kobaloki2_1/xvfb-2015-02-03_12-56-46-7546741396559175462.fbdir

我正在尝试 运行 并发 运行s 的 Jenkins 作业(成功 运行s Selenium GUI Integration/Acceptance在主/从服务器上测试)。

现在,我想要实现的是 到 运行 多个并发 builds/runs 这个 Jenkins 作业(这样我就可以进行多个测试运行同时进行,即执行某种基于体积的测试)。 目前,我不想 运行 在 Selenium Grid 服务器上进行这些测试(超出本 post 的范围)。

我的问题:

1. 如果 "Let Xvfb choose display name" 的复选框被选中,那么我会收到以下错误 (这里的作业 运行 在主 Jenkins 实例上而不是从属实例上,因此 /production/jenkinsAKS/... 基本文件夹)如何让Xvfb成功使用 -displayfd 变量?

13:33:01 Xvfb starting$ Xvfb -displayfd 2 -screen 0 1024x768x8 -fbdir /production/jenkinsAKS/xvfb-2015-02-03_13-33-00-6577455998897275731.fbdir
13:33:01 Unrecognized option: -displayfd

...
....bunch of options for Xvfb command
...
..
13:33:01 Fatal server error:
13:33:01 Unrecognized option: -displayfd
13:33:01 
13:33:11 
13:33:11 ERROR: Xvfb failed to start, consult the lines above for errors

据此link:https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin 让 Xvfb 选择显示名称 使用 Xvfb 的 -displayfd 选项,它通过扫描可用的显示名称来选择自己的显示名称。 此选项需要最新版本的 xserver,请检查您的安装是否支持如果您不想管理显示编号 运行ges 但要使用第一个免费显示编号

2. 在上面的快照(Xvfb 插件)中,我看到 Xvfb 附加选项 框,有没有我可以选择的选项试试哪个会告诉 Xvfb 使用当前未使用的显示器#?

3. 看来我需要更新 X 服务器版本 (Xorg -version)。 我该怎么做,我应该使用什么命令运行?

4. 如果我 取消选中 上面提到的复选框并且如果我 运行 多个构建(超过 2) 的这个 Jenkins 作业,如果 DISPLAY 编号已被使用,我会收到以下错误。 使用 Xvfb 插件中的复选框,我试图告诉 Xvfb 使用空闲列表中的显示号码(如果没有的话)。

根据 Xvfb 插件在 Jenkins 环境中分配数字的方式(使用 node/slave# 等),显示 #1 或 #2 会出现此错误。

13:04:27 Fatal server error:
13:04:27 Server is already active for display 1
13:04:27    If this server is no longer running, remove /tmp/.X1-lock
13:04:27    and start again.
13:04:27 
13:04:27 unlink: No such file or directory
13:04:42 unlink  failed, errno 2
13:04:42 ERROR: Xvfb failed to start, consult the lines above for errors

**How can I get rid of the above error** (seems like when I can resolve bullet 2 above)?

注意:如果我使用单个从属(在同一个主实例或任何其他服务器上)并将执行程序的数量从 1/2 增加到 20 或更多,那么,Xvfb 同时成功 运行ning N 次 builds/runs/测试,没有任何失败。如果由于 DISPLAY 不可用而需要重试失败的构建,我也可以使用 naginator 插件。但是,这不是我这次要看的。

回答时间。

  1. 这取决于您的机器,即您机器上安装的 Xvfb 可能没有 -displayfd 选项(但可能是不同的类似选项)但是当您检查时,Jenkins 中的 Xvfb 插件会为您传递它复选框。如果可用,请尝试不同的选项(请参阅 OS 机器上的 Xvfb 帮助或手册页)。现在,我没有使用/选中此复选框。

  2. 实际上不需要,因为 Xvfb 插件将生成一个新实例并分配一个 DISPLAY (:NN),其中 NN 是每个人自动编号 运行.

  3. 我可以用yum命令了

  4. 这个错误不是每次都出现。如果发生这种情况并且所有 Jenkins 作业 运行 出现错误,那么您可以 运行 以下命令来修复它。

    /etc/init.d/xvfb停止;睡觉 2; /etc/init.d/xvfb开始

要获取 xvfb 文件的副本,您可以在线获取它(其中一些位于 /etc/init.d 文件夹下的 xvfb 文件,有更多选项只是 stop/start.

现在,我的实际问题(我正在尝试一切)的解决方案在其他 post 此处提到: