尽管在邮递员中工作,但请求 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 页面中

cookie 中的访问令牌,但验证无法在 react.js(axios) 中检测到它,在邮递员中工作

请求在CURL中工作但不在Ajax中工作

让请求在 curl 中工作,但不在 Python 中

如何解决 Http 401 错误,但在邮递员中工作,而不是在 xamarin 表单中工作