我正在使用下面的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测试将并行运行。我希望打开两个浏览器并运行测试脚本。
但是我看到只有一个浏览器,所有三个测试都是一个接一个地运行,而不是并行运行。我尝试过使用test、方法、类、实例选项来表示“并行”属性。
有什么帮助吗?
发布于 2018-01-22 14:37:11
这是由于TestNG 6.13.1中的一个错误(有关更多细节,请参见GITHUB 1636 )。
我已经在TestNG的最新快照(6.14-快照)中修正了这个问题,这应该可以在发布的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>解决方法基本上也是在<test>级别添加属性<test>。
发布于 2018-01-22 13:41:26
分离所有测试,然后使用parallel=“测试”尝试
<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>https://stackoverflow.com/questions/48382753
复制相似问题