介绍
TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便。
TestNG的特点:
1、注解。
2、在具有各种可用策略的任意大线程池中运行测试(所有方法都在其自己的线程中,每个测试类一个线程)。
3、支持多线程测试。
4、支持灵活的测试配置。可以选择执行或者忽略哪个分组
5、支持数据驱动的测试(使用@DataProvider)。
6、支持依赖测试方法,并行测试、负载测试、局部故障
TestNG运行方式:
1、通过TestNG配置文件
2、直接运行有@Test标签的java文件
3、命令行
xml文件配置:

TestNG的常用注解
1、@Test
@Tets是TestNG的核心注解,被注解的方法,表示为一个测试方法。

(1)description属性
描述这个测试方法
(2)enable属性
设置为false时,被注解的方法将不会执行
(3)groups属性
为测试方法加上用例等级(smoke、inspection、regress)、功能标签、时间标签
(4)invocationCount属性
方法执行次数

(5)threadPoolSize属性
线程池内线程的个数,并发测试可以用到这个参数

(6)timeOut属性
超时时间-毫秒

(7)dependsOnMethods属性
测试方法case1依赖于case2,case2先于case1执行。如果case2失败了则case1也不执行,这叫硬依赖(如果方法发生异常但是被捕获到,此方法不算执行失败,如果异常被抛出则此方法执行失败)。

(8)alwaysRun属性
在添加依赖关系时,加上alwaysRun=“true”的属性,无论依赖是否成功,此方法都会继续执行。
2、@Listeners
可以参考这篇文章:
https://www.jianshu.com/p/2f934240699e
定义一个测试类的监听器,只能添加到测试类上,不能添加的具体方法。
(1)在配置文件中使用

(2)在测试类中使用(比较常用)

3、@Parameters
(1)一个参数

(2)多个参数

4、@DataProvider、@DataProviderClass
为测试方法提供数据。首先利用@DataProvider(name = "XXX")的属性,将name的值XXX 传递给 @Test(dataProvider = "XXX")

5、@Before
@BeforeClass,被注解的方法在此类所有测试方法前执行
@BeforeMethod,被注解的方法在每个@Tets方法前执行
@BeforeSuite,被注解的方法在当前Suite中方法执行前执行
@BeforeTest,被注解的方法在每个@Test方法前执行
@BeforeGropu,被注解的方法在指定组内方法执行前执行
6、@After
@AfterClass,被注解的方法在此类所有测试方法后执行
@AfterMethod,被注解的方法在每个@Tets方法后执行
@AfterSuite,被注解的方法在当前Suite中方法执行后执行
@AfterTest,被注解的方法在每个@Test方法后执行
@AfterGropu,被注解的方法在指定组内方法执行后执行
xml配置文件常用标签:

网友评论