TestNG系列(二)TestNG註解
前言
TetsNG提供了很多註解,允許測試人員靈活地組織測試用例
一、@Test
@Tets是TestNG的核心註解,被註解的方法,表示為一個測試方法。
description屬性
@Test(description = "yuhao") public void case1(){ System.out.println("case1方法"); }
在測試報告中體現出來
enabled屬性
設定為false時,被註解的方法將不會執行
groups屬性
對測試方法進行分組,可在類級別或方法級別新增組,類級別分組,表示類裡面的所有方法都屬於該分組。分組在XML中的呼叫與普通方法不同,在說XML時會詳細介紹。
@Test(groups = "yuhao") public void case1(){ System.out.println("case1方法"); }
dependsOnMethods屬性
測試方法case1依賴於case2,case2先於case1執行。如果case2失敗了則case1也不執行,這叫硬依賴。
@Test(dependsOnMethods = {"case2"}) public void case1(){ System.out.println("case1方法"); } @Test public void case2(){ System.out.println("case1方法"); }
dependsOnGroups屬性
類似於dependsOnMethods一個用方法名做依賴,一個使用組名做依賴。
invocationCount屬性
方法執行次數
@Test(invocationCount = 5) public void case1(){ System.out.println("case1方法"); }
threadPoolSize屬性
執行緒池的內執行緒的個數
timeOut屬性
超時時間-毫秒
alwaysRun屬性
在新增依賴關係時,加上alwaysRun=“true”的屬性,無論依賴是否成功,此方法都會繼續執行。
二、@Before
@BeforeClass,被註解的方法在此類所有測試方法前執行
@BeforeMethod,被註解的方法在每個@Tets方法前執行
@BeforeSuite,被註解的方法在當前Suite中方法執行前執行
@BeforeTest,被註解的方法在每個@Test方法前執行
@BeforeGropu,被註解的方法在指定組內方法執行前執行
三、@After
@AfterClass,被註解的方法在此類所有測試方法後執行
@AfterMethod,被註解的方法在每個@Tets方法後執行
@AfterSuite,被註解的方法在當前Suite中方法執行後執行
@AfterTest,被註解的方法在每個@Test方法後執行
@AfterGropu,被註解的方法在指定組內方法執行後執行
四、@Lgnore
被此方法註解的方法在測試時都將被忽略執行
五、@Listeners
定義一個測試類的監聽器,只能新增到測試類上,不能新增的具體方法。
六、@Parameters
此註解用來傳遞引數,可以傳遞單個、多個、預設值
傳遞單個引數
測試用例
@Parameters({ "user" }) @Test public void testcase1(String user) { System.out.println(user); }
XML檔案
<suite name="Suite" parallel="false"> <parameter name="user" value="yogouo"/> <test name="autotest"> <classes> <class name="com.TetsNG.testcase"/> </classes> </test> </suite>
傳遞多個引數
測試用例
@Parameters({ "user","data" }) @Test public void testcase1(String user,String data) { System.out.println(user+data); }
XML檔案
<suite name="Suite" parallel="false"> <parameter name="user" value="yogouo"/>
<parameter name="data" value="2019-12-09"> <test name="autotest"> <classes> <class name="com.TetsNG.testcase"/> </classes> </test> </suite>
預設值
測試用例
@Parameters({ "user" }) @Test public void testcase1(@Optional("yogouo") String user) { System.out.println(user); }
XML檔案
<suite name="Suite" parallel="false"> <test name="autotest"> <classes> <class name="com.TetsNG.testcase"/> </classes> </test> </suite>
&n