JMeter的;会话cookie

时间:2011-11-29 20:22:29

标签: session-cookies jmeter shibboleth

我已经看到了几个JMeter线程在我的问题上有点触动,但似乎都没有解决我的具体问题。

问题是 - 我正在测试的网站,工作方式如下:

  1. 包含登录字段的主页和提交按钮。当你第一次 在浏览器中浏览到此页面,设置PHPSESSID cookie(在响应标题中下来) 唯一值,用于识别会话。
  2. 当用户点击登录按钮(用户名和密码)时 这个页面与系统的当前状态无关,即网络 服务器通过shibboleth重定向到运行LDAP的其他服务器。 Shibboleth需要PHPSESSID cookie的值才能继续。 (以验证用户是否来自正确的联合服务器)。
  3. 然后,用户输入他们的帐户用户名和密码,然后点击 登录按钮。
  4. (有效)帐户登录到LDAP服务器;如果是帐户 在原始(1)服务器上不存在,然后shibboleth映射 LDAP字段转到原始服务器上的帐户数据库。 然后用户登录到原始服务器(1) 新创建的帐户,并重定向到原始页面。
  5. 还有其他一些SAML数据已被交换 - 我认为这不会成为一个问题。 。 。到目前为止,问题似乎是这个问题。

    JMeter倒塌的地方在步骤2中。

    • 如果我没有设置cookie管理器,那么LDAP服务器会说我没有 已启用Cookie。 (此错误在响应数据中)。
    • 如果我设置了HTTP cookie管理器,但没有指定PHPSESSID cookie, LDAP服务器说我没有启用cookie。 (我将其设置为哪个Cookie政策并不重要)
    • 如果我指定PHPSESSID cookie值 - 当然,每个用户都需要 要有一个独特的价值,所以这是错误的。 。 。所以我设置了一个 RegExp后处理器为初始页面,提取PHPSESSID 请求标头中的值,并将其放入变量中 $ {PHPSession}然后我在HTTP Cookie管理器中指定一个值 PHPSESSID cookie,$ {PHPSession}。 。 。而且,在 标题, * *提交“Cookie:PHPSESSID = $ {PHPSession}”

    那么,我读了这篇文章。 。 。 https://issues.apache.org/bugzilla/show_bug.cgi?id=28715

    实际上,(转述)“...... cookie管理员不会扩展用户变量......”然后“......好吧,我们修复了它......它确实扩展了用户变量......”然后“......好吧,不,不是在那个领域,它不是为了那么做而设计的。”

      
        
          

    所以......基本上,他们说,HTTP Cookie管理器无法管理每个用户具有唯一值的会话cookie。 (尽管如此,这是我认为它的全部目的)。

        
      

    如何为每个用户设置并提交一个唯一的Cookie,其值是从第一个响应标头中提取的?

1 个答案:

答案 0 :(得分:0)

这可能是目前编程负载测试最困难的任务。我想说你的问题可能与无法使服务器正确进行LDAP身份验证有关,即每次都不传入新的标识ID。查看使用LDAP请求采样器以这种方式传递令牌,在步骤2和稍后在脚本中使用。您可以全力以赴地构建LDAP请求以真正运用您的应用程序。希望这可以解释你的问题!