Запись тестовых сценариев при помощи JMeter

Published by Leave your thoughts

Данное руководство научит использовать рекордер тестовых скриптов Apache JMeter для записи HTTP-запросов. Это позволяет планировать тестирование и эмулировать поведение пользователей в сети.

Примечание: Данное руководство предполагает наличие базовых навыков работы с Apache JMeter. Об основных принципах работы данного инструмента можно прочесть здесь.

Требования

  • Предварительно установленный Apache JMeter (скачать бинарные файлы можно здесь).
  • Java 6+.
  • Mozilla Firefox (можно загрузить по этой ссылке).

При написании руководства использовались следующие версии программ:

  • Oracle Java 7
  • JMeter 2.11
  • Firefox 30.0

Создание теста

Для начала запустите JMeter.

Примечание: Если у вас уже есть готовый план тестирования, используйте его и пропустите данный раздел.

Создайте минимальную группу потоков, состоящую из компонентов Thread Group и HTTP Request Defaults.

Добавление группы потоков

Чтобы добавить Thread Group):

  • Щелкните правой кнопкой по Test Plan
  • Выберите Add >
  • Найдите и выберите Threads (Users) >
  • Выберите Thread Group

Установите следующие значения параметров Thread Group:

  • Number of Threads (users): Количество потоков (пользователей), которое будет эмулировать JMeter; установите значение 50.
  • Ramp-Up Period (in seconds): Продолжительность тестирования в секундах. Установите значение 10
  • Loop Count: Количество тестов. Установите 1.

Добавление настроек HTTP

Чтобы добавить HTTP Request Defaults для Thread Group:

  • Кликните правой кнопкой на Thread Group.
  • Нажмите Add.
  • Затем выберите Config Element >.
  • Кликните HTTP Request Defaults.

На экране появятся настройки для HTTP Request Defaults. В разделе Web Server найдите поле Server Name or IP и укажите в нём имя или IP-адрес веб-сервера, который нужно протестировать. Установленный здесь сервер становится сервером по умолчанию для остальных элементов этой группы потоков.

Добавление HTTP Cookie Manager

Если сервер использует cookie-файлы, можно настроить их поддержку при помощи элемента HTTP Cookie Manager. Чтобы добавить в Thread Group элемент HTTP Cookie Manager:

  • Кликните правой кнопкой на Thread Group.
  • Нажмите Add >.
  • Затем выберите Config Element >.
  • Кликните HTTP Cookie Manager.

Добавление компонента Recording Controller

Чтобы добавить компонент Recording Controller:

  • Кликните правой кнопкой на Thread Group.
  • Нажмите Add >.
  • Выберите Logic Controller >.
  • Кликните HTTP Recording Controller.

Компонент Recording Controller создаёт семплеры HTTP Request.

Добавление компонента HTTP(S) Test Script Recorder

Теперь нужно добавить компонент HTTP(S) Test Script Recorder в WorkBench:

  • Выберите WorkBench и кликните правой кнопкой мыши.
  • Нажмите Add >.
  • Выберите Non-Test Elements >.
  • Нажмите HTTP(S) Test Script Recorder.

Примечание: Компоненты, которые добавляются в WorkBench, не сохраняются вместе с остальными компонентами плана. Чтобы сохранить компоненты WorkBench, кликните на WorkBench правой кнопкой и выберите Save Selection As… Сохранив компоненты, можете добавить их в план тестирования; для этого откройте меню, нажмите Merge и выберите сохранённые компоненты WorkBench.

Настройка портов

Стандартный порт прокси HTTP(S) Test Script Recorder – 8080. Его можно изменить в глобальных настройках (Global Settings, параметр Port).

Шаблоны URL (опционально)

HTTP(S) Script Recorder позволяет добавлять шаблоны, URL Patterns, написанные как регулярные выражения. Они позволяют включить в запись и исключить из неё некоторые компоненты. Многие рекомендуют включать в запись только тип запрашиваемого контента (*.html, *.php, и т.п.) или исключать из записи типы контента, который запрашивать не нужно (к примеру, *.jpg, *.png, *.js).

Чтобы добавить шаблон:

  • Откройте раздел URL Patterns to Include или URL Patterns to Exclude;
  • Нажмите Add;
  • Введите шаблон.

Примечание: чтобы добавить больше шаблонов, просто повторите описанные выше действия.

Примеры:

  • URL Patterns дл веб-страниц:

.*\.html
.*\.php
.*\.htm

  • URL Patterns для изображений:

.*\.png
.*\.jpg
.*\.gif

Добавление компонентов в Script Recorder (опционально)

Чтобы записанные запросы наследовали какие-либо компоненты, нужно добавить эти компоненты в  HTTP(S) Test Script Recorder. К примеру, если добавить в Script Recorder компонент Timer, то этот компонент будет добавлен в каждый запрос (HTTP Request). Этот компонент создаёт очередь потоков, ожидающих выполнения запроса.

Чтобы добавить Constant Timer в HTTP(S) Test Script Recorder:

  • Выберите HTTP(S) Test Script Recorder и кликните правой кнопкой мыши.
  • Нажмите Add >.
  • Выберите Timers >.
  • Нажмите Constant Timer.

Настроить ожидание потока можно по своему усмотрению.

Предположим, вы хотите эмулировать клики пользователей на разных страницах каждые 2 секунды; для этого нужно установить ожидание потока в 2000 миллисекунд.

Запись тестирования

Нажмите кнопку Start в окне Script Recorder, чтобы запустить прокси-сервер JMeter, который будет перехватывать и записывать запросы к браузеру.

При первом запуске Script Recorder вернёт ошибку, сообщив, что он не может запуститься, поскольку нет сертификата. Просто нажмите OK, после чего инструмент запустится во второй раз. На экране появится сообщение о том, что в каталоге bin инструмент JMeter  создал временный сертификат ApacheJMeterTemporaryRootCA.crt. чтобы продолжить, нажмите OK.

Примечание: Если браузер уже использует прокси-сервер, то нужно настроить JMeter для использования этого сервера ещё до запуска. Для этого существуют параметры -H и –P.

Настройка браузера для использования прокси-сервера JMeter

В данном руководстве используется браузер Firefox. В отличие от Chrome и некоторых других браузеров, он позволяет ппрокси-серверам переопределять общесистемные настройки.

Настройте Firefox для использования локального хоста (127.0.0.1) на порте 8080 в качестве прокси-сервера для всего трафика:

  • Откройте Firefox;
  • Найдите меню Preferences;
  • Кликните в нём по вкладке Advanced;
  • Откройте вкладку Network;
  • В разделе Connection кликните «Settings…»;
  • Нажмите Manual proxy configuration;
  • В HTTP Proxy укажите localhost, а в Port – 8080;
  • Нажмите OK и закройте меню Preferences.

Примечание: Если браузер Firefox настроен для поддержки прокси-сервера JMeter для Script Recorder, он будет работать корректно только тогда, когда запущен Script Recorder.

Запись запросов HTTP

Теперь, когда HTTP(S) Test Script Recorder запущен, а Firefox настроен для поддержки его прокси-сервера, все HTTP-запросы браузера будут записаны.

Убедитесь, что всё работает должным образом.

В браузере Firefox откройте домашнюю страницу сервера, указанного в HTTP Request Defaults.

http://your_domain.com/

Рядом с Recording Controller должен появиться маленький символ треугольника. Чтобы получит расширенные сведения, кликните по нему. На экране появится список HTTP-запросов, составленный согласно установленному шаблону.

Этот список можно отредактировать вручную, просто удалив ненужные запросы.

Если Recording Controller не предоставил списка запросов, просмотрите шаблоны для HTTP(S) Test Script Recorder.

Примечание: Рекомендуется удалить все шаблоны.

Завершив запись запросов, нажмите Stop в окне HTTP(S) Test Script Recorder.

Имейте в виду: на данный момент браузер Firefox не имеет доступа к другим страницам, поскольку он настроен для использования порта 8080 в качестве прокси. Чтобы изменить это поведение, настройте браузер для использования «No proxy».

Запуск тестирования

Когда план тестирования будет готов, сохраните и запустите его. Он будет работать в точности как созданный вручную тест; вы можете настраивать, удалять, добавлять в него компоненты.

Заключение

HTTP(S) Test Script Recorder поможет быстро разработать план JMeter.

Инструмент JMeter позволяет оптимизировать и усовершенствовать сервер веб-приложения, устранить неполадки в настройках и увеличить его производительность.

Данное руководство охватывает только основы работы с Recording Controller. Изучите остальные функции этого инструмента самостоятельно.

Tags: , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>