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

在Karate DSL中替换JSON字符串文本中的变量

在Karate DSL中替换JSON请求体URL里的变量

下面是几种可行的解决方式:

方法1:直接在JSON中使用Karate插值语法

把URL里需要替换的部分用#()包裹变量,直接写在JSON字符串里:

{ 
  "key1":"#(var1)", 
  "key2":"https://example.com/#(var2)/search" 
}

只要提前在脚本里定义好var2变量(比如* def var2 = '456'),Karate会自动完成变量替换。

方法2:提前构造完整URL变量

先单独拼接好目标URL,再将变量传入JSON请求体:

* def var2 = '456'
* def targetUrl = 'https://example.com/' + var2 + '/search'
* def requestBody = { 
    key1: '#(var1)', 
    key2: '#(targetUrl)' 
  }

这种方式适合URL结构复杂、需要额外逻辑处理的场景。

方法3:用replace函数动态替换

如果是基于已有URL字符串修改,可以用字符串替换函数:

* def originalUrl = 'https://example.com/123/search'
* def var2 = '456'
* def newUrl = originalUrl.replace('123', var2)
* def requestBody = { 
    key1: '#(var1)', 
    key2: newUrl 
  }

注意:变量定义必须放在JSON请求体使用之前,确保Karate能识别到变量。

内容的提问来源于stack exchange,提问作者Deepanshu Mittal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:02:31