服务端测试之接口迁移如何测试?
前言
今天这篇博客是完全基于实际工作中,整理的服务端接口测试的一些心得体会,对服务端测试感兴趣的小伙伴可以看一下哈
需求描述
- 工作中,遇到我们的接口迁移,例如由api/passport,迁移到web/passport,涉及到多个接口。
- 思考:如何保证迁移的正确性呢?
首先我们想到的是,迁移后,新的域名去请求,可以请求成功即可。
但是这样得话,不能保证迁移后与迁移前请求返回是否一致
测试思路
- 第一种
1、旧的接口,通过前端触发出来,抓包抓到对应的请求,复制出curl
2、通过import到curl,把请求从前端搞到postman
3、通过修改请求路径,把路径改成新接口域名进行请求
4、新旧域名请求后,对respose进行diff - 第二种(针对迁移移动端依赖的后端接口迁移)
1、找客户端开发打一个能请求到新域名的包和请求到旧域名的包
2、抓包抓到对应的请求,复制出curl
3、新旧域名请求后,对respose进行diff
测试过程
1、抓包工具抓到对应接口
2、打开postman,把curl,import进去
第一步
第二步
第三步
第四步
第五步
这样我们就能得到请求的返回了
3、这样就可以修改url,请求新旧域名了,复制出response,保存到文件,好做diff
4、下载diff工具Beyond Compare
下载地址
5、打开新旧域名,response结果,进行diff,选择文本对比
选择差别,即可知道接口迁移前后的不同
特殊情况
经常遇到的情况:新接口返回的字段顺序和老接口不一致,导致无法对比
- 解决办法
对新老接口返回数据做排序处理
1、此处用到python的处理文件以及sort排序方法
这样就可以轻松进行对比
import json
a=
b=
with open(rf"C:\Users文件路径.txt", 'a', encoding="utf-8")as f:
f.write(json.dumps(a, indent=4, ensure_ascii=1, sort_keys=True))
f.write('\n\n')
with open(rf"C:\Users文件路径.txt", 'a', encoding="utf-8")as f:
f.write(json.dumps(b, indent=4, ensure_ascii=1, sort_keys=True))
f.write('\n\n')