我正在使用Webdriver测试Web应用程序,或多或少如下所述。测试通过后,一切都很好。但是,当其中一个测试失败时,我注意到了以下2个问题。
a)如果一个测试失败,那么套件中的其余测试将超时而不关闭Webdriver实例。因此,节点机器上会有一些陈旧的webdriver实例。
b)当其中一个测试因超时问题而失败时,该类中的所有剩余测试(因为testng被配置为并行运行类)失败,并出现以下异常 org.openqa.selenium.remote.UnreachableBrowserException < /强> 与远程浏览器通信时出错。它可能已经死亡。
我们如何解决这两个问题,这可能是网格的问题吗?任何建议都会很棒。以下是有关网格配置和环境详细信息的更多详细信息。
浏览器和版本: Chrome和版本为23.0.1271.101
Selenium版本: - 2.28.0
网格集线器和节点属性: -
集线器开始: - java -jar /tools/grid/selenium-server-standalone-2.28.0.jar -role hub -maxSession 20 -browserTimeout 240 -remoteControlPollingIntervalInSeconds 180 -sessionMaxIdleTimeInSeconds 240 -newSessionMaxWaitTimeInSeconds 250 -timeout 30
节点开始: - java -jar /tools/grid/selenium-server-standalone-2.28.0.jar -role node -Dwebdriver.chrome.driver = / ChromeDriver / 23.0.1240 / chromedriver -hub http://mobygrid.dev.ebay.com:4444/grid/register
Testng.xml ,它以5个线程并行运行类: -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- <suite name="Single Group Suite"> -->
<suite name="Single Group Suite" parallel="classes" thread-count="5">
<test name="Single Group Test Run" preserve-order="false">
<groups>
<define name="completetests">
<include name="ViewItem"/>
<include name="ViewItem2"/>
<include name="ViewItem3"/>
</define>
<run>
<include name="@GROUP@" />
<include name="init" />
<exclude name="noRun" />
</run>
</groups>
<classes>
<class name="com.tabletweb.test.tests.ViewItemPageTests" />
<class name="com.tabletweb.test.tests.ViewItemPageTests2" />
<class name="com.tabletweb.test.tests.ViewItemPageTests3" />
</classes>
</test>
</suite>
谢谢!
答案 0 :(得分:3)
看一下tips for running with grid:你的问题听起来就像那里描述的那样。 修改timouts configuration也可能有所帮助。
我们与相同版本的网格和ChromeDriver并行运行测试,并且没有错误。