您的位置:首页 > 其它

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中配置层级结构如下:


  

        运行不同层级的测试用例时,可通过不同注解实现测试前的初始化工作、测试用例执行工作和测试后的清理工作。

        常用注解如下:

注解描述
@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:判断忽略顺序是否相等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息