首页 > 解决方案 > 如何并行运行一个类中的所有 dataProvider 条目?

问题描述

我设置了我的测试,其中的每一行都dataProvider创建了一个新的测试类实例,并使用传入的数据运行一些测试。我想让所有测试同时执行,但是当我使用当前设置运行测试时,测试a被实例化并运行第一个方法,然后实例化测试b并运行第一个方法,等等。我希望能够同时a,b,c执行所有测试,而无需等待彼此完成/逐步移动。

我通过创建 3 个单独的类文件来实现这种并行行为,这些文件具有单独的数据提供者和一行唯一数据,然后调用parallel="classes",但是我将如何在一个类中完成这一切?

public class Class1 {

@DataProvider(name = "provider", parallel = true)
public static Object[][] dataProviderSetup() {
    return new Object[][] { { "a", "1", "first" }, { "b", "2", "second" }, { "c", "3", "third" } };
}

    @Factory(dataProvider="provider")
    public Class1(String var1, String var2, String var3) {
        this.var1 = var1;
        this.var2 = var2;
        this.var3 = var3;
    }

@Test()
public void f1() {
    //
}
}

    <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

    <suite name="suite1" verbose="1" preserve-order="true" data-provider-thread-count="3">
<test name="test1" preserve-order="true">
    <classes>
        <class name="package.Class1" />
    </classes>
</test>

标签: javaseleniumparallel-processingautomationtestng

解决方案


推荐阅读