请求响应结果和预期结果做对比

#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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值