Запись тестовых сценариев при помощи JMeter
Данное руководство научит использовать рекордер тестовых скриптов 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: Apache, Apache JMeter, Oracle Java 7