TestNG簡介
TestNG是一個用來簡化廣泛測試需求的測試框架,可用於單元測試和集成測試。
Annotation
Annotation | 作用 |
---|---|
@BeforeSuite |
被註釋的方法將在所有測試運行前運行 |
@AfterSuite |
被註釋的方法將在所有測試運行後運行 |
@BeforeTest |
被註釋的方法將在測試運行前運行 |
@AfterTest |
被註釋的方法將在測試運行後運行 |
@BeforeGroups |
被註釋的方法將在gourp中方法運行前運行 |
@AfterGroups |
被註釋的方法將在gourp中方法運行後運行 |
@BeforeClass |
被註釋的方法將在當前類的第一個方法運行前運行 |
@AfterClass |
被註釋的方法將在當前類的所有方法運行後運行 |
@BeforeMethod |
被註釋的方法將在每一個方法運行前運行 |
@AfterMethod |
被註釋的方法將在每一個方法運行後運行 |
@DataProvider |
被註釋的方法用於爲其他方法提供數據 |
@Factory |
被標記的方法作爲一個返回對象的工廠,這些對象將被TestNG作爲測試類,該返回必須返回Object[] |
@Par##ameters |
傳遞參數給測試方法 |
範例:
@Test() // Test中所有方法變爲測試方法
public class Test {
@Test(enable = false) // 該註釋後,test1()測試時被忽略,相當於普通方法
public void test1(){}
@BeforeTest() // 該註釋後,test3(),test4()執行前,test2()先執行
public void test2(){}
public void test3(){}
public void test4(){}
}
測試中的一些小問題
1、匿名JSON節點驗證:
[
{
"name":"Tom",
"age":12
},
{
"name":"Jane",
"age":18
}
]
對於上述JSON的驗證代碼如下:
public void method_name() {
given().
header("Authorization", "token " + Config.getToken()).
when().
get(url).
then().
statusCode(200).
body("[0].name", equalTo("正常")).
body("[0].age", greaterThanOrEqualTo(0));
}