什么是TestNG
TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些使其更强大且更易于使用的新功能,例如:
- 注解。
- 在具有各种可用策略的任意大线程池中运行测试(所有方法都在各自的线程中,每个测试类一个线程,等等)。
- 测试您的代码是否是多线程安全的。
- 灵活的测试配置。
- 支持数据驱动的测试(使用
@DataProvider
)。 - 支持参数。
- 强大的执行模型(不再需要
TestSuite
)。 - 由各种工具和插件(Eclipse,IDEA,Maven等)支持。
- 嵌入BeanShell以获得更高的灵活性。
- 用于运行时和日志记录的默认JDK函数(无依赖项)。
- 应用服务器测试的相关方法。
TestNG旨在涵盖所有类别的测试:单元,功能,端到端,集成等。
在Maven中引用TestNG
使用Maven作为项目管理工具,需要在pom.xml中添加以下依赖,将groupId、artifactId和version引进来后,就可以使用Maven框架进行自动下载和使用。
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
等我们执行testNG.xml文件的时候可能会抛出ElementTravelsal找不到的问题,此时我们需要导入以下依赖:
<!-- https://mvnrepository.com/artifact/xml-apis/xml-apis -->
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
在Gradle中引用TestNG
使用Gradle作为项目管理工具,需要在build.gradle中dependencies
添加以下就可正常使用。
testCompile group: 'org.testng', name: 'testng', version: '7.1.0'
顺便说一下什么是Gradle。Gradle是一个基于Ant和Maven概念的项目自动化构建工具,它是通过Groovy来声明项目设置,而不是传统的XML.支持Java\Groovy和Scala语言。
TestNG.xml文件
testNG.xml文件格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--测试套件-->
<suite namme="Suite" parallel="false">
<!--测试集合-->
<test name="Test">
<!--测试类集合-->
<classes>
<!--测试类,可有多个-->
<class name = "com.muchuan.test.Test2"/>
</classes>
</test>
</suite>
文件解释:
<suite>
测试套件,将所有测试类整理在一块,形成一套测试用例;parallel
需不需要用到并发<test>
测试集合,就是测试类的集合,一般我们可以把一个小模块当成一个test测试集来设计<classes>
此测试集合下所有的测试类<class>
对应的相关测试类,name
指定测试类的完整路径(包含包名)
dtd
文件定义了xml文件的模板和约束
执行测试套件:其实执行的是套件中定义的每个测试集底下对应所有测试类中的所有测试方法
TestNG常用注解
非配置类注解
@Test
标记方法(函数)为测试方法
@Test
public void test(){
System.out.print("这是一个测试方法");
}
参数化注解
在testNG.xml配置文件中定义参数
<!--定义参数-->
<parameter name = "author" value = "MuChuan"></parameter>
@parameter
注入testng.xml中定义的<parameter>
参数
@Test
@parameter(value = {
"author"})
public