Apifox接口测试应用之【生产&灰度环境接口数据对比】

前言

        本篇文章主要适用项目部署,存在生产&灰度环境用同一数据库,项目代码不同数据一致,并且有些数据问题只有在实际生产环境中数据会更明显。

        本测试方案,比较适用如迭代更新后,回归报表数据返回值,功能接口数据查询等场景,如果项目中可做到生产库,测试数据隔离的项目,写数据接口也可以尝试。

项目中可解决的问题

        开发在需求迭代中,修改接口返回值未通知或者因为修改父方法,导致原正常接口(未在本次版本迭代的功能)数据返回出错,更新上线之后商家反馈、投诉

测试难点

  1. 不在此次版本功能范围内,测试同学也不会重点关注相关功能,很难对该种问题做出预判。
  2. 特别生产或灰度环境中,更新时间有限,测试回归过程中,功能页面测试,不能完全兼顾到每个页面数据准性,更多的时间是验证本次版本迭代功能

达到效果

  1. 回归到未修改接口新版本返回结果是否与生产环境一致。
  2. 验证此次版本修改的接口,可以在灰度环境重点进行功能回归验证
  3. 通过接口对比测试,还可以发现其他接口报错,比如401、超时等其它情况。
  4. 提高灰度环境回归测试效率,不在依靠单纯页面功能测试一种方式。

不完善地方

  1. 接口返回值对比不一致时,目前的脚本,只能输出response,无法展示出哪些字段不一致,可以通过对比工具手动验证数据,在针对性测试具体功能

说明:不完善的地方,可以续继续研究比如通过编写脚本实现。

关于接口测试工具选型

        过去常用postman(国外开源),功能比较全,同样可以解决以上问题(实现原理都是一样的),查资料时看到Apifox(国内软件)比较好用,整体接口测试流程跑通过程中,公共参数设置,以及接口用例编写生成,测试报告等,都比较符合项目中的场景,更符合实际项目中测试使用,用起来比较方便。

        具体使用操作以及其他功能的扩展,可以自行完善学习,如果觉得可以运用到项目中,一起研究实践更多方案。

apifox官网地址:

https://apifox.com/

操作流程

  1. 创建、调通接口(可谷歌浏览器抓取接口\swagger导入\postman代理抓取导入Apifox)

        2.设置“后置操作”脚本实现,第1次调用prod环境接口获取response值存储到公共参数中,第2次灰度环境接口,获取公共参数response值,并进行对比判断。

        3.公共脚本设置

脚本1:

pm.environment.set("data",responseBody);

脚本2:

ar data = pm.environment.get("data");
if(responseBody == data){
    tests["与Prod接口数据返回一致!"]=  responseBody == data;
}else{
    tests["与Prod接口数据返回不一致!请注意验证!"] =  responseBody == data;
    pm.test(pm.response.text());
}

        4.创建测试环境,用于保存公共参数,测试环境地址等;

        公共参数,测试环境地址

        全局参数header设置,使用该环境的接口会默认全局header,非常方便后续统一改Authorization,防止过期不能使用。

        5.自动化测试,导入用例,执行用例。

        6.输出执行结果,可导出测试结果

        7.失败的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值