@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> |