场景:
已将系统相关的接口的接口测试用例完成,现增加比较同一接口、同一请求参数在线上和测试环境的返回值。
流程图:
关键处理: 以差值的 key 作为对比
由于同一接口在不同环境间的返回值可能包含不固定的值(如 id、时间戳等),因此无法以返回值是否完全匹配作为对比结果。
因此选择获取返回值差值的 key 列表作为判断对比是否通过的标准。
部分代码:
1. 比较两个 dict 的差值
分别传入正式环境的返回值数组和测试环境的返回值数组; 对比结果为一个新的数组,内容为两个数组不匹配的字段。
def symmetric_difference(oldobj,newobj):
oldobj=json.loads(oldobj)
newobj=json.loads(newobj)
print(oldobj)
print(newobj)
oldkeys = list(oldobj.keys())
newkeys = list(newobj.keys())
diff = {}
for _key in set(oldkeys + newkeys):
if newobj.get(_key,0) != oldobj.get(_key,0):
diff[_key] = "new:%s, ol