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