java接口自动化(二):TestNG的使用

什么是TestNG

TestNG是Java中的一个测试框架,是一个目前很流行实用的单元测试框架,有完善的用例管理模块,配合Maven能够很方便管理依赖第三方插件。使用TestNG可以做功能、接口、单元、集成的自动化测试,最常见的是结合selenium做功能自动化测试,它使用Java注释去写测试方法。

测试人员一般用TestNG来写自动化测试,开发人员一般用Junit写单元测试,TestNG适合测试人员使用的原因:

  1. 比Junit涵盖功能更全面的测试框架;
  2. Junit更适合隔离性比较强的单元测试;
  3. TestNG更适合复杂的集成测试。

编写一个测试的过程包含以下步骤:

  1. 编写测试的业务逻辑并在代码中插入TestNG annotation;
  2. 将测试信息添加到testng.xml文件或build.xml中;
  3. 运行TestNG。

TestNG的使用

在Maven中引用TestNG

使用Maven作为项目管理工具,需要在pom.xml中添加以下依赖,将groupId、artifactId和version引进来后,就可以使用Maven框架进行自动下载和使用。

<dependencies>

	<dependency>

		<groupId>org.testng</groupId>

		<artifactId>testng</artifactId>

		<version>6.10</version>

	</dependency>

</dependencies>

在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语言。

IDEA的使用

IDEA+Maven+TestNG进行代码编写

1、点击右上角的File -> New -> Project
java接口自动化(二):TestNG的使用_第1张图片
2、选择Maven,点击下一步
java接口自动化(二):TestNG的使用_第2张图片
3、Groupid表示项目的包名,Artifactid表示项目名
java接口自动化(二):TestNG的使用_第3张图片
4、工程名和工程目录,点击finish完成创建
java接口自动化(二):TestNG的使用_第4张图片
5、在Maven中引用TestNG
java接口自动化(二):TestNG的使用_第5张图片
1是手动导入更新,2自动导入更新,这是Maven提示每次修改pom.xml文件都会更新,一般都是选择2
java接口自动化(二):TestNG的使用_第6张图片
6、在src - main - java 下面创建一个包,包下面创建一个test类
java接口自动化(二):TestNG的使用_第7张图片
TestNG注解:
1、@Test:用来把方法标记为测试的一部分
2、@BeforeMethod:在每个测试方法运行之前运行的
3、@AfterMethod:在每个测试方法运行之后运行的
4、@BeforeClass:在测试类运行之前运行
5、@AfterClass:在测试类运行之后运行
6、@BeforeSuite:在类运行之前运行
7、@AfterSuite:在类运行之后运行

Test注解常见取值
  1. alwaysRun : 如果alwaysRun=true,表示即使该测试方法所依赖的前置测试有失败的情况,也要执行
  2. ** dataProvider** :选定传入参数的构造器。(@DataProvider注解将在后面章节介绍)
  3. dataProviderClass :确定参数构造器的Class类。(参数构造器首先会在当前测试类里面查找,如果参数构造器不在当前测试类定义,那么必须使用该属性来执行它所在的Class类)
  4. dependsOnGroups : 确定依赖的前置测试组别。
  5. dependsOnMethods : 确定依赖的前置测试方法。
  6. description : 测试方法描述信息。(建议为每个测试方法添加有意义的描述信息,这将会在最后的报告中展示出来)
  7. enabled : 默认为true,如果指定为false,表示不执行该测试方法。
  8. expectedExceptions :指定期待测试方法抛出的异常,多个异常以逗号(,)隔开。
  9. **groups : 指定该测试方法所属的组,可以指定多个组,以逗号隔开。组测试的用法将在后面文章单独介绍。
  10. **invocationCount **:指定测试方法需要被调用的次数。
  11. invocationTimeOut:每一次调用的超时时间,如果invocationCount没有指定,该参数会被忽略。应用场景可以为测试获取数据库连接,超时就认定为失败。单位是毫秒。
  12. priority : 指定测试方法的优先级,数值越低,优先级越高,将会优先与其他数值高的测试方法被调用。(注意是针对一个测试类的优先级)
  13. timeout : 指定整个测试方法的超时时间。单位是毫秒。

你可能感兴趣的:(接口测试,java,java自动化测试)