Selenium Can';t在詹金斯开始量角器e2e试验

Selenium Can';t在詹金斯开始量角器e2e试验,selenium,jenkins,protractor,selenium-chromedriver,Selenium,Jenkins,Protractor,Selenium Chromedriver,版本信息: 色度驱动器:2.33 净现值:5.5.1 nodejs:8.9.0 openjdk版本: 1.8.0141 docker图像:openjdk:8 这是我的问题:我想在Jenkins上用量角器开始e2e测试。我正在运行一个docker容器来构建整个应用程序和测试。我正在容器中安装chrome和chromedriver。我使用webdriver manager start启动驱动程序。现在的问题是,当Jenkins想要启动e2e测试时,它会崩溃,并出现以下错误: [15:05:17]

版本信息:

  • 色度驱动器:2.33
  • 净现值:5.5.1
  • nodejs:8.9.0
  • openjdk版本: 1.8.0141
  • docker图像:openjdk:8
这是我的问题:我想在Jenkins上用量角器开始e2e测试。我正在运行一个docker容器来构建整个应用程序和测试。我正在容器中安装chrome和chromedriver。我使用
webdriver manager start
启动驱动程序。现在的问题是,当Jenkins想要启动e2e测试时,它会崩溃,并出现以下错误:

[15:05:17] I/file_manager - creating folder /data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/webdriver-manager/selenium
[15:05:18] I/update - chromedriver: unzipping chromedriver_2.33.zip
[15:05:18] I/update - chromedriver: setting permissions to 0755 for /data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.33
[15:05:18] I/launcher - Running 1 instances of WebDriver
[15:05:18] I/direct - Using ChromeDriver directly...
[15:06:19] E/launcher - unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.4.74-92.29-default x86_64)
[15:06:19] E/launcher - WebDriverError: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.4.74-92.29-default x86_64)
    at Object.checkLegacyResponse (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/selenium-webdriver/lib/error.js:505:15)
    at parseHttpResponse (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/selenium-webdriver/lib/http.js:509:13)
    at doSend.then.response (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/selenium-webdriver/lib/http.js:440:13)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: WebDriver.createSession()
    at Function.createSession (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/selenium-webdriver/lib/webdriver.js:777:24)
    at Function.createSession (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/selenium-webdriver/chrome.js:709:29)
    at Direct.getNewDriver (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/lib/driverProviders/direct.ts:90:25)
    at Runner.createBrowser (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/lib/runner.ts:225:39)
    at q.then.then (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/lib/runner.ts:391:27)
    at _fulfilled (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/q/q.js:796:13)
    at /data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/q/q.js:556:49
    at runSingle (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/q/q.js:137:13)
    at flush (/data/jenkins-slave/workspace/ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A/ebd-web-ui/node_modules/protractor/node_modules/q/q.js:125:13)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
[15:06:19] E/launcher - Process exited with error code 199
script returned exit code 199
启动webdriver manager时的输出:

[ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A] Running shell script
+ webdriver-manager start
[15:33:18] I/start - java -Djava.security.egd=file:///dev/./urandom -Dwebdriver.chrome.driver=/usr/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.33 -Dwebdriver.gecko.driver=/usr/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.19.1 -jar /usr/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.6.0.jar -port 4444
[15:33:18] I/start - seleniumProcess.pid: 17381
14:33:19.123 INFO - Selenium build info: version: '3.6.0', revision: '6fbf3ec767'
14:33:19.124 INFO - Launching a standalone Selenium Server
2017-11-01 14:33:19.151:INFO::main: Logging initialized @292ms to org.seleniumhq.jetty9.util.log.StdErrLog
14:33:19.211 INFO - Driver class not found: com.opera.core.systems.OperaDriver
14:33:19.237 INFO - Driver provider class org.openqa.selenium.ie.InternetExplorerDriver registration is skipped:
 registration capabilities Capabilities [{ensureCleanSession=true, browserName=internet explorer, version=, platform=WINDOWS}] does not match the current platform LINUX
14:33:19.237 INFO - Driver provider class org.openqa.selenium.edge.EdgeDriver registration is skipped:
 registration capabilities Capabilities [{browserName=MicrosoftEdge, version=, platform=WINDOWS}] does not match the current platform LINUX
14:33:19.237 INFO - Driver provider class org.openqa.selenium.safari.SafariDriver registration is skipped:
 registration capabilities Capabilities [{browserName=safari, version=, platform=MAC}] does not match the current platform LINUX
14:33:19.258 INFO - Using the passthrough mode handler
2017-11-01 14:33:19.279:INFO:osjs.Server:main: jetty-9.4.5.v20170502
2017-11-01 14:33:19.313:WARN:osjs.SecurityHandler:main: ServletContext@o.s.j.s.ServletContextHandler@3a5ed7a6{/,null,STARTING} has uncovered http methods for path: /
2017-11-01 14:33:19.318:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@3a5ed7a6{/,null,AVAILABLE}
2017-11-01 14:33:19.333:INFO:osjs.AbstractConnector:main: Started ServerConnector@694e1548{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
2017-11-01 14:33:19.333:INFO:osjs.Server:main: Started @474ms
14:33:19.333 INFO - Selenium Server is up and running

是否有人知道解决方案或有想法如何摆脱这个问题?谢谢

我遇到了同样的问题,让我的量角器测试在詹金斯身上运行。不幸的是,我从来没有真正弄清楚是什么导致了这个问题,但我确实发现,当从独立的JAR()webdriver运行Selenium服务器时,无论出于什么原因,webdriver都能够正确连接。我很好奇这对你是否有效

OP提供的更多详细信息:

  • 我用NPM安装了Selenium独立JAR
  • sudo npm安装selenium服务器独立jar

  • 我编辑了我的dragrator.conf.js,如下所示:

    多容量:[
    {browserName:'chrome',
    chromeOptions:{args:['no-sandbox','-headless','disable-gpu']}
    ],
    //directConnect:没错,
    //赛琳娜的裙子:'http://172.17.0.2:4444/wd/hub',
    seleniumServerJar:“./node_模块/selenium服务器独立jar/jar/selenium-server-standalone-3.6.0.jar”

    • 添加了无头和禁用gpu

    • 已删除的directConnect

    • 已删除SeleniumAddress(因为它将以某种方式覆盖SeleniumAddress服务器)

    • 添加到jar的路径(seleniumServerJar)


  • 如果可能的话,你能分享一下你的pergrator.conf.js吗?当我使用
    webdriver-manager start--standalone
    启动selenium服务器时,我会得到一个ECONREFUNCE@J.PaulI只是将JAR的位置作为我的exports.config的一部分:
    exports.config={getPageTimeout:20000,seleniumServerJar:'selenium-server-standalone-3.4.0.JAR',参数:{…
    那么我不需要用webdriver manager做任何事情,Gragrator在运行测试时启动服务器。希望这有帮助。编辑…哦,我看到你自己解决了。很好。
    [ature_ChromeHeadlessJenkins-I3N4DKAF3MHS72RV35MYVEHTF7OCMJ2VQKG54JMW2L7IQHOYN66A] Running shell script
    + webdriver-manager start
    [15:33:18] I/start - java -Djava.security.egd=file:///dev/./urandom -Dwebdriver.chrome.driver=/usr/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.33 -Dwebdriver.gecko.driver=/usr/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.19.1 -jar /usr/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.6.0.jar -port 4444
    [15:33:18] I/start - seleniumProcess.pid: 17381
    14:33:19.123 INFO - Selenium build info: version: '3.6.0', revision: '6fbf3ec767'
    14:33:19.124 INFO - Launching a standalone Selenium Server
    2017-11-01 14:33:19.151:INFO::main: Logging initialized @292ms to org.seleniumhq.jetty9.util.log.StdErrLog
    14:33:19.211 INFO - Driver class not found: com.opera.core.systems.OperaDriver
    14:33:19.237 INFO - Driver provider class org.openqa.selenium.ie.InternetExplorerDriver registration is skipped:
     registration capabilities Capabilities [{ensureCleanSession=true, browserName=internet explorer, version=, platform=WINDOWS}] does not match the current platform LINUX
    14:33:19.237 INFO - Driver provider class org.openqa.selenium.edge.EdgeDriver registration is skipped:
     registration capabilities Capabilities [{browserName=MicrosoftEdge, version=, platform=WINDOWS}] does not match the current platform LINUX
    14:33:19.237 INFO - Driver provider class org.openqa.selenium.safari.SafariDriver registration is skipped:
     registration capabilities Capabilities [{browserName=safari, version=, platform=MAC}] does not match the current platform LINUX
    14:33:19.258 INFO - Using the passthrough mode handler
    2017-11-01 14:33:19.279:INFO:osjs.Server:main: jetty-9.4.5.v20170502
    2017-11-01 14:33:19.313:WARN:osjs.SecurityHandler:main: ServletContext@o.s.j.s.ServletContextHandler@3a5ed7a6{/,null,STARTING} has uncovered http methods for path: /
    2017-11-01 14:33:19.318:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@3a5ed7a6{/,null,AVAILABLE}
    2017-11-01 14:33:19.333:INFO:osjs.AbstractConnector:main: Started ServerConnector@694e1548{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
    2017-11-01 14:33:19.333:INFO:osjs.Server:main: Started @474ms
    14:33:19.333 INFO - Selenium Server is up and running