尽管在邮递员中工作,但请求 JSON 在 JMeter 中给出错误
Posted
技术标签:
【中文标题】尽管在邮递员中工作,但请求 JSON 在 JMeter 中给出错误【英文标题】:Request JSON giving error in JMeter though works in postman 【发布时间】:2021-10-27 09:26:43 【问题描述】:我正在尝试在 JMeter 中对我的一个 API 进行负载测试。在 swagger 或 postman 中测试时,该 API 工作正常。它给出了正确的结果。但是,当我尝试在 JMeter 中调用相同的 API 时,它会抛出以下错误-
"errors":"$.catIds[0]":["JSON 值无法转换为 System.Collections.Generic.List`]
以下是我的请求 JSON(在邮递员中使用相同的,它工作得很好)
"StdFilterParams":
"name": "Anna",
"grade": "V",
"schedules": [
0
]
,
"SubList":
"startTimes": [
"0"
],
"endTimes": [
"101010"
]
,
"catIds":
[
4001
]
在这里,它不允许我使用 catIds = 4001 的 JSON 运行请求。我的问题是这个请求有什么问题,即使它在邮递员中有效。
【问题讨论】:
您是否还发送带有 application/json 的 Content-type 标头? 是的@user7294900 我已经在JMeter中设置了 【参考方案1】:您确定在 JMeter 中发送与在 Postman 中相同的请求吗?
例如,有一个常见错误是人们忘记通过 JMeter 的 HTTP Header Manager 添加 Content-Type 标头
一般来说,如果请求在 Postman 中有效,您可以使用 JMeter 的 HTTP(S) Test Script Recorder 记录它
开始HTTP(S) Test Script Recorder
如果您使用 HTTPS 协议 - import JMeter's self-signed certificate into Postman
Configure Postman to use JMeter as the proxy
在 Postman 中运行您的请求
JMeter 将捕获请求并生成相关的HTTP Request 采样器和 HTTP 标头管理器
More information: 如何将 Postman API 测试转换为 JMeter 以进行缩放
【讨论】:
是的@Dmitri T,我在 Jmeter 中添加了 Http Header 管理器,内容类型为:application/json。此外,我确信我在邮递员中运行相同的请求并获得正确的结果。 我还有一个问题,为什么它适用于其他集合(startTimes,endTimes)并且只抱怨 catIds以上是关于尽管在邮递员中工作,但请求 JSON 在 JMeter 中给出错误的主要内容,如果未能解决你的问题,请参考以下文章
带有 Angular 和 Express 的 CORS - 在 Postman 中工作,但不在浏览器中
Web Api 2.0 在邮递员中工作但不在 HTML 页面中