Поддерживать состояние между HTTP-запросами к Keycloak в JMeter - PullRequest
0 голосов
/ 03 июля 2018

Итак, я пытаюсь автоматизировать сценарий JMeter, который создает пользователей Keycloak и затем регистрирует их.

First It ПОЛУЧИТ страницу входа и сохранит код, вот пример запроса:

GET http://Keycloak.com:8001//auth/realms/REALM/protocol/openid-connect/auth?response_type=code&client_id=CLIENT&scope=openid%20profile%20email&nonce=N5b3a2da23c04a&response_mode=form_post&resource=RESOURCE&state=2SJwtlVZrswlGkw&redirect_uri=REDIRECTURI

Однако, когда я получаю страницу регистрации, код меняется, и tab_id также изменяется. Как я могу не допустить, чтобы keycloak генерировал новый кодовый токен с каждым HTTP-запросом в потоке?

Кроме того, почему каждый HTTP-запрос с JMeter действует как новый сеанс вместо следующего запроса в серии?


EDIT:

Я использую средства извлечения регулярных выражений для отслеживания кода и переменных выполнения, в дополнение к использованию диспетчера файлов cookie HTTP и диспетчера кэширования HTTP.

Глядя на мой POST-запрос, обе переменные такие же, как и в предыдущем HTTP-запросе, и все мои куки поддерживаются, но каждый раз, когда я пытаюсь выполнить автоматический вход в систему, я получаю сообщение об ошибке 400 и журнал событий keycloak отображает ошибку invalid_code.


Edit: Как и было запрошено, здесь есть скриншот всех моих запросов на вход. enter image description here

Ответы [ 3 ]

0 голосов
/ 08 сентября 2018

Скорее всего, ваш экстрактор регулярных выражений не вложен в запрос HTTP, из которого вы пытаетесь извлечь данные.

Если область действия слишком широка, он применяется ко всем HTTP-запросам, поэтому в первый раз он успешно извлекается, но затем для следующего запроса, который не содержит токен, экстрактор запускает и перезаписывает старое значение пустым.

См. Правила определения объема в JMeter:

0 голосов
/ 12 сентября 2018

Согласно Keycloak вы должны использовать https , если вы используете keycloak.com

Keycloak может работать из коробки без SSL, если вы придерживаетесь частных IP-адресов, таких как localhost, 127.0.0.1, 10.0.x.x, 192.168.x.x и 172..16.x.x. Если на сервере не настроен протокол SSL / HTTPS или вы пытаетесь получить доступ к Keycloak через HTTP с не частного IP-адреса, вы получите сообщение об ошибке.

Таким образом, у вас есть 3 варианта: использовать частный IP-адрес, использовать обратный прокси-сервер или балансировщик нагрузки для обработки HTTPS или включить HTTPS для сервера Keycloak.

0 голосов
/ 03 июля 2018

Вам необходимо поддерживать корреляцию между попаданиями. Пожалуйста, пройдите ниже блог

https://www.blazemeter.com/blog/how-to-handle-correlation-in-jmeter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...