java在使用数据提供程序时使用Testng优先级
我将数据提供程序与test ng一起使用,我希望特定的测试对数据收集对象中的每个元素都遵循一系列步骤
测试:
For each element in the object, validate the form can input the values
因此,该过程具有以下特点:
- 打开网页(从数据中)
- 检查页面上是否存在元素
- 输入值
但是,对于对象中的每个元素,我尝试使用下面的方法,它运行步骤1,然后在步骤2之后移动,而不是按照流程。因此,我要问的是,是否有可能使用test ng进行“测试步骤”方法
如果Data
中有2个值,它将执行Open
两次,然后继续执行CheckElementExists
@Test (priority = 1, dataProvider = "Data")
public void Open(Data data) throws InterruptedException
{
System.out.println("Step 1");
this.module.open(data);
}
@Test (priority = 2, dataProvider = "Data")
public void CheckElementExists(Data data)
{
System.out.println("TWO");
}
# 1 楼答案
根据你的测试,它运行良好,因为测试就是这样设计的。根据您的场景,每个步骤都是一个步骤,您也可以设置优先级。所以它首先对所有数据执行,然后对所有数据执行第二步。看起来像是BDD风格。您可以尝试使用cucumber、jbehave等任何BDD框架
如果要使用testng对每个数据重复所有步骤。然后将所有步骤组合在一个测试中,然后使用下面给出的数据提供程序对数据进行迭代
# 2 楼答案
在这种情况下,可以使用Factory类
您需要在testng套件xml文件中提到
group-by-instance = true
,并使用xml套件运行