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注解。
