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

Фотография

Jmeter как сделать проверку для переопределенной страницы


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

#1 Tuchka_84

Tuchka_84

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

  • Members
  • PipPip
  • 105 сообщений
  • ФИО:Маша

Отправлено 10 августа 2010 - 06:05

Здравствуйте,

При изучении главы 6 книги Apache Jmeter Emili H.Halily , возник вопрос с проверкой страниц с помощью Response Assertion.
В примерах, как я понимаю использовался сайт http://www.packtpub.com/ какой-то предыдущей версии. Я хотела проверить функционал - "Регистрация пользователя без ввода пароля" . Записываю все действия с помощью Workbench. Последний запрос записанный им POST на страничке /account (рисунок прикрепляю). В книге же написано, что должен быть переход на другую страничку после ввода. Если добавить Response Assertion со значением "And your password field is required" (как на рисунке), то этот Response не проходит ( рис 3). Если повторно с помощью GET запроса загрузить страничку /account и там указать этот Response, то тоже не проходит.
Т.е. вопрос в том, как тестировать переопределяющуюся страничку после ввода данных в неё, если страничка остается той же самой /account только на ней появляется текст, к примеру, "And your password field is required", который и хотелось бы найти на ней.

PS
Если после ввода происходит автоматический переход на новую страничку, то Response Assertion работает на ура. Текст определяется ,к примеру, когда я тестировала страничку Search на своем сайте и Response Assertion со словами "Найдено страниц :4" отработало отлично.

Заранее спасибо.

Прикрепленные файлы

  • Прикрепленный файл  2.JPG   103,73К   98 Количество загрузок:
  • Прикрепленный файл  3.JPG   101,36К   96 Количество загрузок:
  • Прикрепленный файл  1.JPG   141,61К   75 Количество загрузок:

  • 0

#2 barancev

barancev

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

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


Отправлено 10 августа 2010 - 06:20

Лучше не скриншоты, а сам проект приложите.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 Tuchka_84

Tuchka_84

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

  • Members
  • PipPip
  • 105 сообщений
  • ФИО:Маша

Отправлено 10 августа 2010 - 06:41

Лучше не скриншоты, а сам проект приложите.

Проект во вложении.
"Simple Controller" = "Create Account without password"

Прикрепленные файлы


  • 0

#4 barancev

barancev

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

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


Отправлено 10 августа 2010 - 07:48

Могу предположить, что причина в том, что когда пользователь первый раз заходит на страницу /account (у Вас это запрос "Go to account page"), он получает форму, в которой среди прочего есть скрытые поля, содержащие динамически генерируемые данные, в частности поле form_build_id.

Нужно сделать корреляцию запросов -- то есть после первого запроса сохранить значение поля form_build_id, а в следующем запросе его использовать (а не то, которое рекордер записал когда-то). Увы, JMeter не LoadRunner, автокорреляцию делать не умеет, поэтому и выявлять, и реализовывать приходится вручную.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 Tuchka_84

Tuchka_84

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

  • Members
  • PipPip
  • 105 сообщений
  • ФИО:Маша

Отправлено 10 августа 2010 - 10:56

Могу предположить, что причина в том, что когда пользователь первый раз заходит на страницу /account (у Вас это запрос "Go to account page"), он получает форму, в которой среди прочего есть скрытые поля, содержащие динамически генерируемые данные, в частности поле form_build_id.

Нужно сделать корреляцию запросов -- то есть после первого запроса сохранить значение поля form_build_id, а в следующем запросе его использовать (а не то, которое рекордер записал когда-то). Увы, JMeter не LoadRunner, автокорреляцию делать не умеет, поэтому и выявлять, и реализовывать приходится вручную.

Я зашла на страничку /account вручную, затем из кода страницы скопировала form_build_id (из поля <input type="hidden" name="form_build_id" id="form-08e9025cf09eb36e8b92412dbfa66f55" value="form-08e9025cf09eb36e8b92412dbfa66f55" ).
Прописала в запросе GET "Go to account page" Send parameters With the Request это значение для form_build_id (возможно не нужно , если нет то скажите).
Затем и в запросе POST "No password" записанный там параметр form_build_id заменила тем же самым , что и в "Go to account page". Но это не помогло. для запроса POST все также не срабатывает Response Assertion.
Затем добавила следующий запрос GET опять к той же страничке /account с тем же значением form_build_id . И там попыталась проверить Response Assertion, но к сожалению и это не помогло.
Если Jmeter тестировать такие динамически генерируемые странички не может , то напишите.
В исходном коде страницы account при не указании пароля для регистрации появляется <div class="messages error">
And your password field is required.</div> Может это значение надо искать не с помощью Response Assertion, а как-то по-другому . Или может еще какие-то параметры надо указать.
  • 0

#6 barancev

barancev

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

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


Отправлено 10 августа 2010 - 11:23

В приложении исправленный работающий скрипт.

Вот что я изменил, чтобы оно заработало:
1) HTTP Request Defaults -- поменял адрес сайта с packtpub.com на www.packtpub.com
Дело в том, что после выполнения запроса к сайту packtpub.com выполнялось перенаправление (301) на такой же адрес на сайте www.packtpub.com, НО при этом вид запроса менялся с POST на GET и терялись все передаваемые параметры.
2) Добавил HTTP Cookie Manager, иначе сайт просто жаловался, что браузер не поддерживает cookies (а туда, как несложно видеть, прописывается идентификатор сессии)
3) Добавил корреляцию, то есть сохранение полученных в запросе "Go to account page" данных в переменную, которая потом используется в запросе "No password".

Прикрепленные файлы


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

#7 Tuchka_84

Tuchka_84

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

  • Members
  • PipPip
  • 105 сообщений
  • ФИО:Маша

Отправлено 10 августа 2010 - 12:08

В приложении исправленный работающий скрипт.

Спасибо!
Все заработало.

Если кому интересно аналогично XPath Extractor можно вытащить необходимое значение с помощью Regular Expression Extractor.
Теперь заработали все примеры из главы 6 :)
  • 0

#8 horhe

horhe

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

  • Members
  • PipPip
  • 100 сообщений
  • ФИО:Юрко
  • Город:Kraków

Отправлено 08 сентября 2010 - 13:57

3) Добавил корреляцию, то есть сохранение полученных в запросе "Go to account page" данных в переменную, которая потом используется в запросе "No password".

не могли бы вы подробнее описать где и как вы это сделали? а то ч скрипт скачал, а где это происходит найти не могу((( в каждом тесте свой form_build_id, а куда они сохраняются и откуда потом беруться не пойму. тетсы падают всё на том же асерте And your password field is required
  • 0
Piobaireachd isn't mysterious, difficult or hard - it's just music...

#9 barancev

barancev

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

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


Отправлено 08 сентября 2010 - 14:45


3) Добавил корреляцию, то есть сохранение полученных в запросе "Go to account page" данных в переменную, которая потом используется в запросе "No password".

не могли бы вы подробнее описать где и как вы это сделали? а то ч скрипт скачал, а где это происходит найти не могу((( в каждом тесте свой form_build_id, а куда они сохраняются и откуда потом беруться не пойму. тетсы падают всё на том же асерте And your password field is required

Смотрите контроллер с названием "Create Account without password" (тем более, что предыдущие отключены).
В нём есть два последовательных запроса -- "Go to account page" и "No password".
У первого из них в пост-процессоре "XPath Extractor" сохраняется некоторое значение в переменную FORM_BUILD_ID, и эта переменная затем передаётся в качестве значения параметра form_build_id следующего запроса.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#10 horhe

horhe

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

  • Members
  • PipPip
  • 100 сообщений
  • ФИО:Юрко
  • Город:Kraków

Отправлено 09 сентября 2010 - 09:00

спасибо, нашел. как мог слона и не заметить?(((
  • 0
Piobaireachd isn't mysterious, difficult or hard - it's just music...


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

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