Как протестировать CAS с помощью jmeter?
-
запрос:
Я отправляю" get " http-запрос, не имеет параметров;
путь:http://192.168.22.139:8080/KSP
-
ответ:
<input id="username" type="text" name="username" required/> <input id="password" type="password" name="password" required/> <input type="hidden" name="lt" value="LT-697-vbNmm6NKOZ0cd7Wg1ywzbMKLa0DnOc" /> <input type="hidden" name="execution" value="e1s1" /> <input type="hidden" name="_eventId" value="submit" />
и я добавляю два экстрактора XPath, чтобы получить lt
и execution
:
- имя ссылки:
lt
;
запрос xPath://*[@id="login"]/input[3]
- имя ссылки:
execution
;
запрос XPath://*[@id="login"]/input[4]
тогда я посылаю другой запрос с username/password/service/It/execution/_eventId
:
: билет и исполнение, которые я получаю, пусты, я получаю xpath от chrome, так в чем проблема?
4 ответов
из первого ответа, можно использовать Экстрактор Регулярных Выражений для извлечения тика и lt.
затем послать второй запрос с параметром:
username/password/It/execution/_eventId/_eventId
кстати, вы должны добавить http Cookie Manager,
Я не вижу параметров первый запрос. По крайней мере, я не видел lt.
второй запрос должен быть запросом GET, а параметры:сервис и авиабилет(это не jsessionid, значение генерируется CAS, и то же самое с параметром lt в первом запросе к логину CAS).
есть несколько вещей, которые вам нужно изменить во втором запросе:
-
добавить
execution
параметр (извлеките его из первого запроса, например. сXPath Extractor
илиRegular Expression Extractor
),- выражение XPath будет чем-то вроде
.//*[@id='fm1']//*[@name='execution']/@value
- выражение XPath будет чем-то вроде
добавить ,
-
на
lt
параметр (билет для входа) должен быть извлечен из форма входа в систему тоже-она меняется каждый раз; см.XPath Extractor
илиRegular Expression Extractor
,- XPath выражение:
.//*[@id='fm1']//*[@name='lt']/@value
,
- XPath выражение:
- не требуется, но будет выглядеть лучше - изменение получить сообщение.
Если вы тестируете сам вход CAS, я могу предложить использовать JMeter HTTP прокси-сервер для записи процесса входа в систему, поймать все значения, которые передаются, обнаружить те, которые являются динамическими и иметь дело с ними с помощью экстрактора регулярных выражений, XPath, Beanshell и т.д. Post Processors-то, что вам наиболее комфортно.
в случае, если ваше приложение находится за CAS, я думаю, что CAS login просто добавляет cookie, и ваше приложение считает пользователя аутентифицированным на основе он. В этом случае вы можете просто хранить cookies где-то в CSV-файле и использовать их через http Cookie Manager для имитации авторизованные пользователи.