3

我正在尝试使用 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 怎么知道要捕获哪一个呢?

谢谢你的帮助

4

1 回答 1

5

更新

看起来 /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 令牌传递给服务器。

资源:

于 2010-12-03T16:11:05.537 回答