1. 基本介绍
testng是单元测试的框架,ng=next generation.
优势:并发、参数化、日志
2.xml文件说明
suite>test>class
3. 注解说明
@BeforeSuite>@BeforeTest>@BeforeClass>@BeforeMethod>@Test>@AfterMethod>@AfterClass>@AfterTest>@AfterSuite
# class 仅在类内分别在第一个test方法执行前和最后一个test方法执行后才执行
#suite、test分别在xml中包含几个类执行几次
注解背后是怎么回事呢?
本质上是一个与类/接口类似的声明方式。
(1)首先声明一个注解:基于两个元注解和一个关键字完成
@Target(ElementType.**) # 声明注解的作用域,比如方法、参数、属性、类等
@Retention(RetentionPolicy.**) #声明注解的保留域(即存活时间),比如源代码、运行时刻
public @interface first {} # first为注解名称
(2)其次在被应用的类/方法/参数/等使用注解
@first 即可
(3)在额外的类中执行逻辑
基于已有实例通过反射获得类的信息->通过类获得对应的注解->针对注解标识实现注解的逻辑。
- 常见的反射方式: 实例名.getClass() ;Class.forName("类名");类名.class
4. 一般使用方式:PO+数据驱动
基于接口定义entityclass、定义访问接口的请求api类、定义测试类。其中测试类中,需要使用@dataProvider注解的数据方法以及调用数据的@test类。