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

Программирование на Python для тестировщиков
онлайн, начало 17августа
SQL для тестировщиков
онлайн, начало 20 августа
Программирование на C# для тестировщиков
онлайн, начало 24 августа
Тестирование производительности (JMeter)
онлайн, начало 24 августа
Фотография

Jmeter. Авторизация. Как и куда записать полученный токен?


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

#1 VitaliySloupok

VitaliySloupok

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Шипицын Виталий

Отправлено 01 Октябрь 2015 - 10:11

Добрый день.

 

Начал заниматься нагрузочным тестированием и сразу столкнулся с такой ситуацией:

для прогона сценария нагрузки необходима авторизация пользователя. Все действия, которые должны быть после авторизации у меня отваливаются. (из-за того, что у меня не сохраняется и нигде не используется токен) Скриншот:

http://myscreenshot....51619079761.png

 

Вопрос: Как мне получить и куда записать токен, чтобы остальные запросы проходили и не отваливались?

 

Логика: 

Пользователь авторизируется с помощью эл.почты и пароля, затем ему присылается через request headers токен, и с помощью этого токена проходят остальные запросы.

 

Сценарий: 

- в запросе "/token" идет отправка пароля и эл.адреса методом POST. Скриншот:

http://myscreenshot....98714822127.png

 

результат сценария: 

http://myscreenshot....12322859564.png

 

Дальше, все действия, которые должны пройти для авторизованного пользователя выходят с ошибкой:

 http://myscreenshot....63349475488.png

 

 

Подскажите, пожалуйста, куда нужно записать этот токен и каким образом.

В консоли токен обозначается следующим образом: http://myscreenshot....14132815066.png

 

Буду благодарен за помощь.

 

После слов:

- читал, что нужно добавить HTTP Cookie manager, а также добавлять HTTP Authorization Manager. Но с этим не выходит (скорее всего сам что-то криво делаю)


  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 814 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 03 Октябрь 2015 - 18:08

Да, как минимум надо добавить в сценарий HTTP Cookie Manager, это должно обеспечить передачу cookies в заголовке.

 

Если этого недостаточно -- нужно ещё добавить заполнение заголовка Authorization в HTTP Header Manager. Но сам он заполняться, конечно, не будет. Необходимо в узел, выполняющий запрос /token, добавить какой-нибудь экстрактор, который будет извлекать этот токен в переменную, а потом подставлять значение этой переменной в нужных местах.


  • 0

Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


#3 VitaliySloupok

VitaliySloupok

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Шипицын Виталий

Отправлено 22 Октябрь 2015 - 13:54

Благодарю за помощь!

Сделал, как вы сказали. Добавил в узел /token Regular expression extractor http://myscreenshot....54724981723.png. Затем в узлы, где необходима проверка токена, добавил в HTTP Header Manager обращение к этому токену, и все запросы выходят без ошибок, все работает.

http://myscreenshot....03474782304.png

 

Но в данном случае мне пришлось в каждый узел в HTTP Header Manager добавить обращение к переменной ${token}.

Вопрос: Можно ли добавить общий HTTP Header Manager для всех запросов, чтобы не приходилось во всех запросах вбивать обращение к токену?


  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 814 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 23 Октябрь 2015 - 11:32

Благодарю за помощь!

Сделал, как вы сказали. Добавил в узел /token Regular expression extractor http://myscreenshot....54724981723.png. Затем в узлы, где необходима проверка токена, добавил в HTTP Header Manager обращение к этому токену, и все запросы выходят без ошибок, все работает.

http://myscreenshot....03474782304.png

 

Но в данном случае мне пришлось в каждый узел в HTTP Header Manager добавить обращение к переменной ${token}.

Вопрос: Можно ли добавить общий HTTP Header Manager для всех запросов, чтобы не приходилось во всех запросах вбивать обращение к токену?

 

Да, можно сгруппировать несколько сэмплеров, и сделать им общий HTTP Header Manager, который будет добавлять заголовки всем вложенным в него сэмплерам. Вот пример:

 

Прикрепленный файл  23-10-2015 14-28-35.png   64,72К   36 Количество загрузок:Прикрепленный файл  23-10-2015 14-29-50.png   84,91К   28 Количество загрузок:


  • 0

Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


#5 VitaliySloupok

VitaliySloupok

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Шипицын Виталий

Отправлено 24 Октябрь 2015 - 14:22

Да, все получилось. Спасибо огромное!


  • 0

#6 luarvik

luarvik

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Luarvik Luarvik

Отправлено 18 Апрель 2017 - 10:05

сделал всё в точности, как описано в треде, но Response data всё равно возвращает {"detail":"Authentication credentials were not provided."}

 

 

ниже скриншоты, постарался сделать как можно более подробно

 

View Results Tree

http://joxi.ru/ZrJ4n75CEGYl2j

 

HTTP Request по которому отправляется логин/пароль 

http://joxi.ru/v29Dw51Tev0dmG

 

Regular Expression Extractor

http://joxi.ru/EA41wDOteBJvrb

 

HTTP Header Manager

http://joxi.ru/n2YBE61cg8X0A6

 

 

помогите, пожалуйста, разобраться в возможных причинах 


  • 0

#7 MrFuka

MrFuka

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

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Aaa

Отправлено 29 Ноябрь 2017 - 12:53

Добрый день.

 

Как и автор, начал заниматься нагрузочным тестированием и столкнулся с ситуацией как и у автора топика.. но как не пробывал, решить не могу

 

Метод POST проходит

Метод GET не проходит

 

Причина: 401, no access token found

 

Скриншоты:

http://i.piccy.info/...1/1200750/1.jpg

http://i.piccy.info/...0/1200750/2.jpg

http://i.piccy.info/...9/1200750/3.jpg

http://i.piccy.info/...5/1200750/4.jpg

http://i.piccy.info/...3/1200750/5.jpg

http://i.piccy.info/...4/1200750/6.jpg

http://piccy.info/vi...0e7d97220e89f8/

http://i.piccy.info/...0/1200750/8.jpg

http://piccy.info/vi...a6bc40cbabc5d7/

 

 

Буду признателен за помощь.


  • 0

#8 Skaild

Skaild

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

  • Members
  • Pip
  • 9 сообщений

Отправлено 14 Декабрь 2017 - 02:49

Я, конечно, не мегаспец - мне тут самому пару недель назад помогали, недоуменно глядя на мои попытки в jmeter. 

 

Но у меня была похожая схема. Победил следующим образом:

 

1. Делаю первый http запрос на получения токена. Ему в параметры пишем grant_type, username, password и scope. 

2. К нему цепляю HTTP Header Manager. В нем пишем только Content-Type.

3. К запросу на токен привязываем экстрактор. Сколько я не бился - регулярку победить не смог, поэтому вытягиваю токен JSON экстрактором:

Variable names: access_token

JSON Path expression: $.access_token

Все. В переменной access_token у нас лежит токен.

4. К последнему get-запросу прикручиваем Header Manager. Но в нем уже не пишем username/password/grant_type и вот это вот все. Пишем проще: 

Authorization: bearer ${access_token}

Content-Type: application/json

 

 

Попробуйте - у меня работает. 


  • 0

#9 alessenika

alessenika

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

  • Members
  • Pip
  • 1 сообщений


Отправлено 11 Январь 2018 - 09:00

Добрый день!

 

У меня очень схожая ситуация с автором топика, но другая ошибка.

 

Начала заниматься нагрузочным тестированием (использую JMeter 3.3) и столкнулась с проблемой: при выполнении сценария необходима регистрация пользователя. При нажатии на кнопку login получаю ошибку Response code: 403 Response message: FORBIDDEN

 

скрин: https://drive.google...iew?usp=sharing

 

решение: Погуглив, поняла, что проблема с куками. Добавив HTTP Cookie Manager решить проблему не получилось. Скорее всего не верно делаю.

 

 

Возможно кто-то сталкивался с такой ошибкой. Буду благодарна за помощь!


  • 0

#10 Vitalii_Sotnichenko

Vitalii_Sotnichenko

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

  • Members
  • Pip
  • 5 сообщений

Отправлено 31 Июль 2018 - 10:11

У меня следующая ситуацияЖ

1.Создаю запрос c grant type, login, password and account id

https://www.screenca...om/t/ViuaOdkb0N

2. В Authorization Header Manager для этого запроса добавляю базовую авторизацию

https://www.screenca...om/t/x9rr8rR0Ja

3. Затем в следующем запросе с токеном добавляю или регулярку или джейсон екстрактор

https://www.screencast.com/t/ih2BxO3u

https://www.screenca...m/t/Rg4vuvZjBcX

4. Во всех следующих Authorization Header Manager добавляю эту переменную с екстрактора

https://www.screencast.com/t/SGLstl9f

 

В View results Tree для первого запроса вижу что access_token вернулся успешно 

https://www.screencast.com/t/WXLZbEXz

 

Но затем в части остальных запросах invalid token

 

https://www.screenca.../t/mBoxlQ6XwDRj

https://www.screencast.com/t/ioB1wvDh

 

 

Кто может подсказать в чем проблема? Может неправильная регулярка или неправильно передаю токен?


  • 0

#11 MissLeman

MissLeman

    Активный участник

  • Members
  • PipPip
  • 83 сообщений


Отправлено 31 Июль 2018 - 11:57

А вам для передачи токена точно не Bearer схема нужна (а не Basic)?

 

(я наверное что-то путаю, но вдруг)


  • 0

#12 Vitalii_Sotnichenko

Vitalii_Sotnichenko

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

  • Members
  • Pip
  • 5 сообщений

Отправлено 31 Июль 2018 - 12:39

А вам для передачи токена точно не Bearer схема нужна (а не Basic)?

 

(я наверное что-то путаю, но вдруг)

 

Token type указан bearer

https://www.screenca...m/t/A9cwK7XaPmh


  • 0

#13 Vitalii_Sotnichenko

Vitalii_Sotnichenko

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

  • Members
  • Pip
  • 5 сообщений

Отправлено 02 Август 2018 - 20:06

И еще в Дебаг семпелере почему-то access_token пустой

 

MeterVariables:
JMeterThread.last_sample_ok=false
JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@1572df3d
START.HMS=231151
START.MS=1533067911741
START.YMD=20180731
TESTSTART.MS=1533240274394
__jmeter.USER_TOKEN__=Thread Group 1-1
access_token=

  • 0


Тестирование производительности (JMeter)
онлайн, начало 24 августа
Тестирование удобства использования
онлайн, начало 5 сентября
Тестирование производительности (HP Load Runner)
онлайн, начало 7 сентября
Тестирование веб-приложений 2.0
онлайн, начало 7 сентября



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

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

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