【问题标题】:How can we use Data Provider in testNG at class level, so it can iteration at class level not on method level?我们如何在类级别的 testNG 中使用数据提供程序,以便它可以在类级别而不是方法级别进行迭代?
【发布时间】:2021-12-12 07:21:41
【问题描述】:

我的班级有 20 个测试用例。 我想用 100 个数据集执行这个类。

例如 MyClass1 的 Iteraton1 方法 1 - 数据集 = 用户 1,密码 1 方法 2 - 数据集 = 用户 1,密码 1 . . 方法 20 - 数据集 = 用户 1,密码 1

MyClass 的 Iteraton2 方法 1 - 数据集 = 用户 2,密码 2 方法 2 - 数据集 = 用户 2,密码 2 . . 方法 20 - 数据集 = 用户 2,密码 2

我尝试使用 @Factory 和 DataProvider,但是它会迭代方法。

import org.testng.annotations.Factory;

public class FactoryClass {
    
    @Factory(dataProvider="dp")
    public Object[] invodeMyTest(String name) {
        Object[] data = new Object[1];
        data[0]= new MyClass1(name);
        //data[1]= new MyClass1("qwer");
        return data;
    }
    
    @DataProvider(name = "dp")
    public static Object[][] dataProvider() throws Exception {
    String[][] names = { {"user1"} , {"user2"} };
    return names;
    }

}

@Test()
public class MyClass1 {
    private String user;

    MyClass1(String user) {
        this.user = user;
    }

    public void f1() {
        System.out.println("Inside f1 - User: " + user + (int) Thread.currentThread().getId());
        System.out.println((int) Thread.currentThread().getId());
    }

    public void f2() {
        System.out.println("Inside f2 - User: " + user + (int) Thread.currentThread().getId());
        System.out.println((int) Thread.currentThread().getId());
    }

    @Test
    public void f3() {
        System.out.println("Inside f2 - User: " + user + (int) Thread.currentThread().getId());
        System.out.println((int) Thread.currentThread().getId());
    }

}

当前执行: f1 f1 f2 f2 f3 f3

需要执行: f1 f2 f3 f1 f2 f3

有人可以帮助我们如何在类级别而不是方法级别实现迭代吗?

【问题讨论】:

    标签: automation parallel-processing testng factory dataprovider


    【解决方案1】:

    请执行以下操作:

    1. 为您的测试类创建一个套件 xml 文件。
    2. <test> 级别或<suite> 级别设置属性group-by-instances="true"

    【讨论】:

    • 感谢 Krishnan,它成功了,现在我将尝试使用数据提供者。
    猜你喜欢
    • 2016-02-07
    • 2012-07-05
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2022-01-17
    • 2014-04-26
    相关资源
    最近更新 更多