我想运行我的自动化套件(使用Selenium Webdriver(Java)+ TestNG + Maven实现)并行处理多个浏览器功能。我可以用下面的示例testng.xml文件在不同的功能并行运行如何依次运行TestNG测试节点,但并行运行不同的浏览器功能?
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="5" name="Functional Test Suite" parallel="tests">
<test name="Windows-FF-37.0" preserve-order="true" >
<parameter name="browser" value="Firefox"/>
<parameter name="version" value="37.0"/>
<parameter name="os" value="Windows"/>
<parameter name="os_version" value="8.1"/>
<parameter name="device" value=""/>
<classes>
<class name="uat.mycompany.tests.FirstTest"/>
<class name="uat.mycompany.tests.SecondTest"/>
<class name="uat.mycompany.tests.ThirdTest"/>
<class name="uat.mycompany.tests.FourthTest"/>
</classes>
</test>
<test name="MAC-Yosemite-Chrome-36.0" preserve-order="true">
<parameter name="browser" value="Chrome"/>
<parameter name="version" value="36.0"/>
<parameter name="os" value="OS X"/>
<parameter name="os_version" value="Yosemite"/>
<parameter name="device" value=""/>
<classes>
<class name="uat.mycompany.tests.FirstTest"/>
<class name="uat.mycompany.tests.SecondTest"/>
<class name="uat.mycompany.tests.ThirdTest"/>
<class name="uat.mycompany.tests.FourthTest"/>
</classes>
</test>
</suite>
但是当我运行这个testng.xml文件,它与两个VM“FirstTest”开始;一个与Chrome + Mac &另一个与Forefox + Windows配置。我不想要这个,因为一个脚本修改的数据会失败另一个脚本。
我的要求是从一个节点并行运行所有类,然后依次运行节点。作为一种解决方法,我总是可以在不同的测试节点中以不同的顺序放置类名,但由于我有数百个测试类,因此这不是可行的解决方案。
此外,最终我想通过一些属性文件设置这些参数,以便我可以轻松管理运行环境。
哪里代码示例? – 9ikhan