美文网首页
自动化测试之断言:TestNG断言类简述

自动化测试之断言:TestNG断言类简述

作者: 金融测试民工 | 来源:发表于2020-06-02 17:25 被阅读0次

    TestNG之HardAssert和SoftAssert

        我们做自动化的时候经常把代码的重点放在逻辑层,或者数据层。其实我写代码主要精力也放在这边,毕竟mock实际操作才是自动化测试的精髓。以至于最后的在写结果断言的时候就一笔带过。

        assert (EntityRE.contains("成功")); 但是真正看一个测试脚本的水平高低,其实是看断言能力的高低,因为断言才能体现出真正的测试思维和测试经验。可是在实际工作中,相信有些同事可能和我一样对各式各样的断言类也是傻傻分不清楚,那么今天就总结一些常用的断言类,以及断言方法,供大家参考。

    在详细介绍断言类之前,先罗列下经常断言的场景:

    接口:①请求状态,②请求响应时间,③返回json中某个关键字段是否存在或者包含;

    UI:①页面跳转时间,②控件是否正确展示;

    一,硬断言HardAssert:

        TestNG最常用的一个断言类是Assert.java,他提供了很多的静态方法。我们也称为硬断言。

    该类一共提供了33个AssertEquals()方法,主要匹配不同的数据类型和集合类。

    1,最常使用的是assertEquals(actual,expected)或者assertEquals(actual,expected,"message")这两个种实现方式。如果断言成功,该条测试用例PASS,如果断言失败,则会抛出异常AssertionError,并在控制台附上你自定义的message。

    2,assertEqualsNoOrder(actual,expected)

    判断集合中两个对象是否相等,忽略排序。

    3,assertFalse(boolean condition,"message")

    断言一个条件,如果返回结果为false,则测试通过;反之抛出异常,并且附上自定义的信息。

    4,assertTrue(boolean condition,"message")

    断言一个条件,如果返回结果为True,则测试通过,反之抛出异常,并附上信息。

    二,软断言SoftAssert

        虽然硬断言基本上已经覆盖了所有Testng可能用到的断言场景,但是它有一个缺陷就是一旦失败,用例不会继续向下执行。那么软断言正好可以弥补这个缺陷;

    软断言的语法实现上只是多一个类的实例化 SoftAssert assertion=new SoftAssert();    ,其他使用上和硬断言一致,这里不再多说。下面简单介绍下软断言的特点及Tips

    1.如果一个类有多个断言,一个断言失败了不影响其他代码和断言的执行;

    2.在用例的最后一个断言后面加上assertAll()方法;

    以上是Testng中中提供的断言方法,但是JAVA自带也有断言类,后续会介绍,包括实现断言类的二次封装,增加返回值方便调用。

    相关文章

      网友评论

          本文标题:自动化测试之断言:TestNG断言类简述

          本文链接:https://www.haomeiwen.com/subject/slqpzhtx.html