运行 在 Selenium 网格上并行执行
Run Parallel Execution on Selenum 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
Class
有 47
个测试用例
MyAlertsTest
Class
有 40
个测试用例。
我想 run both classes simulatneously
并且 MyAlertsTest 应该采用参数中给出的 remoteurl,ATransaction 测试应该采用给定参数的 remoteurl。
但是发生的事情是,ATransactionTest
运行 在 Node1
中首先完成所有测试用例 MyAlerts
运行 在 Node2
中.如何运行模拟。
谢谢
根据我对文档的理解,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 -->
希望这能解决您的问题。
<?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
中.如何运行模拟。
谢谢
根据我对文档的理解,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 -->
希望这能解决您的问题。