Jmeter负载测试SAML请求

use*_*201 3 jmeter saml

我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

第二个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
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助

Bla*_*aff 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
Run Code Online (Sandbox Code Playgroud)

CSV数据集配置指向包含每个用户/密码的CSV文件.这允许多个用户.

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

正则表达式提取有效的SAML令牌并将其存储到变量中.正则表达式应该应用于URL,如下所示:

SAMLRequest=(.+?)
Run Code Online (Sandbox Code Playgroud)

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

资源: