postman断言使用实现自动化测试(简化)

最近开发完一个模块,老大要用postman实现自动化测试,这个任务落到了我们头上,记录一下是怎么使用的。

首先先谈一下自动化测试吧。照我的理解吧,自动化测试就是不依赖前台,但依赖后台返回给前台的结果对象,批量处理数据来测试。就我们目前采用的方式,通过Execl表格来添加数据,然后xlsx2json-master将其转化我我们所需要的JSON对象,然后导入到postman中,就是就是疯狂刷数据了。JSON导入的方法:

postman断言使用实现自动化测试(简化)

postman断言使用实现自动化测试(简化)

 

我们要返回给前台的类。


import lombok.Data;

@Data
public class ResultBaseVo<T> {
    /**
     *  默认成功
     */
    private boolean success=true;
    private String errMsg="";
    private T data;
}

 

其中success表示执行的结果是成功还是失败,errMsg表示在失败情况下记录的错误信息,data表示查询列表在成功情况下时传递的值。

接下来就是postman的断言编写,其实就是模拟前台进行的一套操作,新建-修改-删除这个步骤,当然,在这里我们只是模拟页面操作,并不涉及到页面。其实就是通过我们提前在Execl中编写的数据来动态控制跳转请求。就以我最近写的水电成本为例吧。

postman断言使用实现自动化测试(简化)

先对未添加的数据进行查询,获取到未添加时的长度,将其放到postman的全局变量中,为接下来的操作来做准备(默认跳转的请求是按照postman中的目录顺序来的)。

下面就是获取单价的一些信息,因为是水电成本,肯定会相关联它的单价还有数量,单价的话是在另一个模块中设置的,所以在此处,我必须要先调用那个模块来获取这些信息,最后才能新增成本,存放到数据库。

postman断言使用实现自动化测试(简化)

postman断言使用实现自动化测试(简化)

第一张图所执行的是在上一个请求结束后,这个请求未开始执行的一些操作,在这里,WATERCOSTREPORT,ELECTRICPRICE是业务编码,代表了成本的类别,相当于水费,电费,二转化后的code是单价的业务编码,我也是将其存放到全局变量之中,然后地址栏上在获取到这个code,代入它,去查找对应的单价信息。

第二张图就是获取要我想要的单价策略后,将后续请求所需要的数据给放到全局变量,让后期可以获取到这些数据,然后执行。比如priceId,代表单价信息的ID,这些都是新建的时候要放到数据库中的。

接下来就是新建水电成本。

postman断言使用实现自动化测试(简化)

postman断言使用实现自动化测试(简化)

首先,第一张图,我是模拟前台页面来计算出我所花费的水电合计总价。然后在后台我有对应总价的逻辑校验,只有前台和后台计算的总价都相等时,才可以新建成功。

第二张图是对新建完毕后的校验,通过ResultBaseVo中的success,errMsg来判定是否是添加成功。(注:expectErrMsg是Excel中导入的期望错误信息,假设我故意输入一个错误数据,expectErrMsg就是我想执行完毕后看到的错误信息,如果是正确数据导入,并不影响执行,不做太多说明)。

新建完毕之后也要接着查询数据库,观察数据库是否添加了这条数据,断言如下:

postman断言使用实现自动化测试(简化)

postman断言使用实现自动化测试(简化)

修改和删除与新建类似,不做太多说明了,照猫画虎即可。