Parameters注解在测试方法上指定参数列表,然后在测试方法中声明对应的形参,形参与参数列表一一对应,但名字可以不同,如下所示:
public class Test1 { @Parameters({"Name", "Age", "Hobby"}) @Test public void test1(String name, int age, String hobby) { System.out.println(name + " is " + age + " years old and likes " + hobby); } }
然后在XML文件中通过<parameter>标签对每个参数赋值,采用name-value对的形式:
<suite name="suite1"> <parameter name="Name" value="xiaoming" /> <parameter name="Age" value="20" /> <parameter name="Hobby" value="dajiangyou" /> <test name="test1" verbose="2"> <classes> <class name="sea.Test1" /> </classes> </test> </suite>
运行结果为:
xiaoming is 20 years old and likes dajiangyou PASSED: test1("xiaoming", 20, "dajiangyou")
使用默认值
testDemo.java
@Parameters("db") @Test public void testNonExistentParameter(@Optional("mysql") String db) { System.out.println("数据库为:"+db); }
testng.xml
<!-- 无name=“db”的parameter ,testDemo中直接读取默认值“mysql”--> <suite name="Suite" parallel="false"> <test name="demo"> <classes> <class name="**.testDemo"/> </classes> </test> </suite>
Parameters一般用于比较简单的参数,对于参数比较多、复杂或者需要从文件读取的时候一般使用DataProvider注解。