首页 > 解决方案 > JMeter 中的 POST 给出“无法识别的令牌 'json'”

问题描述

我不知道为什么会收到此错误:

"Failed to parse request body as JSON resource. Error was: Failed to parse JSON encoded FHIR content: Unrecognized token 'json': was expecting ('true', 'false' or 'null')\n at [Source: UNKNOWN; line: 3, column: 29]"

FHIR 是使用的标准。我还使用与 Postman 一起使用的有效 JSON 进行了测试,所以我认为实际的 JSON 不是问题。我不确定我是否正确,但似乎 JMeter 从某处添加了“json”,因为错误表明令牌“json”是意外的。这是查看结果树中的请求 > 请求正文选项卡。

JSON 请求正文

这只是一个测试 JSON,但我得到了与在 Postman 中工作的 JSON 主体相同的响应(并且我确定了正确的格式)。我指定了 Content-Type 标头。我根本不明白令牌“json”来自哪里,因为我的 json 本身不包含令牌。有人知道 JMeter 是否在请求中添加了一些东西吗?

标签: jsonjmeterapache-httpclient-4.x

解决方案


您发送的有效载荷不正确,它应该如下所示:

{
     "test" : "X"
}

你正在发送

{
     "test" : "X"
}json

 ^^^^ this guy is causing the issue

JMeter 不会添加任何请求,您需要仔细检查您的配置,即 JMeter jmx 脚本是“普通”XML 文件,因此您可以使用您喜欢的文本编辑器来查找它json

如果您能够使用 Postman 发送有效请求,您应该能够使用 JMeter 的HTTP(S) Test Script Recorder 记录它,只需将 Postman 配置为使用 JMeter 作为代理并运行您的请求/收集 - JMeter 将捕获请求并生成可以成功重放的相关HTTP 请求采样器。

更多信息:如何将 Postman API 测试转换为 JMeter 以进行缩放


推荐阅读