K . A . I 2023-03-02 16:31 采纳率: 0%
浏览 72
已结题

pytest+yaml接口自动化参数替换

求指教pytest+yaml接口自动化参数提取并替换参数问题:
如图所示,接口返回的json数据是多层嵌套

img

图片中的参数已经提取成功,在下个接口中进行替换时不知该如何使用这个参数
提取表达式:$.data.settlementData[0].settlementDetailWorkIds[0],可以成功提取到参数

img

在使用的时候如何替换

img

  • 写回答

3条回答 默认 最新

  • MarkHan_ 2023-03-02 16:49
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    根据您的描述,提取表达式 $.data.settlementData[0].settlementDetailWorkIds[0] 已经成功提取了 settlementDetailWorkIds 的值,该值为 132。

    接下来,在接口请求中使用该值进行参数替换,可以按照以下步骤进行:

    1.在 Pytest 测试用例中,先使用 PyYAML 库读取 YAML 文件中的参数,并将提取的值添加到参数池中,例如:

    import yaml
    
    def test_my_api():
        with open("data.yaml", "r") as f:
            data = yaml.safe_load(f)
    
        extracted_value = 132
        data["detailworkIds"] = extracted_value
        # 将提取的值添加到参数池中
    
        # 发送接口请求并进行断言
    
    
    

    2.在接口请求的数据部分,使用字符串格式化或 f-string 等方式,将参数池中的值进行替换,例如:

    import requests
    
    def test_my_api():
        with open("data.yaml", "r") as f:
            data = yaml.safe_load(f)
    
        extracted_value = 132
        data["detailworkIds"] = extracted_value
    
        response = requests.post(
            url="http://example.com/my_api",
            json={
                "mobile": data["mobile"],
                "settlementData": {
                    "settlementDetailId": data["detailId"],
                    "settlementDetailWorkIds": [data["detailworkIds"]],
                    "settlementDetailIds": data["detailIds"],
                    "settlementId": data["settlementId"],
                    "smsCode": data["smsCode"]
                }
            }
        )
    
        assert response.status_code == 200
    
    
    

    在上述代码中,使用 data["detailworkIds"] 来代表提取的值,将它添加到请求数据的 settlementDetailWorkIds 字段中,这样就完成了参数的替换。

    希望这些代码可以帮助您解决问题!

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 创建了问题 3月2日

悬赏问题

  • ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题