我们的CI测试随着'chrome not reachable'错误随机失败。最初它们非常罕见,但随着我们的测试基地的增长,它变得无法容忍。还有其他几个关于这方面的问题/错误报告,但没有一个与我们的案例有关。Webdriver在Linux测试中随机生成'chrome not reachable'
这些测试是用Cucumber + Ruby + Watir-Webdriver + Selenium-Webdriver(每个gem的最新版本)编写的。我们在Ubuntu Linux 12.04上以无头模式在物理硬件上使用xvfb(无虚拟化)运行测试。我可以在运行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 not reachable'而失败。如果我在测试结束时添加延迟,以便所有测试在任何Chrome窗口关闭之前完成,测试运行没有问题。我0123>针对ChromeDriver的问题。
间歇性,通常意味着您的网络存在间歇性问题。您是否曾尝试在参与测试的每台计算机的单独命令提示符下执行ping -t www.google.com?当我尝试时,大部分时间我都遇到了Chrome无法访问的问题,我也看到了连接问题。 – gorbysbm
问题发生在我们的本地网络上,所以我怀疑网络连接问题。我会添加ping轮询以确保。 在我们的测试中添加了并行化(不同的测试正在单独的无头Chrome实例中运行)后,问题变得更糟。 – Sampo
我其实是指本地网络。在您自己的公司发生互联网问题是非常可能的......我无法弄清楚什么时候发生这种情况的最佳解决方法。如果你想知道什么,请做一些代码:) – gorbysbm