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

2020-06-02  本文已影响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自带也有断言类,后续会介绍,包括实现断言类的二次封装,增加返回值方便调用。

上一篇下一篇

猜你喜欢

热点阅读