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

Вступление

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

В этом руководстве предполагается, что у вас есть базовые знания Apache JMeter. Если вы новичок в JMeter, вот еще одно руководство, которое поможет вам начать: https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing-on -a-web-server [Как использовать Apache JMeter для выполнения нагрузочного тестирования на веб-сервере]

Предпосылки

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

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

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

  • JMeter 2.11

  • Firefox 30.0

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

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

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

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

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

  1. Щелкните правой кнопкой мыши на Test Plan

  2. Наведите курсор мыши на _Добавить> _

  3. Наведите курсор мыши на _Threads (Пользователи)> _

  4. Нажмите на Thread Group

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

  • * Количество потоков (пользователей) *: установите значение * 50 *

  • * Период разгона (в секундах) *: установите значение * 10 *.

  • * Loop Count *: оставьте этот параметр равным * 1 *.

изображение: https: //assets.digitalocean.com/articles/jmeter/thread_group1.png [Свойства группы потоков]

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

Теперь давайте добавим HTTP-запрос по умолчанию в группу потоков:

  1. Выберите Thread Group, затем щелкните правой кнопкой мыши

  2. Наведите курсор мыши на _Добавить> _

  3. Наведите курсор мыши на элемент _Config> _

  4. Нажмите на HTTP-запрос по умолчанию

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

изображение: https: //assets.digitalocean.com/articles/jmeter/http_request_defaults.png [HTTP-запрос по умолчанию]

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

  1. Выберите Thread Group, затем щелкните правой кнопкой мыши

  2. Наведите курсор мыши на _Добавить> _

  3. Наведите курсор мыши на элемент _Config> _

  4. Нажмите на HTTP Cookie Manager

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

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

  1. Выберите Thread Group, затем щелкните правой кнопкой мыши

  2. Наведите курсор мыши на _Добавить> _

  3. Наведите курсор мыши на _Logic Controller> _

  4. Нажмите _ Контроллер записи _

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

Добавить HTTP (S) Test Script Recorder

Теперь давайте добавим регистратор тестовых сценариев HTTP (S) в WorkBench:

  1. Выберите WorkBench, затем щелкните его правой кнопкой мыши

  2. Наведите курсор мыши на _Добавить> _

  3. Наведите курсор мыши на _Non-Test Elements> _

  4. Нажмите на HTTPS) Test Script Recorder

    • Примечание: * Элементы, добавленные в WorkBench, не сохраняются вместе с остальной частью плана тестирования. Если вы хотите сохранить свой WorkBench, щелкните правой кнопкой мыши на WorkBench, затем выберите _Save Selection As… _ и сохраните его в нужном месте. После сохранения вы можете добавить его в любой открытый план тестирования, используя пункт меню «Слияние» и выбрав свой сохраненный 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, которые нужно исключить для исключения изображений:

изображение: https: //assets.digitalocean.com/articles/jmeter/exclude_images.png [Шаблоны URL для исключения изображений]

Добавление элементов в Script Recorder (необязательно)

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

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

  1. Выберите HTTP (S) Test Script Recorder, затем щелкните его правой кнопкой мыши

  2. Наведите курсор мыши на _Добавить> _

  3. Наведите курсор мыши на _Timers> _

  4. Нажмите на Constant Timer

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

изображение: https: //assets.digitalocean.com/articles/jmeter/constant_timer.png [постоянный таймер]

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

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

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

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

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

изображение: https: //assets.digitalocean.com/articles/jmeter/temp_cert.png [Временный сертификат создан]

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

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

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

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

  1. Откройте Firefox

  2. Перейти в меню настроек

  3. Нажмите на вкладку "Дополнительно"

  4. Затем вкладка Сеть

  5. В разделе «Подключение» нажмите «Настройки…»

  6. Выберите переключатель «Ручная настройка прокси»

  7. Установите HTTP-прокси на «localhost» и порт на «8080»

  8. Установите флажок «Использовать этот прокси-сервер для всех протоколов»

  9. Нажмите OK и выйдите из меню настроек

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

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

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

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

http://your_domain.com/

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

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

изображение: https: //assets.digitalocean.com/articles/jmeter/no_patterns.png [Записанные HTTP-запросы]

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

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

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

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

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

Заключение

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

Удачи!

Related