当前位置: 首页 > 知识库问答 >
问题:

Selenium在Ubunt服务器16.04上通过Jenkins执行测试,没有GUI(仅限CLI)-HEADLESS MODE

祁通
2023-03-14

我正在通过Jenkins进行Selenium自动化测试。

我已经在我的PC上完成了Jenkins设置,并作为Mavenproject运行测试。它毫无问题地工作。

Jenkins安装在Ubuntu服务器上,没有GUI(仅限CLI)。

> < li>

我在Jenkins中安装了一个附加插件< code>Xvfb

设置全局属性显示:0 IN 詹金斯

也在Ubunt服务器上设置变量

root@jenkins:~# echo $DISPLAY :0

因此,当我通过Jenkins运行selenium脚本时,出现以下错误:

runBrowser(测试用例。所用时间:1.068秒

runBrowser(测试用例。所用时间:0.196秒

结果:

测试失败:ApplicationTableTempl。运行浏览器:31»AWT无法连接到X11窗口服务器u…登录测试。runBrowser:34»NoClassDefFound无法初始化类sun.awt.X。。。

有人建议我如何解决这个问题?

共有3个答案

姚实
2023-03-14

我只是在我的代码中注释出来,现在它不使用这个函数来屏蔽视频记录(startRecording)。看看这里和这里

我试过了:

root@jenkins:~# xhost +

并得到以下回应:

xhost:  unable to open display ":0"

在詹金斯,我得到了以下错误:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Test case = ApplicationTableTempl
browserName = chrome
Starting ChromeDriver 2.23.409687 (c46e862757edc04c06b1bd88724d15a5807b84d1) on port 10447
Only local connections are allowed.
Feb 08, 2017 4:01:31 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[0.219][SEVERE]: Error initializing NSS with a persistent database (sql:/var/lib/jenkins/.pki/nssdb): libsoftokn3.so: cannot open shared object file: No such file or directory
[0.219][SEVERE]: Error initializing NSS without a persistent database: NSS error code: -5925
[0.220][SEVERE]: nss_error=-5925, os_error=0
#0 0x0000004d9d2e <unknown>
#1 0x0000004ab14b <unknown>
#2 0x0000006b42b8 <unknown>
#3 0x00000061eedb <unknown>
#4 0x000000530c67 <unknown>
#5 0x000000516e8b <unknown>
#6 0x000000508aa7 <unknown>
#7 0x000000478d2a <unknown>
#8 0x00000060bb39 <unknown>
#9 0x000000609b44 <unknown>
#10 0x0000004da266 <unknown>
#11 0x0000004acdc5 <unknown>
#12 0x0000004ad0b8 <unknown>
#13 0x0000004ad40b <unknown>
#14 0x0000004af079 <unknown>
#15 0x0000004b9b6e <unknown>
#16 0x0000004cd7e2 <unknown>
#17 0x0000004ca793 <unknown>
#18 0x7fa08ab376ba start_thread
#19 0x7fa08822882d clone

Feb 08, 2017 4:02:31 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
OS = linux, Browser = 
Test case = LoginTest
browserName = firefox
Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 62.272 sec <<< FAILURE! - in TestSuite
runBrowser(testCases.ApplicationTableTempl)  Time elapsed: 61.716 sec  <<< FAILURE!
org.openqa.selenium.NoSuchSessionException: no such session
(Driver info: chromedriver=2.23.409687 (c46e862757edc04c06b1bd88724d15a5807b84d1),platform=Linux 4.4.0-62-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 22 milliseconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'jenkins', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-62-generic', java.version: '1.8.0_121'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{message=unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.23.409687 (c46e862757edc04c06b1bd88724d15a5807b84d1),platform=Linux 4.4.0-62-generic x86_64), platform=ANY}]
Session ID: d438dd092af3c51f3f72ca37527e0e91
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:658)
at org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.maximize(RemoteWebDriver.java:882)
at factory.BrowserFactory.getBrowser(BrowserFactory.java:57)
at testCases.ApplicationTableTempl.runBrowser(ApplicationTableTempl.java:34)

runBrowser(testCases.LoginTest)  Time elapsed: 0.207 sec  <<< FAILURE!
java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
t java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:126)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at java.awt.Toolkit$2.run(Toolkit.java:860)
at java.awt.Toolkit$2.run(Toolkit.java:855)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854)
at utility.Utility.startRecording(Utility.java:183)
at testCases.LoginTest.runBrowser(LoginTest.java:34)


Results :

Failed tests: 
ApplicationTableTempl.runBrowser:34 » NoSuchSession no such session
(Driver ...
LoginTest.runBrowser:34 » AWT Can't connect to X11 window server using ':0' as...
汝楷
2023-03-14

我遇到了类似的问题。我可以通过以root身份登录服务器并执行以下命令来解决它。

$ xhost +
霍浩皛
2023-03-14

看起来根本原因来自您自己的代码:

测试用例.LoginTest.run浏览器 -

移除对< code >实用程序中< code>java.awt.Toolkit的依赖。Utility.startRecording,它应该不会失败。

 类似资料:
  • 目前,我正在做一个项目的自动化,并通过selenium和java编写测试,当我在本地服务器上从Jenkins执行测试时,它工作正常,但在QAT上,我得到了一个error.Previously我已经编写了selenium测试,现在我已经开始使用Jenkins在我的Windows平台上构建和集成Git。 此外,我用于QAT服务器的chrome路径是我已经更改为 System.setProperty(“

  • 我有一台linux机器(比如m1)[一台openStack机器]来运行我的jmeter测试。我的典型过程是将最新的jmx文件放在这台机器上,并在以下命令下触发:nohup/path/to/jmeter/bin/jmeter-n-t/path/to/script/test。jmx-l/path/to/resultsFolder/results。jtl 现在,我想通过jenkins作业触发相同的测试,

  • 我正在尝试在一个使用chrome的Linux服务器上运行一个使用selenium webdriver实现的测试,并且不显示我的java代码 要运行此程序(jar),请使用以下命令启动Xvfb 当我运行程序时,经过一段长时间的等待,我得到了这个异常 当我尝试单独运行chrome时,a遇到了这个问题 问题是: 是在定位驱动程序的问题还是在chrome或我需要一些额外的配置?

  • 我正在使用TestNG、Maven和Jenkins来运行我的代码(Java)。我需要在另一台服务器上运行我的测试,所以到目前为止,我所尝试的是在服务器上运行Jenkins作为服务并安排作业,但它产生了一个问题,即测试在后台运行(导致所有测试失败),我尝试配置此图片中的Jenkins服务:在此输入图像描述 但它不起作用,所以我试着运行Jenkins而不是作为服务,测试运行得很好,但我无法安排作业,因

  • 问题内容: 我们为詹金斯(Jenkins)配置了主从配置。我们的.NET项目由在Windows上运行的从属Jenkins实例构建。 有很多GUI测试,但是,只有在打开远程桌面连接(RDC)会话的情况下,它们才能运行。 尝试在没有RDC的情况下运行测试时,Jenkins并未显示测试的任何进展。但是,然后,我连接到Slave的桌面,可以看到已启动应用程序的主窗口,但是UI测试框架(白色)无法执行任何操

  • 我正在使用testNG框架和ANT任务运行Selenium测试。测试在我的windows机器上运行良好。。然后,我将其部署到我的Jenkins CI服务器上,并为无头运行测试进行必要的配置: > 在运行jenkins(CentOS)的服务器上安装了vnc服务器 为jenkins安装了Xvnc插件,并在我的作业配置中启用了“在构建期间运行Xvnc” 然而,我得到以下错误-任何帮助?我已经搜索了网络,