Поиск по сайту:

Как использовать JMeter для записи тестовых сценариев


Введение

В этом руководстве мы научим вас настраивать и использовать средство записи тестовых сценариев Apache JMeter HTTP(S) для записи HTTP-запросов. Запись HTTP-запросов — отличный способ построения планов тестирования, который может быть полезен при создании тестов, точно имитирующих поведение обычного пользователя.

В этом руководстве предполагается, что у вас есть базовые знания Apache JMeter. Если вы новичок в JMeter, вот еще одно руководство, которое поможет вам начать работу: Как использовать Apache JMeter для выполнения нагрузочного тестирования на веб-сервере.

Предпосылки

Вот список программного обеспечения, которое требуется для этого руководства:

  • Apache JMeter: загрузите двоичные файлы здесь
  • Java 6 или более поздняя версия: Oracle Java доступна здесь
  • Mozilla Firefox: скачать здесь

Для справки: при написании этого руководства мы использовали следующие версии программного обеспечения:

  • Обновление Oracle Java 7 60, 64-разрядная версия
  • JMeter 2.11
  • Firefox 30.0

Начните создавать план тестирования

Сначала запустите JMeter. Затем приступим к составлению плана тестирования. Если у вас уже есть план тестирования, с которого вы хотели бы начать, пропустите этот раздел и перейдите к добавлению контроллера записи в группу потоков (следующий раздел).

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

Добавить группу потоков

Добавьте Группу потоков в План тестирования:

  1. Нажмите правой кнопкой мыши на План тестирования
  2. Наведите указатель мыши на Добавить >
  3. Наведите указатель мыши на треды (пользователи) >
  4. Нажмите Группа тем

Задайте для свойств группы потоков следующие значения:

  • Количество потоков (пользователей): установите значение 50.
  • Период разгона (в секундах): установите значение 10.
  • Счетчик циклов: оставьте значение 1.

Добавить значения по умолчанию для HTTP-запроса

Теперь давайте добавим HTTP Request Defaults в Thread Group:

  1. Выберите Группа тем, затем щелкните ее правой кнопкой мыши.
  2. Наведите указатель мыши на Добавить >
  3. Наведите указатель мыши на элемент конфигурации >
  4. Нажмите Настройки HTTP-запроса по умолчанию

В разделе «Параметры HTTP-запроса по умолчанию» в разделе «Веб-сервер» введите в поле Имя или IP-адрес сервера имя или IP-адрес веб-сервера, который вы хотите протестировать.

Добавить диспетчер файлов cookie HTTP

Если ваш веб-сервер использует файлы cookie, вы можете добавить поддержку файлов cookie, добавив HTTP Cookie Manager в группу потоков:

  1. Выберите Группа тем, затем щелкните ее правой кнопкой мыши.
  2. Наведите указатель мыши на Добавить >
  3. Наведите указатель мыши на элемент конфигурации >
  4. Нажмите Диспетчер файлов cookie HTTP

Добавить контроллер записи

Теперь давайте добавим Контроллер записи в Группу потоков:

  1. Выберите Группа тем, затем щелкните ее правой кнопкой мыши.
  2. Наведите указатель мыши на Добавить >
  3. Наведите указатель мыши на логический контроллер >
  4. Нажмите Контроллер записи

Контроллер записи — это место, где будут создаваться записанные образцы HTTP-запросов. Следующим шагом является настройка средства записи тестовых сценариев HTTP(S).

Добавить средство записи тестовых сценариев HTTP(S)

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

  1. Выберите WorkBench, затем щелкните его правой кнопкой мыши.
  2. Наведите указатель мыши на Добавить >
  3. Наведите указатель мыши на не тестовые элементы >
  4. Нажмите Запись тестовых сценариев HTTP(S)

Примечание. Элементы, добавляемые в WorkBench, не сохраняются вместе с остальной частью плана тестирования. Если вы хотите сохранить WorkBench, щелкните правой кнопкой мыши WorkBench, затем выберите Сохранить выделение как… и сохраните его в нужном месте. После сохранения вы можете добавить его в любой открытый план тестирования, используя пункт меню «Объединить» и выбрав сохраненный WorkBench.

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

Порт по умолчанию, на котором будет работать прокси-сервер HTTP(S) Test Script Recorder, — 8080. Это можно изменить, изменив параметр Порт в разделе Общие настройки.

Включение или исключение шаблонов URL (необязательно)

В средстве записи сценариев HTTP(S) вы можете добавлять шаблоны URL, записанные в виде регулярных выражений, для включения или исключения при записи. Это может быть полезно либо для включения только тех типов контента, которые вы хотите запросить (например, *.html, *.php и т. д.), либо для исключения типов контента, которые вы не хотите запрашивать (например, *.jpg, *.png). , *.js и т. д.).

Чтобы добавить шаблон URL, нажмите кнопку \Добавить в разделе Шаблоны URL для включения или Шаблоны URL для исключения, затем нажмите в верхней части белой области в раздел. Теперь вы можете ввести шаблон. Повторите процесс, чтобы добавить больше шаблонов.

Пример: шаблоны URL для веб-страниц

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

Пример: шаблоны URL для изображений

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

Вот скриншот шаблонов URL для исключения изображений:

Добавление элементов в средство записи сценариев (необязательно)

Добавление элементов JMeter в средство записи тестовых сценариев HTTP(S) приведет к тому, что записанные запросы наследуют добавленный элемент. Например, если мы добавим элемент Таймер в средство записи сценариев, таймер будет добавлен к каждому записываемому HTTP-запросу. Когда тест запущен, таймер заставит каждый тестовый поток ждать перед выполнением HTTP-запроса.

Давайте добавим Постоянный таймер в HTTP(S) Test Script Recorder, например:

  1. Выберите HTTP(S) Test Script Recorder, затем щелкните его правой кнопкой мыши.
  2. Наведите указатель мыши на Добавить >
  3. Наведите указатель мыши на таймеры >
  4. Нажмите Постоянный таймер

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

Предположим, вы хотите имитировать пользователя, который щелкает другую страницу каждые 2 секунды. Если установить задержку потока на 2000 мс, это будет достигнуто за счет добавления 2-секундной задержки к каждому записываемому HTTP-запросу.

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

Начать запись

Нажатие кнопки «Пуск» в нижней части окна средства записи сценариев запустит прокси-сервер JMeter, который будет использоваться для перехвата и записи запросов браузера. Нажмите кнопку «Пуск» (устройства записи) сейчас.

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

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

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

Мы будем использовать Firefox в качестве нашего браузера при использовании JMeter HTTP(S) Test Script Recorder, потому что, в отличие от Chrome и некоторых других браузеров, он позволяет переопределять общесистемную конфигурацию для настроек прокси-сервера.

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

  1. Откройте Firefox
  2. Перейдите в меню Настройки.
  3. Перейдите на вкладку Дополнительно.
  4. Затем вкладка Сеть.
  5. В разделе \Подключение нажмите \Настройки…
  6. Выберите переключатель «Ручная настройка прокси-сервера».
  7. Установите для прокси-сервера HTTP значение \localhost, а для порта – \8080
  8. Отметьте \Использовать этот прокси-сервер для всех протоколов
  9. Нажмите ОК и выйдите из меню Настройки.

Примечание. Когда Firefox настроен на использование регистратора сценариев JMeter в качестве прокси, он будет работать правильно только в том случае, если регистратор сценариев запущен.

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

Теперь, когда средство записи тестовых сценариев HTTP(S) нашего плана тестирования запущено, а Firefox настроен на использование его в качестве прокси-сервера, HTTP-запросы, отправляемые Firefox, будут записываться. Давайте проверим это.

В Firefox перейдите на домашнюю страницу вашего сервера (тот же сервер, который вы настроили в настройках HTTP-запроса JMeter по умолчанию):

http://your_domain.com/

Теперь рядом с вашим контроллером записи должен быть маленький треугольник. Нажмите на него, чтобы развернуть и показать запросы, которые он записал. Вы должны увидеть записанные HTTP-запросы, в зависимости от того, какие шаблоны URL вы включили и исключили. Не стесняйтесь просматривать свой сайт, чтобы записать больше запросов.

Вот пример того, что было записано при посещении главной страницы сайта WordPress (без установленных шаблонов URL):

Как видите, запросов было создано много. Вы можете уточнить список HTTP-запросов, просто удалив здесь ненужные записи.

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

Когда вы закончите запись, нажмите кнопку «Стоп» в нижней части окна записи тестовых сценариев HTTP(S). Обратите внимание, что Firefox больше не сможет получить доступ к каким-либо страницам (поскольку он настроен на использование порта 8080 в качестве прокси) — настройте его на использование «Без прокси», если вы хотите, чтобы он работал нормально.

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

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

Заключение

Теперь, когда вы можете использовать средство записи тестовых сценариев HTTP(S) для помощи в создании планов тестирования JMeter, вам должно быть проще создавать планы тестирования, имитирующие реалистичные сценарии. Не стесняйтесь исследовать записанные запросы в вашем контроллере записи, чтобы узнать больше о типах запросов, которые делаются, когда пользователи просматривают ваш веб-сервер.

Удачи!