testng标签
1、@test:最基本的注解,用来把方法标记为测试的一部分
2、@BeforeMethod: 测试方法之前运行的方法
3、@AfterMethod:测试方法之后运行的方法
4、@BeforeClass: 指的是在类运行之前运行的方法
5、@AfterClass:指的是在类运行之后运行的方法
6、@BeforeTest:多个测试类的集合,在设定好的测试集合前运行的方
7、@AfterTest:多个测试类的集合,在设定好的测试集合后运行的方法
8、@ BeforeSuite: 测试套件,在类运行之前运行的方法:
9、@ AfterSuite: 测试套件,在类运行之后运行的方法
10、@Test(dependsOnMethods = {"test1"}):依赖测试,在执行次方法之前执行test1方法之前
11、@Test(expectedExceptions = RuntimeException.class):异常测试,方法里面要抛出异常throw new RuntimeException();,否则会是一个失败的异常测试
12、@Test(enabled = true):忽略测试
13、@Test(timeOut = 2000):超时测试
14、@Test(invocationCount = 10,threadPoolSize = 3),多线程测试,一般用xml配置
总结:testng的annotations运行顺序为:
@BeforeSuite>@BeforeTest>@BeforeClass>@BeforeMethod>@test>@AfterMethod>@AfterClass>@AfterTest>@AfterSuite
suit套件测试(按类分)
上述内容大家基本都了解,而在实际使用中我们再配合套件时,需要注意:
假设现在有如图所示项目,
LogInTest类:登录测试类;ParTest类:支付测试类;SuiteConfig类:套件配置类;suite.xml:套件xml文件
我们期望实现的是通过xml文件运行整个项目
登录类内容
支付类内容
套件配置类内容
xml文件内容,xml的内容配置在resources下
点击对应的xml,右键,实际运行结果如下:
分组测试(按方法分组,也可以分开写)
@Test(groups = “stu”)组
@Test(groups = “teacher”)组
分组的配置文件
现在对应的xml,右键,查看运行结果
多线程运行(在方法里面配置)
三个线程池运行里随机运行10次方法
运行结果
多线程运行(在xml里面配置)
-
tests级别:不同的test tag下的用例可以在不同的线程下执行
相同的test tag下的用例只能在同一个线程中去执行 -
classs级别:相同的class tag 下的用例在同一个线程中执行
不同的class tag 下的用例可以在不同的线程中执行 -
methods级别:所有用例都可以在不同的线程下去执行
-
thread-count:代表了最大并发线程数
xml文件配置这种方式不能指定线程池,只有方法上才可以指定线程池
运行结果;