我们的CI测试随机失败,并且“Chrome无法访问”'错误。最初它们非常罕见,但随着我们的测试基础的增长,它变得无法容忍。关于此问题还有其他一些问题/错误报告,但这些问题似乎与我们的案例无关。
测试是用Cucumber + Ruby + Watir-Webdriver + Selenium-Webdriver(每个gem的最新版本)编写的。我们在物理硬件上使用xvfb(无虚拟化)以无头模式在Ubuntu Linux 12.04上运行测试。我可以在运行Linux Mint 16的笔记本电脑上非常可靠地重现它。我们并行运行测试以加快速度。
我尝试过使用Chromium 18.0.1025.151~r130497-0ubuntu1和Google Chrome 34.0.1847.116以及ChromeDriver v2.9.248304。旧版本的浏览器和ChromeDriver也出现了同样的问题。
通常,由于相同的错误,多个测试连续失败,然后在同一次运行期间再次开始工作。
堆栈跟踪是:
chrome not reachable
(Session info: chrome=34.0.1847.116)
(Driver info: chromedriver=2.9.248304,platform=Linux 3.2.0-60-generic x86_64) (Selenium::WebDriver::Error::WebDriverError)
/home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:14:in `goto'
/home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:35:in `blank_page'
/home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:44:in `add_cookie'
./features/support/mocking.rb:11:in `mock'
./features/support/time_steps.rb:5:in `/^the current time zone is "(.*?)"$/'
features/trackers/mood/mood_data_entry.feature:7:in `And the current time zone is "GMT+4"'
更新:问题似乎与并行性有关。当其中一个测试退出时,有可能另一个测试开始失败,并且“Chrome”无法访问'。如果我在测试结束时添加延迟,以便在关闭任何Chrome窗口之前所有测试都已完成,则测试运行没有问题。我对ChromeDriver提出了reported a bug问题。
答案 0 :(得分:1)
我有同样的问题,在我的情况下是因为用户数据dir,由chromedriver随机创建,在某些情况下对于几个测试是相同的。我通过同步webdriver创建解决了它(性能不受此影响)
答案 1 :(得分:0)
您可以尝试以下选项,
1)不要兼容地运行许多Jenkins工作 2)尝试使用更少的线程,而不是更多的线程来创建浏览器。
它将解决您的问题。
如果你有更多的测试,你应该实现selenium grid。