将@DataProvider与TestNG XML一起使用时,在TestNG中面临并行测试执行问题

将@DataProvider与TestNG XML一起使用时,在TestNG中面临并行测试执行问题,testng,threadpool,testng-dataprovider,Testng,Threadpool,Testng Dataprovider,我编写了一个TestNG类,它包含两个方法(一个是@DataProvider,一个是@Test) 在testng.xml中,我将参数threadcount设置为“2”。但是,当我将testng.xml作为TestNGSuite运行时,@Test的4个实例将同时启动,而不是2个线程 如何仅限制testing.xml中提到的线程数,而不限制从@DataProvider传递的测试数据量?TestNG在TestNG套件xml文件中有两个属性,用于控制线程池的大小 线程计数-这允许您在启用并行性(测试|

我编写了一个TestNG类,它包含两个方法(一个是
@DataProvider
,一个是
@Test

在testng.xml中,我将参数threadcount设置为“2”。但是,当我将testng.xml作为TestNGSuite运行时,
@Test
的4个实例将同时启动,而不是2个线程


如何仅限制testing.xml中提到的线程数,而不限制从
@DataProvider
传递的测试数据量?

TestNG在
TestNG套件xml
文件中有两个属性,用于控制
线程池的大小

  • 线程计数
    -这允许您在启用并行性(测试|类|方法)时控制线程数。如果未指定,则默认值为5
  • 数据提供程序线程计数
    -这允许您在涉及数据提供程序时控制线程数。如果未指定,则默认值为10
为了解决您的问题,您可以考虑在<代码> TESTNG套件中设置<代码>数据提供程序线程计数< /COD>属性,将XML 文件设置为<强> 2 < /强>。在此之后,TestNG应该只生成两个线程

请注意:您需要创建一个包含测试类的套件xml文件。只有这样才能奏效


有关TestNG DTD的更多详细信息,请参阅。

TestNG在
TestNG套件xml
文件中有两个属性,用于控制
线程池的大小

  • 线程计数
    -这允许您在启用并行性(测试|类|方法)时控制线程数。如果未指定,则默认值为5
  • 数据提供程序线程计数
    -这允许您在涉及数据提供程序时控制线程数。如果未指定,则默认值为10
为了解决您的问题,您可以考虑在<代码> TESTNG套件中设置<代码>数据提供程序线程计数< /COD>属性,将XML 文件设置为<强> 2 < /强>。在此之后,TestNG应该只生成两个线程

请注意:您需要创建一个包含测试类的套件xml文件。只有这样才能奏效

有关TestNG DTD的更多详细信息,请参阅

public class BaseTestNG extends BaseTest{ 
    @DataProvider(name="Demo", parallel=true)
    public Object[][] getData() {
        Object[][] data = new Object[4][2];
        data[0][0] = "sampleuser1";
        data[0][1] = "abcdef";
        data[1][0] = "testuser2";
        data[1][1] = "zxcvb";
        data[2][0] = "guestuser3";
        data[2][1] = "pass123";
        data[3][0] = "guestuser4";
        data[3][1] = "pass123";
        return data;
    }
    @Test(dataProvider="Demo")
    public void BaseTestNG(String username, String password)  {
        System.out.println(username + " :: " & password)
        Thread.currentThread.Sleep(5000);
    }
}