JMeter中如何将请求变量转为字符串格式发送?
解决JMeter中JSON请求体里orderId的字符串格式问题
方法1:直接在请求体给变量加引号(最简单)
- 打开Request2的HTTP请求元件,找到「Body Data」区域
- 把原来的请求体:
修改为:{"orderId": ${orderId}, "price": "1234"}{"orderId": "${orderId}", "price": "1234"} - 原理:JMeter从JSON提取器拿到的变量本身就是字符串类型,给变量套上双引号后,JSON解析时会直接识别为字符串格式,完全符合服务器要求。
方法2:用JSR223 PreProcessor处理变量(适合复杂场景)
如果需要对变量做额外处理(比如判空、格式校验),可以用这个方法:
- 右键点击Request2 → 「添加」→ 「前置处理器」→ 「JSR223 PreProcessor」
- 在「脚本」区域输入以下代码:
// 获取Request1提取的orderId变量 def originalOrderId = vars.get("orderId") // 将变量包装成带双引号的字符串,存入新变量orderIdStr vars.put("orderIdStr", "\"" + originalOrderId + "\"") // 如果你一定要用String.valueOf,写法如下(但这里作用不大,因为变量本身已是字符串): // vars.put("orderIdStr", "\"" + String.valueOf(originalOrderId) + "\"") - 回到Request2的「Body Data」,修改为:
{"orderId": ${orderIdStr}, "price": "1234"}
报错原因说明
你原来的请求体里orderId: 6f2ce33a-0594-47c5-5053-a13f5cf7ef33没有加引号,这违反了JSON语法规则——JSON中的字符串必须用双引号包裹。服务器解析这种无效JSON时,就会返回500错误。
内容的提问来源于stack exchange,提问作者Tester_Bob
相关产品推荐
相关产品推荐

