【问题标题】:JMeter http request works via fiddler but not withoutJMeter http请求通过提琴手工作,但并非没有
【发布时间】:2018-06-24 06:03:53
【问题描述】:

我有一个带有 HTTP 请求的简单线程组,如下所示:

登录 - POST 请求

  • 获取授权承载令牌

获取 eventId - GET 请求

当我运行上述程序时,登录帖子请求正常。我得到一个 200 OK 并且响应标题广告消息看起来不错。 但“获取 eventId”请求失败并返回 400 Bad Request。

但是,当我启动 JMeter 以通过如下所示的代理时,“获取 eventId”请求返回 200 OK,并且响应看起来与预期一样。 jmeter.bat -H 127.0.0.1 -P 8888

我不确定自己做错了什么?

【问题讨论】:

  • 重温步骤: 1. 获取授权承载令牌(令牌的“参考名称”是什么?)例如“authToken”以及如何获取它? 2. 在 HTTP 标头管理器中传递正确的“参考名称”,例如名称:授权值:Bearer ${authToken}
  • 我使用正则表达式提取器来获取授权:承载 {TOKEN}。然后在其标头中将其传递给 Get EventID 请求。格式很好。当我通过 Fiddler 发送 JMeter 请求时它可以工作。
  • 查看“Get eventId”调用的 Request Headers 中传递的 Bearer {TOKEN}。

标签: jmeter


【解决方案1】:

根据400 Bad Request状态码说明:

超文本传输​​协议 (HTTP) 400 Bad Request 响应状态代码表示服务器由于语法无效而无法理解请求。

您很可能需要添加HTTP Header Manager 以发送具有application/json 值的Content-Type 标头(或服务器期望的任何MIME 类型)。

如果不是这种情况 - 使用 View Results Tree 侦听器检查两种情况下发送的内容并修改 JMeter 配置,使请求看起来完全相同(除了动态令牌)

【讨论】:

  • 在修改 JMeter 配置方面,您的建议是什么。据我所知,Fiddler 中的请求与我在查看结果树中看到的没有什么不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多