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));
}