TestNG单元测试框架学习笔记
2018-04-02 21:06
309 查看
TestNG单元测试框架比Junit单元测试框架更强大,它提供了更多的扩展功能。目前,很大一部分自动化测试工程师已经开始转向使用TestNG单元测试框架来运行更复杂的自动化测试用例。
1.什么是TestNG
TestNG是一种单元测试框架,它借鉴了JUnit和Nunit框架的优秀设计思想,引入更易用和更强大的功能。TestNG是一种开源自动化测试框架,NG就是下一代的意思(Next Generation)。TestNG的使用和JUnit有些类似,但是它的设计实现比JUnit框架更好,提供了更灵活和更强大的功能。
2.TestNG的优点
(1)漂亮的HTML格式测试报告
(2)支持并发测试
(3)参数化测试更简单
(4)支持输出日志
(5)支持更多的功能注解。
3.编写TestNG测试用例的步骤
(1)使用Eclipse生成TestNG的测试程序框架。
(2)在生成程序框架中编写测试代码逻辑。
(3)根据测试代码逻辑,插入TestNG注解标签。
(4)配置Testing.xml文件,设定测试类、测试方法、测试分组的执行信息。
(5)执行TestNG的测试程序。
4.TestNG的常用注解
TestNG的常见测试用例组织结构如下:
Test Suite由一个或者多个Test组成
Test由一个或者多个测试Class组成
一个测试Class由一个或者多个测试方法组成
在testing.xml中配置层级结构如下:
运行不同层级的测试用例时,可通过不同注解实现测试前的初始化工作、测试用例执行工作和测试后的清理工作。
常用注解如下:
使用注解编写TestNG测试用例步骤如下:
(1)在工程TestNGProj下新建一个名为Annotation的Java类。
(2)输入测试代码
(3)选中“Annotation.java”类名,单击鼠标右键,在弹出的快捷菜单中选择“Run As”->“TeatNG Test”命令执行当前测试类中的TestNG测试用例。
(4)得到测试结果。
每个含有注解的类方法如果被调用,均会打印出其对应的注解含义,从执行的结果可以分辨出不同的注解方法会在何时被调用。
5.测试集合
在自动化测试执行过程中,通常会批量运行多个测试用例的需求,此需求称为运行测试集合(Test Suite)。TestNG的测试用例可以是相互独立的,也可以按照特定的顺序来执行。
通过TestNG.xml的配置,可实现运行多个测试用例的不同组合。
6.测试用例的分组
TestNG使用group关键字进行分组,用来执行多个Test的测试用例。
7.依赖测试
某些复杂的测试场景需要按照某个特性顺序执行测试用例,以此来保证某个测试用例被执行之后才执行其他测试用例,此测试场景运行需求称为依赖测试。通过依赖测试,可以在不同测试方法间共享数据和程序状态。TestNG支持依赖测试,使用dependsMethods参数来实现。
8.特定顺序执行测试用例
使用参数priority可实现按照特定顺序执行测试用例。
9.跳过某个测试方法
使用参数enabled=false来跳过某个测试方法。
10.测试报告中的自定义日志
TestNG提供了日志功能,在测试过程中可通过自定义的方式记录测试脚本的运行信息。日志信息一般使用两种模式进行记录,即高层级和低层级。低层级模式日志会记录所有的测试步骤信息,高层级模式日志只记录测试脚本的主要事件信息。读者可以根据测试需求选择日志信息的记录层级。
11.断言
assertTrue:判断是否为True。
assertFalse:判断是否为false。
assertSame:判断引用地址是否相同。
assertNotSame:判断引用地址是否不相同。
assertNull:判断是否为null。
assertNotNull:判断是否不为null。
assertEquals:判断是否相等,Object类型的对象需要实现haseCode及equals方法。
assertNotEquals:判断是否不相等。
assertEqualsNoOrder:判断忽略顺序是否相等。
1.什么是TestNG
TestNG是一种单元测试框架,它借鉴了JUnit和Nunit框架的优秀设计思想,引入更易用和更强大的功能。TestNG是一种开源自动化测试框架,NG就是下一代的意思(Next Generation)。TestNG的使用和JUnit有些类似,但是它的设计实现比JUnit框架更好,提供了更灵活和更强大的功能。
2.TestNG的优点
(1)漂亮的HTML格式测试报告
(2)支持并发测试
(3)参数化测试更简单
(4)支持输出日志
(5)支持更多的功能注解。
3.编写TestNG测试用例的步骤
(1)使用Eclipse生成TestNG的测试程序框架。
(2)在生成程序框架中编写测试代码逻辑。
(3)根据测试代码逻辑,插入TestNG注解标签。
(4)配置Testing.xml文件,设定测试类、测试方法、测试分组的执行信息。
(5)执行TestNG的测试程序。
4.TestNG的常用注解
TestNG的常见测试用例组织结构如下:
Test Suite由一个或者多个Test组成
Test由一个或者多个测试Class组成
一个测试Class由一个或者多个测试方法组成
在testing.xml中配置层级结构如下:
运行不同层级的测试用例时,可通过不同注解实现测试前的初始化工作、测试用例执行工作和测试后的清理工作。
常用注解如下:
注解 | 描述 |
---|---|
@BeforeSuite | 注解的方法将只运行一次,运行所有测试前此套件中。 |
@AfterSuite | 注解的方法将只运行一次此套件中的所有测试都运行之后。 |
@BeforeClass | 注解的方法将只运行一次先行先试在当前类中的方法调用。 |
@AfterClass | 注解的方法将只运行一次后已经运行在当前类中的所有测试方法。 |
@BeforeTest | 注解的方法将被运行之前的任何测试方法属于内部类的 <test>标签的运行。 |
@AfterTest | 注解的方法将被运行后,所有的测试方法,属于内部类的<test>标签的运行。 |
@BeforeGroups | 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。 |
@AfterGroups | 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。 |
@BeforeMethod | 注解的方法将每个测试方法之前运行。 |
@AfterMethod | 被注释的方法将被运行后,每个测试方法。 |
@DataProvider | 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。 |
@Factory | 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。 |
@Listeners | 定义一个测试类的监听器。 |
@Parameters | 介绍如何将参数传递给@Test方法。 |
@Test | 标记一个类或方法作为测试的一部分。 |
(1)在工程TestNGProj下新建一个名为Annotation的Java类。
(2)输入测试代码
(3)选中“Annotation.java”类名,单击鼠标右键,在弹出的快捷菜单中选择“Run As”->“TeatNG Test”命令执行当前测试类中的TestNG测试用例。
(4)得到测试结果。
每个含有注解的类方法如果被调用,均会打印出其对应的注解含义,从执行的结果可以分辨出不同的注解方法会在何时被调用。
5.测试集合
在自动化测试执行过程中,通常会批量运行多个测试用例的需求,此需求称为运行测试集合(Test Suite)。TestNG的测试用例可以是相互独立的,也可以按照特定的顺序来执行。
通过TestNG.xml的配置,可实现运行多个测试用例的不同组合。
6.测试用例的分组
TestNG使用group关键字进行分组,用来执行多个Test的测试用例。
7.依赖测试
某些复杂的测试场景需要按照某个特性顺序执行测试用例,以此来保证某个测试用例被执行之后才执行其他测试用例,此测试场景运行需求称为依赖测试。通过依赖测试,可以在不同测试方法间共享数据和程序状态。TestNG支持依赖测试,使用dependsMethods参数来实现。
8.特定顺序执行测试用例
使用参数priority可实现按照特定顺序执行测试用例。
9.跳过某个测试方法
使用参数enabled=false来跳过某个测试方法。
10.测试报告中的自定义日志
TestNG提供了日志功能,在测试过程中可通过自定义的方式记录测试脚本的运行信息。日志信息一般使用两种模式进行记录,即高层级和低层级。低层级模式日志会记录所有的测试步骤信息,高层级模式日志只记录测试脚本的主要事件信息。读者可以根据测试需求选择日志信息的记录层级。
11.断言
assertTrue:判断是否为True。
assertFalse:判断是否为false。
assertSame:判断引用地址是否相同。
assertNotSame:判断引用地址是否不相同。
assertNull:判断是否为null。
assertNotNull:判断是否不为null。
assertEquals:判断是否相等,Object类型的对象需要实现haseCode及equals方法。
assertNotEquals:判断是否不相等。
assertEqualsNoOrder:判断忽略顺序是否相等。
相关文章推荐
- JavaScript学习笔记6-单元测试框架之Jasmine
- 【学习笔记】系列十六:Ant单元测试TestNG
- 单元测试框架Jasmine学习笔记
- HTML学习笔记(三)--框架/部分基础/实体
- WCF学习笔记之 - 搭建WCF技术知识框架
- Java框架spring 学习笔记(十五):操作MySQL数据库
- Django框架学习笔记(13.获取单表单数据的三种方式)
- Hadoop学习笔记(7)-简述MapReduce计算框架原理
- Android非空格式验证框架Validation的使用---第三方库学习笔记(四)
- TensorFlow深度学习框架学习笔记(1)
- jfinal框架教程-学习笔记(二)
- NUnit学习笔记4--单元测试和项目结合的几种方法
- bootstrap框架学习笔记一(模板,排版-段落-列表-表格部分)
- JavaScript学习笔记--第四章.框架间对象的调用
- 2018年3月第二周学习笔记(MVVM代码框架,UIViewController的子类视图控制器,String和SubString
- 【day 10】python编程:从入门到实践学习笔记- 基于Django框架的Web开发-Django入门(一)
- Thrift框架学习笔记 IOS/MAC中使用Thrift框架
- 微软MSF框架学习笔记(7)
- JavaSE中Map框架学习笔记
- 【转】Java集合框架学习笔记