#expect_result 预期结果
#actual_result 实际结果即接口响应结果
"""
import json
url = "url"
body = {"id": "id", "t": "1675825341097"}
headers = {"Authorization": ""}
res = requests.get(url=url, params=body, headers=headers, verify=False)
actual_result = res.content.decode()
expect_result = {"code": 2000, "data": [{"sub_account_info_list": [{"customer_id": "971", }]},{"sub_account_info_list": [{"customer_id": "971"}], "replace_pay": True,"transfer_pay": True}]}
"""
def check(expect_result, actual_result):
actual_result = actual_result.replace("'", '"')
# actual_result = actual_result.replace(" ", "")
for k, v in expect_result.items():
if isinstance(v, str):
val = f'"{k}"' + ":" + f'"{v}"'
elif isinstance(v, list):
check_list(k, v, actual_result)
elif isinstance(v, dict):
check(v, actual_result)
else:
v = json.dumps(v, ensure_ascii=False)
v = v.replace(": ", ":")
v = v.replace(", ", ",")
val = f'"{k}"' + ":" + f"{v}"
if val in actual_result:
continue
else:
print(f"预期结果{val}不在实际结果{actual_result}中")
# logging.info(f"预期结果{val}不在实际结果{actual_result}中")
return False
return True
def check_list(k, s, actual_result):
for i in s:
if isinstance(i, dict):
check(i, actual_result)
elif isinstance(i, list):
check_list(k, i, actual_result)
else:
break
v = json.dumps(s, ensure_ascii=False)
v = v.replace(": ", ":")
v = v.replace(", ", ",")
val = f'"{k}"' + ":" + f"{v}"
print(check(expect_result, actual_result))
请求响应结果和预期结果做对比
最新推荐文章于 2024-11-13 17:26:18 发布