基本注解:
在日常的自动化测试过程中,经常有打开浏览器、访问数据库或者其他共性的前置操作,在使用TestNg的测试框架中,可以使用以下方法进行操作
- @BeforeSuite - 对于套件测试,在此套件中的所有测试运行之前运行。@AfterSuite - 对于套件测试,在此套件中的所有测试运行之后运行。
- @BeforeTest - 对于套件测试,在运行属于标签内的类的任何测试方法之前运行。
- @AfterTest - 对于套件测试,在运行属于标签内的类的所有测试方法都已运行之后运行。
- @BeforeGroups:在调用属于该组的第一个测试方法之前运行。
- @AfterGroups:在调用属于组的最后一个测试方法之后运行。
- @BeforeClass- 在当前类的第一个测试方法之前运行。
- @AfterClass - 运行当前类中的所有测试方法之后都运行。
- @BeforeMethod - 在每个测试方法之前运行。
- @AfterMethod - 在每个测试方法之后运行。
代码示例
import org.testng.annotations.*;
public class TestNgDemo1 {
@BeforeSuite
public void beforeSuite(){
System.out.println("beforeSuite");
}
@BeforeClass
public void beforeClass(){
System.out.println("beforeClass");
}
@BeforeMethod
public void beforeMethod(){
System.out.println("beforeMethod 每个测试类执行一次");
}
@BeforeTest
public void beforeTest(){
System.out.println("beforeTest");
}
@AfterGroups
public void beforeGroups(){
System.out.println("beforeGroups");
}
@Test
public void test_001(){
System.out.println("test 测试类开始执行");
}
@Test
public void test_002(){
System.out.println("test 第二个测试类");
}
@AfterSuite
public void afterSuite(){
System.out.println("afterSuite");
}
@AfterClass
public void afterClass(){
System.out.println("afterClass");
}
@AfterMethod
public void AfterMethod(){
System.out.println("afterMethod 每个测试类执行一次");
}
@AfterTest
public void AfterTest(){
System.out.println("afterTest");
}
@AfterGroups
public void afterGroups(){
System.out.println("afterGroups");
}
}
执行结果:
beforeSuite
beforeTest
beforeClass
beforeMethod 每个测试类执行一次
test 测试类开始执行
afterMethod 每个测试类执行一次
beforeMethod 每个测试类执行一次
test 第二个测试类
afterMethod 每个测试类执行一次
afterClass
afterTest
afterSuite