博客
关于我
python+pytest接口自动化 —— 参数关联
阅读量:796 次
发布时间: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基础变量之---字典
    查看>>
    python基础变量之---列表
    查看>>
    python基础变量之---元组
    查看>>
    python基础内容_Python基础入门必须了解的
    查看>>
    Python基础之面向对象2(封装)
    查看>>
    Python基础之给函数增加元信息
    查看>>
    python基础之字符编码
    查看>>
    python基础之多线程与多进程(二)
    查看>>
    Python基础之基本数据类型一《数字与字符串》
    查看>>
    python基础之变量---总纲
    查看>>
    Python基础之列表
    查看>>
    Python基础之Python环境搭建
    查看>>
    python基础之--面相对象--OOP基本特性
    查看>>
    python基础之--迭代器和生成器及异常处理
    查看>>
    python基础之--包和模块
    查看>>
    python基础之---面向对象--属性和方法
    查看>>
    python基础之---运算符
    查看>>
    python基础之---语句
    查看>>
    python基础之---正则表达式
    查看>>
    python基础之---函数式编程
    查看>>