博客
关于我
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删除第一行_Python 乱码指北:一行删掉根目录
    查看>>
    Python删除列表元素的三种方法
    查看>>
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
    查看>>
    python列表前几个_python之列表
    查看>>
    python列表元组
    查看>>
    Python列表/元组/字典和集合使用
    查看>>
    python列表 行列选择_python_pandas_dataframe_行列选择_切片操作
    查看>>
    python列表
    查看>>
    python列出当前目录、子目录和文件的脚本
    查看>>
    python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
    查看>>
    Python切片对象和__getitem__
    查看>>
    python+flask计算机毕业设计高校体育竞赛成绩管理系统的设计与实现(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体育赛事系统(程序+开题+论文)
    查看>>