以下来自个人理解和@覆手为云p的文章,如果错误都是我的错还请原谅
强烈建议自己敲一遍看结果
TestNG的常用注解
注解名 | 备注 |
---|---|
@BeforeSuite | 运行在一个套件的所有测试运行之前,仅运行一次 |
@AfterSuite | 运行在一个套件的所有测试之后,仅运行一次 |
@BeforeClass | 运行在当前类的所有测试方法之前,仅运行一次,如果当前类的测试方法(@Test)没有运行,则不会执行 |
@AfterClass | 运行在当前类的所有测试方法之后,只运行一次,如果当前类的测试方法(@Test)没有运行,则不会执行 |
@BeforeTest | 运行在属于标签内所有测试方法之前 |
@AfterTest | 运行在属于标签内所有测试方法之后 |
@BeforeGroups | 运行在一个或多个组的所有测试方法之前 |
@AfterGroups | 运行在一个或多个组的所有测试方法之后 |
@BeforeMethod | 运行在每一个测试方法之前 |
@AfterMethod | 运行在每一个测试方法之后 |
@Test | 将一个类或者方法标记为测试的一部分 |
注解常用参数
enabled
默认为true,设置为false时,运行时不回执行该方法
groups
1)在一个标签内的所有类方法进行分组,在运行时,一个组的方法会一起运行,然后执行另外一个组的方法
2)一个方法可以属于一个或多个组@Test(groups={"group1","group2"})
,每个组运行的时候,都会运行这个方法
dependOnMethods
在依赖的方法运行完之后,才会运行当前方法,如果依赖方法测试不通过,当前方法不会运行,可以依赖一个或多个@Test(dependsOnMethods={"method1","method2"})
dependOnGroups
在依赖的方法组完成后运行当前方法,与上面类似
timeOut
单位毫秒,超时认为不通过
Xml文件看执行顺序
一个类中测试
新建测试类TestConfig
public class TestConfig {
private boolean flag1=true;
private boolean flag2=true;
private boolean flag3=false;
private boolean flag4=false;
@BeforeSuite
public void beforeSuite(){
System.out.println("Before Suite~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
@AfterSuite
public void afterSuite(){
System.out.println("AFter Suite~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
@BeforeTest
public void beforeTest(){
System.out.println("Before Test----------------------");
}
@AfterTest
public void afterTest(){
System.out.println("After Test-----------------------");
}
@BeforeClass()
public void beforeClass