我们的CI测试随机失败,出现"chrome not reachable"错误.最初它们非常罕见,但随着我们的测试基础的增长,它变得无法容忍.关于此问题还有其他一些问题/错误报告,但这些问题似乎与我们的案例无关.
测试使用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 报告了有关此问题的错误.