You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Karate框架能否保存单个请求响应并在另一请求中使用

Karate框架跨请求复用响应内容实现方案

完全可以实现,Karate原生内置了响应提取、变量跨步骤/跨请求复用的能力,不需要额外开发自定义插件就能满足你描述的场景需求。

核心实现逻辑

Karate发起请求后会自动把完整响应内容存入内置变量response,你只需要通过def关键字把需要的响应字段提取为自定义变量,后续任意请求的请求体、请求头、参数中都可以直接引用该变量。

可直接参考的示例代码

Feature: 用户地址复用校验场景
  Scenario: 传用户信息取地址后完成房屋类型校验
    # 第一个请求:传入用户名、用户ID获取用户地址
    Given url baseUrl + '/api/user/getAddress'
    And request { userId: 'U2024001', userName: '测试用户001' }
    When method POST
    Then status 200
    # 从响应中提取地址字段存入变量,可根据实际响应结构调整JSON路径
    * def userHomeAddress = response.data.address

    # 第二个请求:复用地址完成房屋类型校验
    Given url baseUrl + '/api/house/typeVerify'
    # 请求体中直接引用前面提取的地址变量,Karate会自动完成序列化填充
    And request {
        targetAddress: '#(userHomeAddress)',
        verifyItem: 'housePropertyType'
    }
    When method POST
    Then status 200
    # 可对校验结果做断言
    * match response.code == 0
    * match response.data.verifyPass == true

额外说明

  • 若响应为多层嵌套结构,直接按层级路径取值即可,比如response.result.userInfo.contact.address,无需手动编写JSON解析代码
  • 提取的变量默认在当前Scenario内全步骤可用,如需跨Scenario、跨Feature文件复用,可通过karate.set()配置全局变量或调用公共Feature文件实现
  • 变量为复杂对象、数组结构时,Karate会自动做格式适配,不需要手动转义特殊字符、转换JSON格式

内容的提问来源于stack exchange,提问作者Sheikh Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 22:36:20