TestNG-参数传递几种方式 03
参数化测试
将参数直接传递给测试方法的两种方式: 使用 testng.xml 或 数据提供者 。
1、通过 xml文件( @Parameters )将参数传递给 @Test。
1) 创建一个测试类,有@Test 测试方法;
2)创建 testng.xml 文件;
3)将 testng.xml 中参数用 @Parameters 引用到测试方法。
附上代码:
############### String
public class TesParametersXML {
@Test
@Parameters("myName")
public void parameterTest(String myName) {
System.out.println("Parameterized value is : " + myName);
}
}
###############
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test1">
<parameter name="myName" value="zhouyang"/>
<classes>
<class name="com.zytest.TesParametersXML" />
</classes>
</test>
</suite>
###############
备注: testng.xml 支持的参数类型,String、int / Integer、boolean / Boolean、 byte / Byte、char / Character、
double / Double、float / Float 、long/Long、short/Short ;
2、通过 数据提供者( @DataProvider ) 将参数传递给 @Test。
2.1 通过 @DataProvider 传递一个 int 参数
####代码############
public class TestParameterDataProvider { @Test(dataProvider = "provideNumbers") public void test(int number, int expected) { Assert.assertEquals(number + 10, expected); System.out.println(number+" "+expected); } @DataProvider(name = "provideNumbers") public Object[][] provideData() { return new Object[][] { { 11, 21 }, { 12, 22 }, { 13, 23 } }; } } ####################
2.2 通过 @DataProvider 传递一个对象参数