Jmeter нагрузочный тест SAML Запрос - PullRequest
3 голосов
/ 03 декабря 2010

Я пытаюсь загрузить тестовое веб-приложение, которое использует SAML для SSO, используя JMeter. Наш сервер отправляет запрос 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

Можете ли вы сказать мне регулярное выражение, чтобы использовать inorder для захвата этого значения? Кроме того, если есть три разных URL, как jmeter узнает, какой из них захватить?

Спасибо за вашу помощь

1 Ответ

5 голосов
/ 03 декабря 2010

ОБНОВЛЕНО

Похоже, что / 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 на сервер.

Ресурсы:

...