在Selenum网格上运行并行执行

时间:2018-10-08 12:39:31

标签: selenium selenium-grid

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="classes" thread-count="2">
  <test thread-count="1" name="Transactoin">
  <parameter name="remoteurl" value="http://xx.xx.xxx.xxx:5555/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.ATransactionTest"/>
     </classes>
  </test> <!-- Test -->
  <test thread-count="1" name="MyAlerts">
  <parameter name="remoteurl" value="http://xx.xx.xx.xxx:5556/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.MyAlertsTest"/>
    </classes>
  </test> 
</suite> <!-- Suite -->

ATransactionTest Class47个测试用例 MyAlertsTest Class40个测试用例。

我想run both classes simulatneously,MyAlertsTest应该使用参数中指定的remoteurl,而ATransaction测试应该使用参数中指定的remoteurl。

但是发生的是,一旦所有测试用例完成,ATransactionTestNode1中运行,MyAlerts首先在Node2中运行。如何模拟运行。

谢谢

1 个答案:

答案 0 :(得分:9)

根据我对文档的理解,TestNG将尊重xml文件中测试的顺序。

现在,您要并行运行两个类,因此已设置了正确的parallel="classes"。但是,您的测试仍将在单个线程上运行,这意味着,如果您的测试组中有多个类,它将并行运行它们,但所有测试将依次依次运行。

要解决此问题,您可以在同一测试组下添加多个类:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="classes" thread-count="2">
  <test thread-count="2" name="Transactoin">
  <parameter name="parameterName" value="parameterValue"></parameter>
    <classes>
      <class name="Class1"/>
      <class name="Class2"/>
     </classes>
  </test>
</suite> <!-- Suite -->

或者按照您的情况,您可以将并行选项设置为测试

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="tests" thread-count="2">
  <test thread-count="1" name="Transactoin">
  <parameter name="remoteurl" value="http://xx.xx.xxx.xxx:5555/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.ATransactionTest"/>
     </classes>
  </test> <!-- Test -->
  <test thread-count="1" name="MyAlerts">
  <parameter name="remoteurl" value="http://xx.xx.xx.xxx:5556/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.MyAlertsTest"/>
    </classes>
  </test> 
</suite> <!-- Suite -->

我希望这可以解决您的问题。