TestNG概述
TestNG是一套根据JUnit和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,既可以用来做单元测试,也可以用来做集成测试。
TestNG是一个开源的自动化测试框架,NG表示Next Generation,TestNG即表示下一代测试技术。TestNG与JUnit类似,它受JUnit测试思想启发但是比JUnit更加强大,特别是在集成测试时候。特别感谢TestNG的创始人Cedric Beust, TestNG为我们测试者带来诸多方便。
TestNG消除了以往老的测试框架中的许多限制,让开发者和测试者能够通过简单的注解、分组、指定顺序、参数化就可以编写更加灵活、更加强大的测试用例。
TestNG官方文档:http://testng.org/doc/documentation-main.html
TestNG优点
TestNG有如下优点:
1. TestNG可以生成HTML格式的测试报告。对测试结果的描述更加详细,方便定位错误。
2. TestNG注解丰富,如@ExpectedExceptions、@DataProvider等。
3. TestNG可以对测试用例进行分组或指定测试用例执行的先后顺序。JUnit 4测试的依赖性非常强,测试用例间有严格的先后顺序。前一个测试不成功,后续所有的依赖测试都会失败。TestNG 利用@Test的dependsOnMethods属性来应对测试依赖性问题。某方法依赖的方法失败,可以设置它将被跳过,而不是标记为失败。
4. TestNG可以通过Parallel属性设置并发测试。
5. 对于n个不同参数组合的测试,JUnit 4要写n个测试用例。每个测试用例完成的任务基本是相同的,只是受测方法的参数有所改变。TestNG的数据参数化只需要一个测试用例,然后把所需要的参数加到TestNG的xml配置文件中。这样的好处是参数与测试代码分离,非程序员也可以修改参数,同时修改无需重新编译测试代码。
TestNG安装
如果在IntelliJIDEA中使用maven,在项目的pom.xml文件中增加依赖描述即可:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<scope>test</scope>
</dependency>
TestNG注解
使用注解的好处
1. TestNG通过查找注解定位到目标方法,因此方法名称并不局限于任何格式或语法。
2. 我们可以通过注解传递参数。
3. 注解是强类型的,所以编译器可以立即识别任何错误。
4. 测试类不再需要继承任何类。
2.4.2 TestNG中注解种类
@BeforeSuite
@AfterSuite
@BeforeTest
@AfterTest
@BeforeGroups
@AfterGroups
@BeforeClass
@AfterClass
@BeforeMethod
@AfterMethod
@DataProvider
@Factory
@Listeners
@Parameters
@Test
TestNG中注解执行顺序
TestNG测试用例编写
使用TestNG来编写一个测试用例很简单,主要描述为以下几步:
第一步:编写测试用例的业务逻辑。
第二步:在测试方法上插入TestNG注解。
第三步:增加测试用例相关信息,如类名、方法名、组名等等。
第四步:运行该TestNG测试用例。
TestNG测试集文件使用
TestNG数据提供者
这个是通过数据提供者来传递数据的,会把二维数组的数据传递给@Test中并打印出计算结果。