<?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
Class
有47
个测试用例
MyAlertsTest
Class
有40
个测试用例。
我想run both classes simulatneously
,MyAlertsTest应该使用参数中指定的remoteurl,而ATransaction测试应该使用参数中指定的remoteurl。
但是发生的是,一旦所有测试用例完成,ATransactionTest
在Node1
中运行,MyAlerts
首先在Node2
中运行。如何模拟运行。
谢谢
答案 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 -->
我希望这可以解决您的问题。