Перейти к содержимому

Selenium WebDriver: полное руководство
онлайн, начало 19 октября
Логи как инструмент тестировщика
онлайн, начало 22 октября
Школа для начинающих тестировщиков
онлайн, начало 22 октября
Тестирование REST API
онлайн, начало 22 октября
Фотография

Использование Post-Proccesor

jmeter

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 ImamTrotsky

ImamTrotsky

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Ясиновский Николай Петрович

Отправлено 21 Май 2018 - 15:39

Всем ДВС!

Ситуация следующая, есть http post, результат которого токен входа. То есть:

Запрос1  = Токен

Запрос 2 - невозможен без полученного токена.

Подскажите, как правильно записывать результаты запросов в джеметре? Например в какую-нибудь строку, чтобы потом наследовать значение этой строки в другие http запросы.

Гугл говорит, что можно использовать регулярку. Есть ли более оптимальные решения? Если нет, прошу разжевать работу Regular Expression Extractor.

 


  • 0

#2 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 190 сообщений
  • ФИО:Олексенко Сергей

Отправлено 22 Май 2018 - 08:54

Всем ДВС!

Ситуация следующая, есть http post, результат которого токен входа. То есть:

Запрос1  = Токен

Запрос 2 - невозможен без полученного токена.

Подскажите, как правильно записывать результаты запросов в джеметре? Например в какую-нибудь строку, чтобы потом наследовать значение этой строки в другие http запросы.

Гугл говорит, что можно использовать регулярку. Есть ли более оптимальные решения? Если нет, прошу разжевать работу Regular Expression Extractor.

 

Гугл правильно говорит, использовать Regular Expression Extractor в котором сохранить Ваш токен в переменную. Если вам возвращается json то можно использовать еще JSON Extractor. Потом в следующих запросах можно обращаться к этой переменной.

И было бы хорошо увидеть что вам возвращает Запрос1.


  • 1

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 751 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 22 Май 2018 - 08:58

Привет

 

 

Метод Получения токена. Надо знать, в чем ответ. 

Если в JSON, добавляешь какой-нибудь JSON Extractor

-Names  token

- JSON PATH sessionToken

 

Потом в HTTP Header Manager 

name 

session_token ${token}


  • 1

#4 ImamTrotsky

ImamTrotsky

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Ясиновский Николай Петрович

Отправлено 22 Май 2018 - 09:49

 

Гугл правильно говорит, использовать Regular Expression Extractor в котором сохранить Ваш токен в переменную. Если вам возвращается json то можно использовать еще JSON Extractor. Потом в следующих запросах можно обращаться к этой переменной.

И было бы хорошо увидеть что вам возвращает Запрос1.

 

Cпасибо!
Скрин запроса, ответ странный, возвращает html страницу 

Делая скрины, кажется нашел еще одну ошибку в свое работе. Некоторые запросы "засерены" - http://joxi.ru/Dr8MXkzt4ZvW0m , и в лиснерах нет данных о передаче данных запросов. Вероятно именно эти запросы выдают токен


  • 0

#5 ImamTrotsky

ImamTrotsky

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Ясиновский Николай Петрович

Отправлено 22 Май 2018 - 09:50

Привет

 

 

Метод Получения токена. Надо знать, в чем ответ. 

Если в JSON, добавляешь какой-нибудь JSON Extractor

-Names  token

- JSON PATH sessionToken

 

Потом в HTTP Header Manager 

name 

session_token ${token}

Cпасибо, сейчас пытаюсь с этим разобраться.

Если интересно, в посте вышел написал о всплывшем камне.


  • 0

#6 ImamTrotsky

ImamTrotsky

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Ясиновский Николай Петрович

Отправлено 22 Май 2018 - 15:55

Итак, в ходе теста понял что в начале треда ввел вас в заблуждение, код токена получаем немного другим способом, а именно:

При перехода на hostname нам перенаправляет на SSO страницу, она генерирует код токена, и направляет на страницу авторизации, которая в адресе содержит токен. То есть, токен генерируется еще до авторизации.

Скрин запроса который перенаправляет на страницу авторизации - http://joxi.ru/YmEMWjlt0bvDJm

 

Далее используя  Regular Expression Extractor я создал регэксп code - http://joxi.ru/vAWnJxEH1jGVZ2

И использовал его в запросах - http://joxi.ru/D2PLx.../xAeMnjZtpJL7JA

 

В итоге "${code}" сохраняет вот так значение  " <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR...e&scope=openid"

Где  я ошибся? я не правильно матчу регулярку ? Объясните плиз.


  • 0

#7 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 190 сообщений
  • ФИО:Олексенко Сергей

Отправлено 22 Май 2018 - 17:52

Итак, в ходе теста понял что в начале треда ввел вас в заблуждение, код токена получаем немного другим способом, а именно:

При перехода на hostname нам перенаправляет на SSO страницу, она генерирует код токена, и направляет на страницу авторизации, которая в адресе содержит токен. То есть, токен генерируется еще до авторизации.

Скрин запроса который перенаправляет на страницу авторизации - http://joxi.ru/YmEMWjlt0bvDJm

 

Далее используя  Regular Expression Extractor я создал регэксп code - http://joxi.ru/vAWnJxEH1jGVZ2

И использовал его в запросах - http://joxi.ru/D2PLx.../xAeMnjZtpJL7JA

 

В итоге "${code}" сохраняет вот так значение  " <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR...e&scope=openid"

Где  я ошибся? я не правильно матчу регулярку ? Объясните плиз.

Насколько я понял токен Вам нужно достать из урла. Регулярку я бы написал так code=(.*) и обратите внимание к чему Вы ее применяете (Вам нужно в Field to check выбрать не Body, а URL).


  • 0

#8 ImamTrotsky

ImamTrotsky

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Ясиновский Николай Петрович

Отправлено 23 Май 2018 - 08:44

 

Насколько я понял токен Вам нужно достать из урла. Регулярку я бы написал так code=(.*) и обратите внимание к чему Вы ее применяете (Вам нужно в Field to check выбрать не Body, а URL).

 

Не совсем.

HTTP запрос, получаем ответ в котором содержится код токена - http://joxi.ru/nAyK0wlCYy5Mkm

 

code=bpl28H5vOEiDRYqKjRmyqOw_Fy7_tRQdqntDXYZpJ6k.a816032c-30c4-4e85-b46e-ff09d748026c&execution=ddbd337e-df2b-49a7-afd4-5f47b39bc01f" method="post">

 

Его нужно забрать с помощью регулярки, и вставить в URL следующего запроса.

Но проблема в том, что есть другие HTTP запросы которые содержат аналогичные записи - http://joxi.ru/brRZ1RqCJy1oyr\

Написал вот такую регялрку -  authenticate?code=(.*)

вставил ее в  Path следующего запроса -  /auth/realms/login-actions/authenticate?code="${code}"

Но она не сработала - http://host-name.ru/...?code="${code}"


  • 0

#9 Little_CJIOH

Little_CJIOH

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 182 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 23 Май 2018 - 09:50

Во первых: откройте любой on-line regexp tester, вставьте в него свою страничку и смотрите что находит введеный вами регэксп
Во вторых, добавьте дебаг сэмплер, чтобы видеть что jmeter выкусывает из ответа

И ЕМНИП, кавычки вокруг подставляемой переменной лишние.


  • 1

#10 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 190 сообщений
  • ФИО:Олексенко Сергей

Отправлено 23 Май 2018 - 11:17

попробуйте так authenticate\?code=([^"]+)


  • 0

#11 ImamTrotsky

ImamTrotsky

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Ясиновский Николай Петрович

Отправлено 23 Май 2018 - 14:04

Спасибо! Получилось!

верное выражение action="https?://[^/]*([^"]+)"


  • 0


Тестирование производительности (JMeter)
онлайн, начало 2 ноября
Тестирование удобства использования
онлайн, начало 24 октября
Тестирование REST API
онлайн, начало 22 октября
Тестирование веб-приложений 2.0
онлайн, начало 16 ноября




Темы с аналогичным тегами jmeter

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале