詹金斯版:1.573
Jenkins Xvfb插件版本:1.0.15(最新)
Linux OS :红帽企业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的测试,我正在针对给定的环境/服务器的网站运行,并且这些测试检查该站点的所有内容是否正常工作,即执行登录/注销以及其他一些点击在这里成功了。
由于这些是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 /上运行作业,它工作正常从属实例(注意:目前我已经在同一主服务器上创建了 2 从服务器,但我还有其他单独的服务器,我计划安装更多的服务器)。
当我仅运行 2 同时运行的作业时,我会看到以下其他进程,即每次运行并且作业成功完成。 注意:我在Xvfb插件中的偏移值为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
我尝试运行Jenkins作业的并发运行(成功在主/从服务器上运行Selenium GUI集成/验收测试)。
现在,我想要实现的是来运行这个Jenkins作业的多个并发构建/运行(这样我可以同时运行多个测试,即执行某种类型的基于卷的测试)。 目前,我不想在Selenium Grid服务器上运行这些测试(超出本文的范围)。
我的问题:
1。如果选中“让Xvfb选择显示名称”复选框,则会出现以下错误(此处作业在主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
根据此链接:https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin 让Xvfb选择显示名称使用Xvfb的 -displayfd 选项,通过扫描可用的显示名称来选择自己的显示名称。 此选项需要最新版本的xserver,请检查您的安装是否支持。 如果您不想管理显示号码范围但使用第一个免费显示号码,则非常有用。
2。在上面的快照(Xvfb插件)中,我看到 Xvfb附加选项框,是否有任何我可以尝试的选项,它会告诉Xvfb使用显示#目前尚未使用?
3。好像我需要更新X服务器版本(Xorg -version)。 我该怎么做,我应该运行什么命令?
4. 如果我取消选中上述复选框,并且我运行此Jenkins作业的多个版本(超过2 ) ,如果DISPLAY号码已被使用,则会出现以下错误。 在Xvfb插件中使用该复选框,我试图告诉Xvfb使用空闲列表中的显示号码(如果不可用)。
此错误出现在显示器#1或#2上,具体取决于Xvfb插件如何在Jenkins环境中分配数字(使用节点/从属#等)。
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是成功运行N次构建/运行/测试,没有任何故障。如果由于DISPLAY不可用而重试失败的构建需要,我也可以使用naginator插件。但是,这不是我现在正在看的东西。
答案 0 :(得分:0)
回答时间。
这取决于您的计算机,即您计算机上安装的Xvfb可能没有-displayfd选项(但可能是不同的类似)但Jenkins的Xvfb插件会在您选中该复选框时为您传递。如果可用,请尝试其他选项(请参阅操作系统计算机上的Xvfb帮助或手册页)。现在,我没有使用/选中此复选框。
实际上不需要,因为Xvfb插件会生成一个新实例并指定一个DISPLAY(:NN),其中NN是每个单独运行时自动生成的数字。
我可以使用yum命令。
每次都不会出现此错误。如果发生这种情况并且所有Jenkins作业运行都出现错误,那么您可以运行以下命令来修复它。
/etc/init.d/xvfb stop;睡2; /etc/init.d/xvfb start
要获取xvfb文件的副本,您可以在线获取(其中一些位于/etc/init.d文件夹下的xvfb文件,有更多选项可以停止/启动。
现在,我在其他帖子中提到了我的ACTUAL问题的解决方案(我正在尝试所有问题):Xvfb, Jenkins, Selenium tests - Capture Screenshots of all pages