首页 文章

Facebook使用Jmeter登录

提问于
浏览
0

我想用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 回答

  • 1

    我不知道JMeter上下文,但正则表达式可能是这样的:

    \?code=(.*)
    

    您可能需要加倍反斜杠 . 如果将 Headers 作为一个整体进行检查,则 $ 可能会出现问题,您可以将其替换为 \n .

    [编辑]我发现tester指向了JMeter page并将其用于您提供的 Headers 内容 . 显然 $ 不是必需的,搜索停在线路上 . 仍然不确定加倍反斜杠 . 实验 .

  • 0

    问题不在于Saswat Sahoo提到的正则表达式提取器 . 主要问题是Location头甚至没有进入Jmeter的Response头 . 我们可以在浏览器的响应头中看到Location标头 . 与浏览器的响应头相比,Jmeter响应头中缺少很少的信息 .

相关问题