【发布时间】: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