我正在使用下面的TestNG Config来启用Selenium测试的并行执行。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test-Automation" parallel="methods" thread-count="2" verbose="1">
<test name="Suite Test">
<classes>
<class name="SampleTest">
<methods>
<include name="firstTest"/>
<include name="secondTest"/>
<include name="thirdTest"/>
</methods>
</class>
</classes>
</test>
</suite>
Java代码:
@Test(dataProvider = "TestData")
public void firstTest(String data){
//Code
}
@Test(dataProvider = "TestData")
public void secondTest(String data){
//Code
}
@Test(dataProvider = "TestData")
public void thirdTest(String data){
//Code
}
预计Selenium测试将并行运行。我希望打开2个浏览器并运行测试脚本。
但我看到只有一个浏览器,所有3个测试依次运行而不是并行运行。我已经尝试使用“并行”属性的测试,方法,类,实例选项。
任何帮助?
答案 0 :(得分:3)
这是由于TestNG 6.13.1中的错误[有关详细信息,请参阅GITHUB-1636]
我已在最新的TestNG SNAPSHOT(6.14-SNAPSHOT)中解决了这个问题,这应该可以在TestNG的发布版本(6.14)中使用。
但在此之前,请将您的套件xml文件更改为如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test-Automation" parallel="methods" thread-count="2" verbose="1">
<test name="Suite Test" parallel="methods" thread-count="2" verbose="1">
<classes>
<class name="SampleTest">
<methods>
<include name="firstTest"/>
<include name="secondTest"/>
<include name="thirdTest"/>
</methods>
</class>
</classes>
</test>
</suite>
解决方法基本上是在parallel="methods" thread-count="2"
级别添加<test>
属性。
答案 1 :(得分:0)
分开所有测试然后尝试并行=&#34;测试&#34;
<test name="Suite Test1">
<classes>
<class name="//..//packg name..SampleTest">
</class>
</classes>
</test>
<test name="Suite Test2">
<classes>
<class name="//..//SampleTest">
</class>
</classes>
</test>
<test name="Suite Test3">
<classes>
<class name="//..//packg name..SampleTest">
</class>
</classes>
</test>
</suite>