TestNG 是一个测试框架,它被设计为用来简化广泛的设计需求,从单元测试 (单独测试一个类) 到集成测试 (测试由多个类、报甚至外部框架,例如应用程序服务器,所组成的系统).
编写一个测试通常分为三步:
- 编写测试业务逻辑,并且在你的代码中插入 TestNG annotations 。
- 在 testng.xml 或 build.xml 添加你的测试信息。例如类名,希望运行的组等等
- 运行TestNG.
Annotation注解
注解 | 用法 |
---|---|
@BeforeSuite | 被注解的方法,会在当前suite中所有测试方法之 前 被调用。 |
@AfterSuite | 被注解的方法,会在当前suite中所有测试方法之 后 被调用。 |
@BeforeTest | 被注解的方法,会在测试(原文就是测试,不是测试方法)运行 前 被调用 |
@AfterTest | 被注解的方法,会在测试(原文就是测试,不是测试方法)运行 后 被调用 |
@BeforeGroups | 被注解的方法会在组列表中之前被调用。这个方法会在每个组中第一个测试方法被调用之前被调用。 |
@AfterGroups | 被注解的方法会在组列表中之后被调用。这个方法会在每个组中最后一个测试方法被调用之后被调用。 |
@BeforeClass | 被注解的方法,会在当前类第一个测试方法运行前被调用 |
@AfterClass | 被注解的方法,会在当前类所有测试方法运行后被调用 |
@BeforeMethod | 被注解的方法,会在运行每个测试方法之前调用 |
@AfterMethod | 被注解的方法,会在每个测试方法运行之后被调用 |
ITestContext接口
ITestContext是一个接口,其内部实现了很多的get方法,专门用来获取测试运行时的信息,并可以在同类不同方法之间或者不同类之间传递。ITestContext对象会自动实例化,不同的方法共享ITestContext对象,可以一个方法设置键值对,一个方法通过context获取键值对。但是一定要先运行set再执行get。
public class Demo2 {
@Test
public void test1(ITestContext context) {
context.setAttribute("addr", "asd");
}
@Test
public void test2(ITestContext context) {
System.out.println(context.getAttribute("addr"));
}
}