8

我们的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的问题。

+0

间歇性,通常意味着您的网络存在间歇性问题。您是否曾尝试在参与测试的每台计算机的单独命令提示符下执行ping -t www.google.com?当我尝试时,大部分时间我都遇到了Chrome无法访问的问题,我也看到了连接问题。 – gorbysbm

+0

问题发生在我们的本地网络上,所以我怀疑网络连接问题。我会添加ping轮询以确保。 在我们的测试中添加了并行化(不同的测试正在单独的无头Chrome实例中运行)后,问题变得更糟。 – Sampo

+0

我其实是指本地网络。在您自己的公司发生互联网问题是非常可能的......我无法弄清楚什么时候发生这种情况的最佳解决方法。如果你想知道什么,请做一些代码:) – gorbysbm

回答

0

你可以用下面的选项尝试,

1)不要运行大量詹金斯工作paralelly 2)尽量少用线程,而不是多线程来创建浏览器。

它会解决你的问题。

如果您有更多测试,应该实施硒网格。

1

我有同样的问题,在我的情况下,这是因为用户数据目录,这是由chromedriver随机创建的,在某些情况下,对于几个测试是相同的。我通过同步创建webdriver解决了这个问题(性能不受此影响)