博客
关于我
python+pytest接口自动化 —— 参数关联
阅读量:796 次
发布时间:2023-03-07

本文共 2721 字,大约阅读时间需要 9 分钟。

参数关联与接口自动化测试

参数关联,也称为接口关联,是软件开发和测试中的一个重要概念。它指的是在完成某一功能业务时,需要按顺序请求多个接口,而这些接口之间可能存在参数的依赖关系。这种关联关系在实际业务流程中非常常见,尤其是在需要多步骤完成的场景中。

参数关联的常见场景

参数关联最常见的场景之一是登录接口后获取token值,后续其他接口请求时需要将token作为请求参数传入。例如,在网上购物流程中,用户下单后会生成订单号,这个订单号会被用于后续的支付接口请求中。

以网上购物为例,用户在购物车中选择商品并点击【去结算】进入订单确认页,点击【提交订单】后会先请求下单接口创建订单。紧接着会拿创建的订单号去请求获取支付凭证接口,调起支付页面。支付完成后,支付接口会返回支付结果。

参数关联的实现示例

以下单接口和获取支付凭证接口为例,参数关联可以通过订单号实现。下单接口的请求参数包括商品ID、SKU ID、购买数量和优惠信息等,返回的数据中包含生成的交易订单号。这个订单号会被作为参数传递给支付接口,用于完成支付流程。

下单接口的请求参数如下:

{  "goodsId": 10,  "goodsSkuId": 33,  "num": 2,  "tradePromotion": {    "type": 1,    "promotionId": 1  },  "tradeDirectionArticle": {    "articleId": 1  }}

支付凭证接口的请求参数则是:

{  "orderNo": "0020220116204344962706666",  "product": "alipayWapClient"}

通过上述方式,两个接口通过订单号参数实现了关联,确保支付流程顺利进行。

参数关联的脚本编写

在接口自动化测试中,参数关联可以通过两种方式实现:

  • 流水式调用:在测试用例中按顺序调用相关接口,确保每个接口的返回值被正确处理和传递。例如:
  • def test_order_pay():    # 创建订单    url_order = "https://gouwu.com/trade/order/purchase"    data_order = {        "goodsId": 10,        "goodsSkuId": 33,        "num": 2,        "tradePromotion": {            "type": 1,            "promotionId": 1        },        "tradeDirectionArticle": {            "articleId": 1        }    }    res_order = requests.post(url=url_order, json=data_order).text    tradeNo = json.loads(res_order)["tradeNo"]        # 获取支付凭证    url_pay = "https://gouwu.com/pay/pre/consum"    data_pay = {        "orderNo": tradeNo,        "product": "alipayWapClient"    }    res_pay = requests.post(url=url_pay, json=data_pay).text    res_pay = json.loads(res_pay)        # 断言    assert res_pay["code"] == 0    assert res_pay["data"]["payNo"]    assert res_pay["data"]["certificate"]
    1. Fixture函数:将依赖接口编写成fixture函数,使用yield返回下个接口需要的参数。例如:
    2. @pytest.fixture()def get_order():    # 请求下单接口,创建订单    url_order = "https://gouwu.com/trade/order/purchase"    data_order = {        "goodsId": 10,        "goodsSkuId": 33,        "num": 2,        "tradePromotion": {            "type": 1,            "promotionId": 1        },        "tradeDirectionArticle": {            "articleId": 1        }    }    res_order = requests.post(url=url_order, json=data_order).text    tradeNo = json.loads(res_order)["tradeNo"]    yield tradeNodef test_pay(get_order):    # 下单-支付场景校验    url_pay = "https://gouwu.com/pay/pre/consum"    data_pay = {        "orderNo": get_order,        "product": "alipayWapClient"    }    res_pay = requests.post(url=url_pay, json=data_pay).text    res_pay = json.loads(res_pay)        # 断言    assert res_pay["code"] == 0    assert res_pay["data"]["payNo"]    assert res_pay["data"]["certificate"]

      总结

      参数关联在接口自动化测试中是一个常见且重要的概念。设计关联参数的用例会直接影响到用例的维护和项目架构设计。对于刚入门的同学来说,理解参数关联的实现方式和处理方法是测试工作的基础。

      希望这篇文章能为您提供帮助,如果需要更多技术资料,请关注我的微信公众号“测试上分之路”。这些资料对想进阶【自动化测试】的朋友来说是一个全面备战仓库。

    转载地址:http://wgofk.baihongyu.com/

    你可能感兴趣的文章
    python+flask计算机毕业设计高校体育运动会比赛系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校危化品管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校团委事务管理系统(程序+开题+论文)
    查看>>
    Python切片(%s)
    查看>>
    python+flask计算机毕业设计高校学生选课系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校学生饮食推荐系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校教务管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校教学档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校教学督导平台(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校数字化迎新系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校校内景点平台(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校校园线上跳蚤市场的系统设计(程序+开题+论文)
    查看>>
    Python图形处理
    查看>>
    python+flask计算机毕业设计高校物品使用互益平台的设计与实现(程序+开题+论文)
    查看>>
    Python函数,匿名函数,高阶函数,内置函数——08
    查看>>
    python+flask计算机毕业设计高校疫情防控管理平台(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校网上迎新系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校运动会(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校选课系统(程序+开题+论文)
    查看>>
    Python+Jenkins+Allure Report接口自动化测试持续集成
    查看>>