jmeter - 缺少授权标头

时间:2016-01-21 15:22:47

标签: jmeter

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

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

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

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

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

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

Imgur

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

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

Imgur

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

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

在“查看结果树”监听器中,根本没有任何证据表明根本没有设置Authorization标头。我已经尝试过对代码进行硬编码但没有快乐 - 它似乎仍然不是请求的一部分。

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

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

Imgur

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

我尝试过解决方案herehere,但这些都没有奏效。

奇怪的是,我几乎可以肯定这个工作大约在一个月之前,据我所知,在机器,脚本或jmeter安装方面没有任何改变。显然其中一个不是真的,但是我的智慧结束了。

1 个答案:

答案 0 :(得分:4)

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