3

我正在使用 Webdriver 测试一个 Web 应用程序,或多或少如下所述。当测试通过时,一切都很好。但是,当其中一项测试失败时,我注意到以下 2 个问题。

a)如果一个测试失败,那么套件中的其余测试将超时而不关闭 Webdriver 实例。因此,节点机器上会保留一些过时的 webdriver 实例。

b)当其中一个测试因超时问题而失败时,该类中的所有剩余测试(因为 testng 被配置为并行运行类)失败,并出现以下异常org.openqa.selenium.remote.UnreachableBrowserException 与远程浏览器通信时出错。它可能已经死了。

我们如何解决这两个问题,这可能是网格的问题吗?任何建议都会很棒。以下是有关网格配置和环境详细信息的更多详细信息。

浏览器和版本:- Chrome 和版本是 23.0.1271.101

硒版本:- 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>

谢谢!

4

1 回答 1

3

查看使用 grid 运行的提示:您的问题听起来像那里描述的问题。修改超时配置也可能有所帮助。

我们使用相同版本的 grid 和 ChromeDriver 并行运行测试,并且没有出现错误。

于 2013-02-18T13:21:45.750 回答