![Фотография](https://software-testing.ru/forum/uploads/profile/photo-thumb-18488.png?_r=0)
Процедура доступа к почтовому ящику
#1
Отправлено 06 октября 2011 - 18:50
Почитав посты про JMeter и его плагины и не найдя ответа на интересующий меня вопрос,
решил задать вопрос для решения моего вопроса. Я только начал использования и знакомство
с инструментом, поэтому прошу не пинать меня ногами за некорректно поставленные вопросы.
Так как здесь много людей знающих и давно использующих JMeter, я надеюсь
получить помощь от них. Впрочем, мне любой совет по данной теме не помешает.
В чём же суть вопроса. Описываю:
Есть web приложение. Пользователь проходит простую регистрацию (здесь пока у меня не
возникло вопросов) попадает на страницу, где он может предоставить доступ приложению
к своему почтовому ящику. Ящик может быть расположен либо на Yahoo либо на Gmail.
Для получения доступа используется API того или другого провайдера. Соответственно
выбирая определённого провайдера и тыкнув кнопочку "предоставить доступ" мы получаем
форму авторизации на выбранном почтовом сервисе. Вот тут и получилась загвоздка. Эту
авторизацию я и не могу пройти. Хотелось бы получить Вашего совета и помощи. Желательно
чтоб это было наглядно и понятно (ну как для детей :) ).
Если необходима дополнительная инфа, скажите, постараюсь дать максимум информации чтоб
ускорить решение вопроса.
Спасибо.
#2
Отправлено 07 октября 2011 - 03:43
#3
Отправлено 07 октября 2011 - 04:37
Я правильно понял, что авторизация на почте происходит через какой-то веб-интерфейс? Вы написали, что это веб приложение, значит наверно это так. Скорее всего логин и пароль для авторизации на почте передается в качестве пост параметров в хттп запросе. У вас проблема в том, чтобы выполнить такой же запрос с помощью жметра? Попробуйте посмотреть посылаемые запросы в Developer Tools в браузере chrome(кнопка F12) или в плагине firebug в firefoxe. Сформировать данные запросы с помощью JMeter я думаю вы уже сможете. Другой вариант воспользоваться записью запросов с помощью HTTP Proxy Server в самом JMeter - help вам поможет.
Спасибо за подсказку. Да, авторизация через web интерфейс. На счёт посмотреть формируемые запросы в firebug это мысль. Я как-то не подумал об этом. А запись сценария через HTTP Proxy и Badboy ничего не дала. Или
может я лишнее удалил из скрипта. Попробую сегодня ещё раз.
#4
Отправлено 07 октября 2011 - 06:08
В таких ситуациях лучше делать заглушку-эмулятор в своем приложении, это существенно облегчает задачу НТ
Андрей Похилько
#5
Отправлено 07 октября 2011 - 12:28
Я думаю Гугл и Яха не обрадуются нагрузочному тестированию своих АПИ авторизации и скоренько забанят назойливый ИП.
В таких ситуациях лучше делать заглушку-эмулятор в своем приложении, это существенно облегчает задачу НТ
Как раз в этом направлении (заглушку-эмулятор) и работаю. Спасибо за ответ.
#6
Отправлено 11 октября 2011 - 14:33
Я думаю Гугл и Яха не обрадуются нагрузочному тестированию своих АПИ авторизации и скоренько забанят назойливый ИП.
В таких ситуациях лучше делать заглушку-эмулятор в своем приложении, это существенно облегчает задачу НТ
Как раз в этом направлении (заглушку-эмулятор) и работаю. Спасибо за ответ.
Вопрос подключения решён. Но появились другие вопросы.
1. Есть Loop Controller. В нём выполняется несколько шагов. Один из них цикл While Controller, выход из этого цикла происходит
по выстовлению некоторой переменной в 0. Так вот, как устанавливать эту переменную, назовём её STATUS, перед входом в
While Controller в 1?
2. При выполнении логированя из куков вытягивается сессионная переменная которая помещается в переменную CT_PARAM
в тест-плане. Эта переменная должна использоваться во всех телодвижениях теста, до логаута. Подскажите где лучше хранить
значение этой переменной если: а) пользователей будет много и у каждого значение этой переменной будет своё; б) циклов
логин-логаут будет тоже некоторое количество и при каждом новом логине значение переменной тоже будет меняться.
3. Какой лучше использовать элемент для выполнения пауз между шагами определёнными в тест-плане.
4. Как и куда можно выводить текущее значение переменных в тест-плане, чтоб можно было контролировать их значение во
время выполнения тест-плана.
#7
Отправлено 19 октября 2011 - 05:37
Не совсем понял вопрос, но возможно поможет Once Only Controller - исполняет свое содержимое только один раз и пропускает выполнение содержимого при последующих итерациях. Пример: Loop Controller настроен на пятикратное выполнение и содержит Once Only Controller, содержимое Once Only Controller выполнится только один раз.1. Есть Loop Controller. В нём выполняется несколько шагов. Один из них цикл While Controller, выход из этого цикла происходит
по выстовлению некоторой переменной в 0. Так вот, как устанавливать эту переменную, назовём её STATUS, перед входом в
While Controller в 1?
Опять же не совсем понял (какой критерий "лучшести"?). Использовал обычный constant timer3. Какой лучше использовать элемент для выполнения пауз между шагами определёнными в тест-плане.
Делал так:4. Как и куда можно выводить текущее значение переменных в тест-плане, чтоб можно было контролировать их значение во
время выполнения тест-плана.
Edit > Add > Sampler > Debug Sampler (Jmeter Variables:=true)
Значения переменных по ходу выполнения плана смотрел в TreeListeners (Response Data).
Буду рад, если помог.
Если нет - звиняйте.
#8
Отправлено 19 октября 2011 - 06:38
Сразу предупреждаю - я не "гуру", просто столкнулся с подобными задачами, и решил их для себя следующим образом:
Не совсем понял вопрос, но возможно поможет Once Only Controller - исполняет свое содержимое только один раз и пропускает выполнение содержимого при последующих итерациях. Пример: Loop Controller настроен на пятикратное выполнение и содержит Once Only Controller, содержимое Once Only Controller выполнится только один раз.
1. Есть Loop Controller. В нём выполняется несколько шагов. Один из них цикл While Controller, выход из этого цикла происходит
по выстовлению некоторой переменной в 0. Так вот, как устанавливать эту переменную, назовём её STATUS, перед входом в
While Controller в 1?Опять же не совсем понял (какой критерий "лучшести"?). Использовал обычный constant timer3. Какой лучше использовать элемент для выполнения пауз между шагами определёнными в тест-плане.
Делал так:4. Как и куда можно выводить текущее значение переменных в тест-плане, чтоб можно было контролировать их значение во
время выполнения тест-плана.
Edit > Add > Sampler > Debug Sampler (Jmeter Variables:=true)
Значения переменных по ходу выполнения плана смотрел в TreeListeners (Response Data).
Буду рад, если помог.
Если нет - звиняйте.
Спасибо за Ваш ответ. Часть вопросов я уже решил. Время подпирало, пришлось извращаться.
Значить по порядку.
1. Я имел ввиду что в Loop Controller при каждой итерации необходимо устанавливать значение
некоей переменной, в данном случае это переменная STATUS, в 1. Это необходимо делать для выполнения
условия входа в цикл, While Controller, так как для выхода из цикла переменная устанавливается в 0. В цикле
эта переменная устанавливается путём выполнения http запроса к серверу и последующего анализа ответа
сервера с помощью Regular Expression Extractor. Эти же действия я выполняю для пред-установки переменной
STATUS перед входом в цикл.
2. Вопрос о том где хранить переменную, решён полностью. Достаточно не объявлять переменную как глобальную,
а объявить её в Thread Group например. Мне это помогло.
3. В тест-плане есть определённый набор действий, который JMeter должен выполнить. Так вот, здесь мне надо
было выполнять паузу между этими действиями. Как это можно сделать? Я пока сделал так: прицепил к каждому
шагу в тест-плане Constant Timer. Но это же не "комиль-фо". Должно быть более элегантное решение.
4. Да, я использую сейчас тоже, что посоветовали и Вы.
Остался открытый вопрос номер 3. На данный момент он не срочный, но всё же его придётся решить тоже. Может
кто-то подскажет решение.
Ещё я создал новую тему, вот она: http://software-test...um/topic/20857/ Может кто знает как выполнить то, что там
описано.
Всем ещё раз спасибо.
#9
Отправлено 19 октября 2011 - 18:15
3. В тест-плане есть определённый набор действий, который JMeter должен выполнить. Так вот, здесь мне надо
было выполнять паузу между этими действиями. Как это можно сделать? Я пока сделал так: прицепил к каждому
шагу в тест-плане Constant Timer. Но это же не "комиль-фо". Должно быть более элегантное решение.
Вы можете создать таймер один раз для Thread Group и он будет применяться всеми тредами ко всем Sampler внутри него.
Смотрите картинку:
![Прикрепленный файл](https://software-testing.ru/forum/public/style_extra/mime_types/quicktime.gif)
Таймер стоит один раз и равен 5 сек => между каждым действие в Simple Controller идет пауза в 5 сек
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных