TestNG常用注解有:
@BeforeTest/@AfterTest : 一个测试类中,在所有@Test整体执行之前/之后,仅运行一次。
@BeforeMethod/@AfterMethod : 一个测试类中,在每个@Test方法执行之前/之后,运行一次。
@Test : 测试Case,执行顺序按照每个case方法名称的ASCII表的顺序来执行,所以建议每个Case基于前置和后置方法,可以独立运行。
@BeforeClass/@AfterClass : 类实例化前后, 被执行, 主要用于设置环境变量等。
@BeforeGroups/@AfterGroups : 不常用
@BeforeSuite/@AfterSuite : 不常用
/以下为实例演示和结果输出/
结果:
这是第1个:BefeTesort
这是第2个:BefeTesort
这是:@BeforeMethod
这是:@Test 【测试Case01】
这是:@AfterMethod
这是:@BeforeMethod
这是:@Test 【测试Case02】
这是:@AfterMethod
这是:@AfterTest
===============================================
Default Suite
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
代码:
package webdriver.demo;
import org.testng.annotations.;
public class TestNGDemo {
@BeforeTest
public void beforTest(){
/
会在这个Class文件运行TestCase之前,运行且仅运行一次,例如数据准备
/
System.out.println("这是第1个:BefeTesort");
}
@BeforeTest
public void beforTest2(){
/
一个测试类中是可以多个BeforeTest注解,但建议做好封装,BeforeTest中,仅调用已封装好的类即可。
/
System.out.println("这是第2个:BefeTesort");
}
@BeforeMethod
public void beforeMethod(){
/
会在每一个@Test注解的TestCase之前,运行且仅运行一次
/
System.out.println("这是:@BeforeMethod");
}
@Test
public void case_1(){
/
@Test注解表示,这是一个测试Case
/
System.out.println("这是:@Test 【测试Case01】");
}
@Test
public void case_2(){
System.out.println("这是:@Test 【测试Case02】");
}
@AfterTest
public void afterTest(){
/
@AfterTest 效果与BeforeTest一样,不同点在于在所有TestCase运行完后,运行且仅运行一次,进行后置处理
/
System.out.println("这是:@AfterTest");
}
@AfterMethod
public void afterMethod(){
/
@AfterMethod 效果与BerforMethod一样,不同点在于在每个TestCase方法运行完后,运行一次,比如每个case最后一步需要关闭浏览器,那么可以抽取出来,写在afterMethod里
*/
System.out.println("这是:@AfterMethod");
}
}