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

JMeter中提取的字符串无法正确传入请求body对象如何解决

JMeter接口传参JSON语法错误修复

错误根因

JSON语法规范要求字符串类型的字段值必须使用双引号包裹,你当前存储的${thisThing}变量值仅为纯文本THING,未携带外层双引号,直接拼接后生成的"thing": THING不符合JSON格式要求;同时你生成的请求体中最后一个键值对末尾多了冗余逗号,也会触发解析器的「意外标记」报错。

可行修复方案

  • 最简便方案:手动给变量包裹双引号
    直接修改请求Body配置,在变量外层补充JSON要求的双引号即可,同时删掉最后一个键值对后面的冗余逗号:
    {
        "foo": "bar",
        "thing": "${thisThing}"
    }
    
    该方案适用于提取的变量值不包含未转义双引号、换行、反斜杠等JSON特殊字符的场景,绝大多数常规接口测试场景都能满足。
  • 特殊字符兼容方案:转义后再传参
    如果提取的变量值本身包含双引号、斜杠、换行符等特殊内容,直接套引号会破坏JSON结构,可借助Groovy的JSON序列化能力自动处理转义:
    1. 先在测试计划的JSR223取样器/后处理中导入依赖,提前生成带正确转义和引号的变量:
      import groovy.json.JsonOutput
      vars.put("thisThingEscaped", JsonOutput.toJson(vars.get("thisThing")))
      
    2. 请求体中直接调用转义后的变量即可,不需要额外加引号:
      {
          "foo": "bar",
          "thing": ${thisThingEscaped}
      }
      
  • 提取阶段保留引号(不推荐)
    调整你提取响应值的正则/JSONPath规则,提取时连同值外层的双引号一起捕获,让${thisThing}本身存储"THING"格式的内容,也能直接拼接出合法JSON,但这种方法对特殊字符的兼容性差,维护成本高,不建议优先使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:18:20