TestNG单元测试框架学习笔记

        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)配置TestNG.xml文件,设定测试类、测试方法、测试分组的执行信息。

        (5)执行TestNG的测试程序。

        4.TestNG的常用注解

        TestNG的常见测试用例组织结构如下:

  • Test Suite由一个或者多个Test组成
  • Test由一个或者多个测试Class组成
  • 一个测试Class由一个或者多个测试方法组成

        在testng.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标记一个类或方法作为测试的一部分。

        使用注解编写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:判断忽略顺序是否相等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值