Как разделить JSessionID между двумя группами потоков в Jmeter - PullRequest
0 голосов
/ 04 сентября 2018

Для моего теста JMeter я хотел бы войти в систему один раз, а затем перемещаться по отчетам в моем приложении одновременно с многопоточностью. Я создал две группы потоков, которые выполняются последовательно, первая группа потоков содержит HTTP-запросы на вход в систему, которые настроены для работы с одним потоком. Вторая группа потоков содержит запросы HTTP для каждого отчета в моем приложении, и она настроена для работы с 50 потоками.

Приложение развернуто на веб-логическом сервере, а сеансы приложения с состоянием.

Я хочу поделиться JsessionID, сгенерированным первой группой потоков через weblogic после успешного входа, со второй группой потоков HTTP-запросов.

проблема в том, что JsessionID для каждого из HTTP-запросов во второй группе потоков уникален и отличается от JsessionID для входа в систему HTTP-запросов в первой группе потоков. В результате приложение не может вызвать аутентификацию вызова.

JsessionID встроен в файлы cookie внутри заголовка. Я попытался извлечь его из HTTP-запроса в первой группе потоков с помощью средства извлечения регулярных выражений (см. Прилагаемое изображение) и определить его в HTTP Cookie Manager, но проблема осталась. Конфигурация экстрактора регулярных выражений

Ответы [ 2 ]

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

для справки. ЭТО РАБОТАЕТ:

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

Я написал небольшой bsh в первой группе потоков, который извлекает cookie и сохраняет его в различных переменных. Извлечение файлов cookie из первой группы потоков

Затем я написал еще один bsh во второй группе потоков, чтобы подавить файлы cookie путем применения сгенерированных переменных

Применение файлов cookie во второй группе потоков

Теперь я могу войти в систему один раз и перемещаться по отчетам с многопоточностью, которые используют один и тот же SessionID.

0 голосов
/ 04 сентября 2018
  1. Существует более простой способ получить значение cookie JSESSIONID с помощью HTTP Cookie Manager

    • добавить следующую строку в user.properties file

      CookieManager.save.cookies=true
      
    • перезапустите JMeter, чтобы поднять собственность
    • когда вы закончите, вы сможете получить доступ к значению cookie как ${COOKIE_JSESSIONID}, где требуется
  2. Чтобы сделать его доступным во 2-й группе потоков, вам необходимо преобразовать его в свойство JMeter с помощью функции __setProperty () , например:

    ${__setProperty(JSESSIONID,${COOKIE_JSESSIONID},)}
    

    и после этого вы сможете получить доступ к значению во 2-й группе потоков, используя функцию __ P () как ${__P(JSESSIONID,)}

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