关于testng有关传递参数的
将方法分类分成两大类进行参数的传递,分别是@Parameters、@DataProvider、
1.@Parameters
将要传的参数放在xml文件中,通过@Parameters,将参数传递给需要执行的用例中(.java文件)
x**ml文件**
<?xml version="1.0" encoding="UTF-8"?>
<test name="paratest">
<parameter name="sex1" value="李小二" />
<parameter name="age1" value="18" />
<classes>
<class name="ParameterTest.test1" />
</classes>
</test>
在xml文件中,需要以key,value的形式填写所传的参数
要执行的用例,Java文件
package ParameterTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class test1 {
@Parameters({"age1","sex1"})
@Test
private void person(String sex,String age) {
System.out.println("sex="+sex+" , "+"age="+age);
}
}
结果:18李小二
执行的时候需要执行xml文件。如果执行Java文件的话 会报sex=param-val-not-found , age=param-val-not-found 这两个参数找不到。因为需要通过xml的文件来将其传递参数。
2.dataProvider
意思是数据提供者
java文件:
package ParameterTest;
import static org.testng.Assert.assertEquals;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@Test
public class test2 {
@DataProvider(name=“datepro”)//datepro这个名字可以随意取
public Object[][] datepro() {
return new Object[][] {{1,3},{2,4}};
}
@Test(dataProvider="datepro")//dataProvider="datepro",datepro这个值需要和上面的name="datepro" 一致
public void test2(int num1,int num2) {
Assert.assertEquals(num1 + 2, num2);
}
}
开始写例子的时候 datepro写的返回值是一个String 执行时报错。提示应该为Object的类型或者是iterator 故改成一个Object类型
本文详细介绍了TestNG中两种参数传递方式:@Parameters通过XML配置文件传递参数,以及@DataProvider作为数据提供者的方式。在使用@Parameters时,需在XML文件中以键值对形式设置参数,而在Java文件中执行会报错。@DataProvider则允许创建自定义的数据源,返回Object二维数组,用于测试方法的参数供给。

7739

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



