@Parameters
测试的时候,测试的数据可以放在testng.xml文件中,被测试的方法通过@Parameters注解传递到测试方法中
parameterizedTest.java
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class parameterizedTest {
@Test
@Parameters("myName")
public void testMethod(String myName) {
System.out.println("myName:" + myName);
}
}
testng.xml:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1" preserve-order="true">
<parameter name="myName" value="大盗如风"></parameter>
<classes>
<class name="parameterizedTest"></class>
</classes>
</test>
</suite>
运行testng.xml,结果如下:
myName:大盗如风
@DataProvider
@Test(dataProvider = "")
如果测试的数据较多的情况下,很显然这种方式不适合,那么可以通过@DataProvider生成测试数据,通过@Test(dataProvider = "")使用测试数据
parameterizedTest2.java
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class parameterizedTest2 {
// 定义数据源
@DataProvider(name = "test")
public Object[][] createData() {
return new Object[][]{{"dadaorufeng",29},{"zhangsan",28}};
}
// 使用数据源
@Test(dataProvider = "test")
public void verifyData(String name, int age) {
System.out.println("name:" + name + ",age:" + age);
}
}
testng.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1" preserve-order="true">
<classes>
<class name="parameterizedTest2"></class>
</classes>
</test>
</suite>