我想用Jmeter对我的Heroku应用程序进行负载测试 . 要访问应用程序的功能,我需要先通过Facebook登录 . 我尝试使用代理服务器进行浏览器录制 . 但问题是facebook返回的代码参数(response_type)在回调URI中是硬编码的 . 因此它在运行Jmeter脚本时给出异常(代码过期异常) .
我能够在 https://www.facebook.com/dialog/permissions.request
URL的响应头中查看代码 . 所以我需要动态地从这个头中获取这个代码并输入回调URL的代码参数 .
为此,我在 /dialog/permissions.request
URL下使用Jmeter中的 Regular Expression Extractor .
我的回复 Headers 如下所示:
Cache-Control private, no-cache, no-store, must-revalidate
Date Wed, 26 Dec 2012 13:37:17 GMT
Expires Sat, 01 Jan 2000 00:00:00 GMT
Location http://myapplication.herokuapp.com/oauth/authenticate/facebook?code=SOME-CODE
P3P CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
我想提取这个 code=some code
并使用正则表达式提取器将其放在下一个URL中 .
2 回答
我不知道JMeter上下文,但正则表达式可能是这样的:
您可能需要加倍反斜杠 . 如果将 Headers 作为一个整体进行检查,则
$
可能会出现问题,您可以将其替换为\n
.[编辑]我发现tester指向了JMeter page并将其用于您提供的 Headers 内容 . 显然
$
不是必需的,搜索停在线路上 . 仍然不确定加倍反斜杠 . 实验 .问题不在于Saswat Sahoo提到的正则表达式提取器 . 主要问题是Location头甚至没有进入Jmeter的Response头 . 我们可以在浏览器的响应头中看到Location标头 . 与浏览器的响应头相比,Jmeter响应头中缺少很少的信息 .