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

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

参数关联在接口自动化测试中的应用

参数关联,也被称为接口关联,指的是接口之间通过特定参数建立的依赖关系。在接口自动化测试中,这种关联关系尤为重要,因为它决定了接口的调用顺序和数据流转。

参数关联的场景

最常见的场景之一是请求登录接口后获取token值,后续其他接口请求时将token作为请求参数传入。例如,在电商系统中,用户下单后会生成订单号,这个订单号又会被用于支付接口的调用中。这种依赖关系是接口自动化测试的重要考量因素。

参数关联的示例

以网上购物流程为例:

  • 用户在购物车中选择商品并点击【去结算】,进入订单确认页。
  • 点击【提交订单】后,系统会调用下单接口创建订单,并返回唯一的交易订单号(tradeNo)。
  • 系统会根据生成的订单号,调用获取支付凭证接口,调起支付页面。
  • 支付页面完成后,系统会调用支付接口进行实际支付,支付结果会返回给请求方。
  • 在上述流程中,订单号(orderNo)是关键参数,它使下单接口和支付凭证接口建立了关联。测试人员需要确保每次调用下单接口生成的订单号唯一,这样才能顺利调用下一个接口。

    脚本编写方法

    在PyTest框架中,参数关联可以通过两种方式处理:

    1. 流水式调用

    直接在用例中按顺序调用接口:

    import requestsimport jsonimport pytestdef 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 'payNo' in res_pay['data']    assert 'certificate' in res_pay['data']

    2. 使用Fixture函数

    将依赖接口编写为Fixture函数:

    @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 'payNo' in res_pay['data']    assert 'certificate' in res_pay['data']

    总结

    参数关联是接口自动化测试中的核心概念之一,它直接影响测试用例的设计和执行流程。在实际项目中,我们需要根据业务需求设计关联参数,并通过合理的测试脚本进行验证。无论是流水式调用还是使用Fixture函数,关键在于确保接口依赖关系被正确处理,从而保证测试的准确性和可靠性。

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

    你可能感兴趣的文章
    python及pycharm2018软件安装教程
    查看>>
    python去重txt文本_Python实现的txt文件去重功能示例
    查看>>
    python去掉列表的逗号,从Python列表项中删除标点符号
    查看>>
    Python卸载所有包
    查看>>
    python单线程下实现多个socket并发
    查看>>
    Python单元测试框架介绍(超详细~)
    查看>>
    Python单元测试框架
    查看>>
    python单元测试之unittest
    查看>>
    Python单元测试unittest实战
    查看>>
    Python单元测试-模拟VS补丁
    查看>>
    python协程实时输出_Python 协程以及事件循环的问题,怎么知道 IO 读取结束了呢?...
    查看>>
    Python十进制&;包提供错误的结果
    查看>>
    Python化身“安全老中医”:一键搞定工控系统漏洞,从零基础到精通,收藏这篇就够了!
    查看>>
    Python加速运行技巧
    查看>>
    python办公自动化基础遍历文件夹
    查看>>
    python办公自动化基础输出文件和文件夹
    查看>>
    python办公自动化基础搜索文件
    查看>>
    python知识:@classmethod和@staticmethod的异同
    查看>>
    python前端之css
    查看>>
    Python制作进度条,原来有这么多方法
    查看>>