1、问题现象
jmeter运行遇到类似报错:
{
"traceId": "b62310d64246a0b3",
"code": 999,
"uploadable": "0",
"detailMsg": null,
"level": 0,
"displayCode": "999-999-999999",
"message": "Unexpected character ('b' (code 98)): was expecting comma to separate Object entries\n at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 5961]"
}
{
"traceId": "f352c431083ee35f",
"code": 999,
"uploadable": "0",
"data": null,
"detailMsg": null,
"level": 0,
"displayCode": "999-999-999999",
"errorDetail": null,
"message": "JSON parse error: Unexpected character ('i' (code 105)): was expecting comma to separate Object entries; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('i' (code 105)): was expecting comma to separate Object entries\n at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2233]",
"confirmIds": null
}
2、解决办法
不要在取样器-HTTP请求-消息体数据中直接粘贴请求体;
要用CSV获取文件中的请求体,然后在取样器-HTTP请求-消息体数据中使用变量引用;(如果还需要对请求体进行修改,则再使用JSR223 预处理程序)


3、原因分析
在 HTTP 请求的 "Body Data" 或 "Parameters" 区域直接输入 JSON 字符串时,JMeter 可能会自动处理转义字符。
使用 CSV Data Set Config 从 CSV 文件读取数据时,JMeter 会将文件中的内容作为原始字符串处理,不会自动进行转义。
在 HTTP 请求的 "Body Data" 或 "Parameters" 区域直接输入 JSON 字符串:
{\\\"isMustHaveBill\\\":\\\"false\\\",\\\"sendtowms\\\":\\\"false\\\",\\\"isGenerateBarcode\\\":\\\"false\\\",\\\"isUpdateStock\\\":\\\"true\\\",\\\"isUpdateCost\\\":\\\"true\\\"}--截取部分
jmeter发送请求,从查看结果树中查看,发现自动转义成了:
{\\"isMustHaveBill\\":\\"false\\",\\"sendtowms\\":\\"false\\",\\"isGenerateBarcode\\":\\"false\\",\\"isUpdateStock\\":\\"true\\",\\"isUpdateCost\\":\\"true\\"}--截取部分