【问题标题】:Jmeter load test SAML RequestJmeter 负载测试 SAML 请求
【发布时间】:2010-12-03 14:48:21
【问题描述】:

我正在尝试使用 JMeter 对将 SAML 用于 SSO 的 Web 应用程序进行负载测试。我们的服务器向另一台服务器发送 SAML 请求。在 JMeter 中,我如何动态创建这些请求并为许多用户进行参数化?

提前致谢。如果您知道解决方案,请尽快告诉我。

在查看结果树中,我看到以下请求:

/app/login
under this there are three requests
   https://xyz.org/app/start/login
   https://abc.com/saml/SamlSsoService?SAMLRequest=eJxlj8FuwjAQRM%2F5i8j3xAlItLIIiLaqikQrBKGH3hxnSQzJ2vU6UT%2B%2FFrQSao87uzP7Zr786rt4%0D%0ABEfaYMHyNGMxoDK1xqZgh%2FI5uWfLxZxk31mxGnyLO%2FgcgHwcBSOSuGwKNjgURpImgbIHEl6J%2Fep1%0D%0AIyZpJqwz3ijTsWj9VDAwra2atmrPnamk7JU5nQzKxlZHiVA3qM7HDk6KxdH7L1ZICWaiAdZIXqIP%0D%0AUpZnST5JsmmZz8RkJrK7DxZtf149aLw2%2BMOV3nJV1yMSL2W5TXZQawfKX0JGXYN7C46CoVVpSOyg%0D%0AgcpIV4ehZ9GKCJwPcI8GaejB7cGNWsFhtylY670lwXkN4%2FSf3biGkx9qQM%2BltTy00Ua1QZPOcyLD%0D%0AA4hnfPENC8GO7w%3D%3D%0D%0A&RelayState=abc%3Astart&appId=250
   https://def.com/account/login.jsp?destinationpage=start&applicationId=2

第二个 URL 是重定向 URL。我想捕获系统发送的内容并告诉 JMeter 发送它。

 SAMLRequest=eJxlj8FuwjAQRM%2F5i8j3xAlItLIIiLaqikQrBKGH3hxnSQzJ2vU6UT%2B%2FFrQSao87uzP7Zr786rt4%0D%0ABEfaYMHyNGMxoDK1xqZgh%2FI5uWfLxZxk31mxGnyLO%2FgcgHwcBSOSuGwKNjgURpImgbIHEl6J%2Fep1%0D%0AIyZpJqwz3ijTsWj9VDAwra2atmrPnamk7JU5nQzKxlZHiVA3qM7HDk6KxdH7L1ZICWaiAdZIXqIP%0D%0AUpZnST5JsmmZz8RkJrK7DxZtf149aLw2%2BMOV3nJV1yMSL2W5TXZQawfKX0JGXYN7C46CoVVpSOyg%0D%0AgcpIV4ehZ9GKCJwPcI8GaejB7cGNWsFhtylY670lwXkN4%2FSf3biGkx9qQM%2BltTy00Ua1QZPOcyLD%0D%0AA4hnfPENC8GO7w%3D%3D%0D%0A&RelayState=abc%3Astart&appId=250

你能告诉我使用正则表达式来捕获这个值吗?另外,如果有三个不同的 URL,jmeter 怎么知道要捕获哪一个呢?

感谢您的帮助

【问题讨论】:

    标签: jmeter saml


    【解决方案1】:

    更新

    看起来 /start/login 可能正在生成传递给 /saml/SamlSsoService 的令牌。

    我会尝试下面的结构。请注意,您需要对每个页面都有一个 HTTP 请求。您可能需要手动添加这些。

    ThreadGroup
    - CSV Data Set Config 
    - POST /app/start/login
    - - Post Processor: Regular Expression
    - POST /saml/SamlSsoService?{samlToken}
    - POST /account/login.jsp
    

    CSV 数据集配置指向带有每个用户/密码的 CSV 文件。这允许多个用户。

    SAML 令牌请求将用户名/密码作为变量,其值由 CSV 文件确定。

    正则表达式提取有效的 SAML 令牌并将其存储到变量中。正则表达式应该应用于 URL,并且是这样的:

    SAMLRequest=(.+?)
    

    SamlSsoService 和 login.jsp 请求将“SAML TOKEN”作为变量,允许它向服务器传递唯一的 SAML 令牌。

    资源:

    【讨论】:

    • 我做了更多检查,看起来当用户单击登录按钮时,它会创建一个重定向 url,并将 saml 请求附加为 url?saml=encrypted_saml_request_string。我需要一种在重定向之前捕获此 url 的方法,以便我可以对其进行参数化。知道如何拦截重定向。
    • 记录登录时你的脚本是什么样的?如果结构是: - GET 登录页面 - POST 请求 SAML 令牌 - POST 重定向 URL 然后将后处理器添加到 SAML 请求以提取令牌。
    • 我在问题中添加了更多信息。
    • 非常感谢您的帮助
    • @user373201,你能分享测试脚本吗,当然没有csv文件,我也有同样的场景。谢谢。 Verma.praveen@gmail.com
    猜你喜欢
    • 2018-09-28
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多