TestNG概述

TestNG是一套根据JUnitNUnit思想而构建的利用注释来强化测试功能的一个测试框架,既可以用来做单元测试,也可以用来做集成测试。

TestNG是一个开源的自动化测试框架,NG表示Next GenerationTestNG即表示下一代测试技术。TestNGJUnit类似,它受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 利用@TestdependsOnMethods属性来应对测试依赖性问题。某方法依赖的方法失败,可以设置它将被跳过,而不是标记为失败。

4. TestNG可以通过Parallel属性设置并发测试。

5. 对于n个不同参数组合的测试,JUnit 4要写n个测试用例。每个测试用例完成的任务基本是相同的,只是受测方法的参数有所改变。TestNG的数据参数化只需要一个测试用例,然后把所需要的参数加到TestNGxml配置文件中。这样的好处是参数与测试代码分离,非程序员也可以修改参数,同时修改无需重新编译测试代码。


 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框架第一讲_java



TestNG测试用例编写

使用TestNG来编写一个测试用例很简单,主要描述为以下几步:

第一步:编写测试用例的业务逻辑。

第二步:在测试方法上插入TestNG注解。

第三步:增加测试用例相关信息,如类名、方法名、组名等等。

第四步:运行该TestNG测试用例。

TestNG框架第一讲_java_02



TestNG测试集文件使用

TestNG框架第一讲_java_03



TestNG数据提供者

这个是通过数据提供者来传递数据的,会把二维数组的数据传递给@Test中并打印出计算结果。

TestNG框架第一讲_java_04