如何在具有@DataProvider、@Factory 和一个@Test 方法的TestNG 中配置多线程
How to configure multi-threading in TestNG having @DataProvider, @Factory and one @Test method
我想在我的 class 中使用多线程,即我的 @Test
方法应该 运行 并行。
测试 class 有一个 @Test
注释方法,一个 @DataProvider
和一个 @Factory
方法,它是我的测试-class 的构造函数。
我也重写了 getTestName(ITest class)
方法。我的测试数据有 28 个场景。
编辑
@Listeners com.loyalty.HTMLReporter.class
public class TestClass implemented ITest {
@DataProvider
public static Object[][] dp () {
//I read test data from a file. The test-data could vary from 2 to 1000
//scenarios.
Object tests [][] = new Object [testcaseIdMap.keyset().toArray().length][];
for (Object ket : testcaseIdMap.keySet().toArray()){
tests[i] = new Object[1];
tests[i][0] = key.toString();
i++;
}
return tests
}
@Factory (dataProvider = "dp")
public TestClass (String testcaseId) {
this.testcaseId = testcaseId;
}
@Test
public void TC () {
//some code
}
@Override
public String getTestName () {
return testcaseId;
}
@BeforeSuite
public void createDBConnection () {
// some code
}
@AfterSuite
public void failedTestCases () {
//some code
}
转到:http://testng.org/doc/documentation-main.html 并阅读:
5.6.2 - DataProvider 的参数
也在:
5.10 - 并行度和超时
您将找到有关如何并行创建 test_suite.xml 到 运行 测试的信息
如果您想 运行 您的测试方法并行,请创建一个测试套件 xml 文件,如下所示
<suite name="Your suite name" parallel="methods" thread-count="2" >
<test name="Your test name">
<classes>
<class name="packagename.classname" />
</classes>
</test>
</suite>
根据需要设置线程数。
如果你想运行你的数据提供者并行,然后在数据提供者注释中添加parallel=true。
@DataProvider(name = "dataprovidername",parallel=true)
我想在我的 class 中使用多线程,即我的 @Test
方法应该 运行 并行。
测试 class 有一个 @Test
注释方法,一个 @DataProvider
和一个 @Factory
方法,它是我的测试-class 的构造函数。
我也重写了 getTestName(ITest class)
方法。我的测试数据有 28 个场景。
编辑
@Listeners com.loyalty.HTMLReporter.class
public class TestClass implemented ITest {
@DataProvider
public static Object[][] dp () {
//I read test data from a file. The test-data could vary from 2 to 1000
//scenarios.
Object tests [][] = new Object [testcaseIdMap.keyset().toArray().length][];
for (Object ket : testcaseIdMap.keySet().toArray()){
tests[i] = new Object[1];
tests[i][0] = key.toString();
i++;
}
return tests
}
@Factory (dataProvider = "dp")
public TestClass (String testcaseId) {
this.testcaseId = testcaseId;
}
@Test
public void TC () {
//some code
}
@Override
public String getTestName () {
return testcaseId;
}
@BeforeSuite
public void createDBConnection () {
// some code
}
@AfterSuite
public void failedTestCases () {
//some code
}
转到:http://testng.org/doc/documentation-main.html 并阅读:
5.6.2 - DataProvider 的参数
也在:
5.10 - 并行度和超时
您将找到有关如何并行创建 test_suite.xml 到 运行 测试的信息
如果您想 运行 您的测试方法并行,请创建一个测试套件 xml 文件,如下所示
<suite name="Your suite name" parallel="methods" thread-count="2" >
<test name="Your test name">
<classes>
<class name="packagename.classname" />
</classes>
</test>
</suite>
根据需要设置线程数。
如果你想运行你的数据提供者并行,然后在数据提供者注释中添加parallel=true。
@DataProvider(name = "dataprovidername",parallel=true)