【发布时间】: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
结果树也没有显示重定向。
我尝试了here 和here 的解决方案,但这些都不起作用。
奇怪的是,我几乎可以肯定这在大约一个月前有效,据我所知,机器上、脚本中或 jmeter 安装中没有任何变化。显然其中一个是不正确的,但我已经无能为力了。
【问题讨论】:
-
你能展示你的测试计划结构并放大这部分吗?
-
我已经截取了测试,但猜你想要的不止这些......
-
我想您显示的标题管理器是第二个?您可以显示获取身份验证令牌详细信息吗?你能显示查看结果树请求选项卡吗?谢谢
-
Get auth token details 步骤有效 - 我得到了预期的结果并成功提取了令牌(因此上面屏幕截图中的 PostProcessors)。
-
您能否显示 2 个请求的查看结果树并展开任何显示重定向的节点?谢谢
标签: jmeter