【问题标题】:jmeter - Authorization header goes missingjmeter - 授权标头丢失
【发布时间】:2016-04-27 22:11:52
【问题描述】:

我有一个用于我们网站的相当简单的 jmeter 脚本。作为网站流程的一部分,我使用我们的 API 来更新用户的应用程序。

API 使用 OAuth 身份验证,我熟悉使用我们自己的专有测试工具。

首先,我通过调用我们的授权端点获得一个身份验证令牌。这会返回一些像这样的 JSON:

{"access_token":"a really long auth token string"}

在我的脚本中,我使用正则表达式来捕获此令牌字符串。作为调查此问题的一部分,我使用了 Debug PostProcessor 来检查我是否得到了正确的字符串,我这样做了。它被保存为变量 'authToken'。

在脚本的下一步中,我通过 HTTP 标头管理器添加标头,如下所示:

我知道这个标头是正确的,因为我们在 API 测试中有很多它的实例。

脚本的相关部分如下所示:


但是,每次我运行脚本时,使用令牌/标头的步骤都会返回 401 未授权。

我已经在 Chrome 插件中测试了实际的 URL 和标头,并且调用按预期工作。

在“查看结果树”侦听器中,根本没有证据表明授权标头已设置。我已经尝试对身份验证令牌进行硬编码,但没有任何乐趣 - 它似乎仍然不是请求的一部分。

从结果树中,请求如下所示:

POST <correct URL>

POST data:{"id":"<item id>"}

Cookie Data: SessionProxyFilter_SessionId=<stuff>; sessionToken=<stuff>

Request Headers:
Content-Length: 52
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36       (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
Connection: keep-alive
Content-Type: application/json

结果树也没有显示重定向。

我尝试了herehere 的解决方案,但这些都不起作用。

奇怪的是,我几乎可以肯定这在大约一个月前有效,据我所知,机器上、脚本中或 jmeter 安装中没有任何变化。显然其中一个是不正确的,但我已经无能为力了。

【问题讨论】:

  • 你能展示你的测试计划结构并放大这部分吗?
  • 我已经截取了测试,但猜你想要的不止这些......
  • 我想您显示的标题管理器是第二个?您可以显示获取身份验证令牌详细信息吗?你能显示查看结果树请求选项卡吗?谢谢
  • Get auth token details 步骤有效 - 我得到了预期的结果并成功提取了令牌(因此上面屏幕截图中的 PostProcessors)。
  • 您能否显示 2 个请求的查看结果树并展开任何显示重定向的节点?谢谢

标签: jmeter


【解决方案1】:

我团队的另一位成员为我回答了这个问题,而且非常简单。我只需要将问题步骤的“实施”设置为“HttpClient4”。

【讨论】:

  • 您好,我有一个类似的问题,其中在标头管理器中提到的授权标头未在 HTTPRequest 中获取。我已将实现设置为“Java”——这是因为请求需要 NTLM 代理凭据。我被困在这里 - 如果我将实现更新为“HTTPClient4”,那么请求不会通过代理并且它会失败。如果我提到“Java”的实现,则不会传递 Authorization 标头。我遗漏了什么或做错了什么?
猜你喜欢
  • 2018-03-08
  • 1970-01-01
  • 2021-02-14
  • 2014-06-16
  • 2014-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多