一、TESTNG的参数化(数据驱动)大致有两种方式:
1、借助 @Parameters读取testng.xml中参数。
2、使用@DataProvider注解传参。
--------------------------------------------------------------------------------------------------------------
二、 @Parameters读取testng.xml中参数:
首先在Java类中使用@Parameters传递参数,写在java类的上面,格式为({"参数A","参数B"})

具体参数的值在testng.xml的配置文件中进行配置,这个运行的时候就可以把参数传过去了,使用起来还是比较简单的。

-----------------------------------------------------------------------------------------------------------------------
三、使用@DataProvider注解传参:
1、使用TestNG中使用DataProvider的用途是:
在执行用例的时候dataProvider迭代每组数据都是作为一个用例执行。
在测试数据有规律的情况下,免去了添加testXML测试数据的烦恼,直接将测试数据,按个或者组,放到dataProvider中即可
注意:dataProvider作为数据提供者只能返回Object[][]和Iterator<Object[]>类型的数据。
2、介绍下我在实际项目中dataProvider的使用。首先我的自动化框架设计是使用xml编写用例,执行时,把xml的路径传给@Test,使用的是返回值为Iterator<Object[]>,直接附上代码。
testCasePaths为需要执行的用例的文件路径。
@DataProvider(name="dataProvider-testcase")
public Iterator<Object[]> dataProvider() {
List<Object[]> path = new ArrayList<>();
for(Object obj:testCasePaths){
path.add(new Object[]{obj});
}
return path.iterator();
}
3、也介绍下返回Object[][]
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class DataProviderTest {
@Test(dataProvider = "data")
public void dataProviderTest(String name, int age, String hobby) {
System.out.println(name + " " + age + " " + hobby);
}
@DataProvider(name = "data")
Object[][] getData(){
return new Object[][] {
{"June", 22, "Sing"},
{"Jack", 22, "Football"},
{"Duke", 22, "Chess"}
};
}
测试结果:
June 22 Sing
Jack 22 Football
Duke 22 Chess
大概就是这样了,大家自己动手试试吧

409




被折叠的 条评论
为什么被折叠?



