1. 程式人生 > >TestNG系列(二)TestNG註解

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