首页 > 解决方案 > 如何并行运行测试用例?

问题描述

我有一种@Test方法,我从@Dataprovider. 我需要并行运行测试用例:

@Test(dataprovider="testdataprodivder")
public void TestExecution(String arg 1)
{
/* Read the testcases from dataprovider and execute it*/
}
@Dataprovider(name="testdataprodivder")
public Object [][]Execution() throws IOException
{
return new Object[][] {{"Developer"},{"Team Lead"},{"QA"},{"Business Analyst"},{"DevOps Eng"},{"PMO"} };
}

如果我想并行运行测试用例,即如果我想并行执行“Developer Team Lead”、“QA”、“Business Analyst”、“DevOps Eng”、“PMO”,我应该怎么做?

5 个浏览器——每个都运行不同的测试用例。

测试NG XML:

<suite name="Smoke_Test" parallel="methods" thread-count="5"> 
<test verbose="2" name="Test1">
<classes>
  <class name="Packagename.TestName"/>
</classes>
</test> <!-- Default test -->  
</suite> <!-- Default suite -->

标签: seleniumselenium-webdrivertestngtestng-dataprovidertestng.xml

解决方案


为了并行运行数据驱动测试,您需要parallel=true@DataProvider. 例如:

@Dataprovider(name="testdataprodivder", parallel=true)
public Object [][]Execution() throws IOException
{
return new Object[][] {{"Developer"},{"Team Lead"},{"QA"},{"Business Analyst"},{"DevOps Eng"},{"PMO"} };
}

要指定数据驱动测试使用的线程数,您可以指定data-provider-thread-count(默认为 10)。例如:

<suite name="Smoke_Test" parallel="methods" thread-count="5" data-provider-thread-count="5"> 

注意:要为外部代码的数据驱动测试动态设置并行行为,您可以使用QAF-TestNG 扩展,您可以在其中使用data-providerglobal.datadriven.parallel和属性设置行为。<test-case>.parallel


推荐阅读