什么是TestNG
TestNG是一套开源测试框架,是从JUnit继承而来,TestNG意为test next generation。它的优势如下:
- 支持注解。
- 可以在任意的大线程池中,使用各种策略运行测试(所有方法都可以拥有自己的线程或者每个测试类拥有一个线程等等)。
- 代码多线程安全测试。
- 灵活的测试配置。
- 支持数据驱动测试(@DataProvider)。
- 支持参数。
- 强大的执行模型(不再用TestSuite)。
- 支持各种工具和插件(Eclipse、IDEA、Maven等)。
- 可以更灵活地嵌入BeanShell。
- 默认JDK运行时功能和日志记录(无依赖关系)。
- 依赖应用服务测试的方式。
TestNG的最简单示例
我们先来看一个TestNG最简单的示例:
import org.junit.AfterClass; |
从面上的简单示例中可以看出TestNG的生命周期,并且可以看到TestNG是使用注解来控制生命周期的。下面我们来看看TestNG支持的各种注解。
TestNG的注解
TestNG的注解大部分用在方法级别上,一共有六大类注解。
Before类别和After类别注解
- @BeforeSuite:被注解的方法将会在所有测试类执行之前运行。
- @AfterSuite:被注解的方法将会在所有测试类执行之后运行。
- @BeforeTest:被注解的方法将会在当前测试类中的所有测试方法执行之前运行。
- @AfterTest:被注解的方法将会在当前测试类中的所有测试方法执行之后运行。
- @BeforeClass:被注解的方法将会在当前测试类中的第一个测试方法执行之前运行。
- @AfterClass:被注解的方法将会在当前测试类中的最后一个测试方法执行之后运行。
- @BeforeMethod:被注解的方法将会在当前测试类中的每个测试方法执行之前运行。
- @AfterMethod:被注解的方法将会在当前测试类中的每个测试方法执行之后运行。
我们可以根据不同的场景来使用不同的注解。