Контроллеры в JMeter: цикл, простой, транзакция, модуль, случайный

Содержание:

Anonim

Что такое логический контроллер?

Логические контроллеры позволяют определять порядок обработки запроса в потоке. Он позволяет вам контролировать, «когда» отправлять пользовательский запрос на веб-сервер. Например, вы можете использовать случайные контроллеры для случайной отправки HTTP-запросов на сервер.

Логические контроллеры определяют порядок, в котором выполняется запрос пользователя.

Ниже приведены некоторые наиболее часто используемые логические контроллеры:

Контроллер записи:

JMeter может записывать ваши шаги тестирования; Контроллер записи является заполнителем для хранения этих шагов записи.

Простой контроллер:

Simple Controller - это просто контейнер для пользовательского запроса.

Контроллер петли:

Контроллер цикла заставляет запрос пользователя выполняться определенное количество раз или запускаться бесконечно, как показано на рисунке:

Случайный контроллер:

Random Controller заставляет все пользовательские запросы выполняться в случайном порядке в каждом периоде цикла.

Например, у вас есть 3 пользовательских запроса к сайту http://www.google.com в следующем порядке:

  1. HTTP-запрос
  2. FTP-запрос
  3. Запрос JDBC

Эти 3 запроса должны выполняться 5 раз. Всего 15 пользовательских запросов будут отправлены на сервер Google JMeter.

В последовательном порядке запросы отправляются последовательно в следующем порядке:

HTTP-запрос -> FTP-запрос-> JDBC-запрос

для каждой петли.

В случайном порядке запросы отправляются как в случайном порядке,

FTP-запрос -> HTTP-запрос-> JDBC-запрос

Или же

Запрос JDBC -> FTP-запрос-> HTTP-запрос

Для каждой петли.

Контроллер модуля:

Цель Module Controller - добавить модульность JMeter.

Общая идея состоит в том, что веб-приложения состоят из небольших функциональных единиц (например, «Вход в систему», «Создание учетной записи», «Выход из системы»…). Эта функциональность может храниться в Simple Controller как «модули». Контроллер модулей выберет, какой модуль необходимо запустить.

Рассмотрим следующий сценарий -

Вы хотите смоделировать:

  • 50 пользователей выходят из системы ,
  • 100 пользователей входят в систему
  • 30 пользователей ищут www.google.com

Вы можете использовать JMeter для создания 3 модулей. Каждый модуль имитирует каждое действие пользователя: вход в систему, выход из системы и поиск.

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

Другие важные контроллеры:

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

Например, если вы указали Runtime Controller 10 секунд, JMeter будет запускать ваш тест в течение 10 секунд.

  • Контроллер транзакций : измеряет общее время, необходимое для завершения выполнения теста.
  • Включить контроллер: предназначен для использования внешнего плана тестирования. Этот контроллер позволяет использовать несколько планов тестирования в JMeter. Подробности см. В разделе «Тестирование производительности JMeter».

Пример контроллера цикла

В этом разделе приведены пошаговые инструкции по добавлению набора Loop Controller в ваш текущий план тестирования производительности.

Контроллер цикла заставляет сэмплеры запускаться определенное количество раз в дополнение к значению цикла, которое вы указали для группы потоков. Например, если вы

  • Добавьте один HTTP-запрос к контроллеру цикла с количеством циклов 50
  • Настройте счетчик циклов группы потоков на 2
  • Затем JMeter отправит в общей сложности 50 * 2 = 100 HTTP-запросов.

Это дорожная карта этого примера:

Шаг 1) Настройка группы потоков

Мы повторно используем шаги 1, 2 в руководстве JMeter Performance Testing.

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

Щелкните правой кнопкой мыши план тестирования и добавьте новую группу потоков: Добавить -> Потоки (пользователи) -> Группа потоков.

Но в панели управления группой потоков введите Свойства потока следующим образом:

Он сделает один пользовательский запрос к веб-серверу google.com и запустит его 2 раза.

  1. Добавить элементы JMeter

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

  1. Добавление контроллера цикла

Щелкните правой кнопкой мыши группу потоков -> Логический контроллер -> Контроллер цикла

Шаг 2) Настройка Контроллера Шлейфа

Добавьте значение 50 в поле счетчика циклов, как показано на рисунке ниже. Он заставит один пользовательский запрос к веб-серверу google.com запустить его 50 раз в дополнение к значению цикла = 2, которое вы указали для группы потоков выше. Таким образом, JMeter отправит в общей сложности 2 * 50 = 100 HTTP-запросов.

Щелкните правой кнопкой мыши Контроллер цикла, Добавить -> Сэмплер -> HTTP-запрос.

Шаг 3) Добавьте результаты просмотра в таблицу

Мы повторно используем шаг 2 в таймере, чтобы добавить результаты просмотра в таблицу.

Итак, план тестирования показан на рисунке ниже.

Шаг 4) Запустите тест

Теперь вернитесь к просмотру результатов в таблице, нажмите кнопку «Пуск» в строке меню (Ctrl + R), чтобы запустить тест.

Как показано на рисунке ниже, JMeter имитирует один пользовательский запрос, который отправляется 100 раз на веб-сервер http://www.google.com/. Тест останавливается после того, как пользовательский запрос был отправлен 100 раз.

Исправление проблем:

  1. Если вы столкнулись с проблемой при выполнении описанного выше сценария… выполните следующие действия.
  2. Проверьте, подключаетесь ли вы к Интернету через прокси. Если да, удалите прокси.
  3. Откройте новый экземпляр Jmeter
  4. Откройте ControllerTestPlan.jmx в Jmeter
  5. Нажмите «Группа потоков» -> «Просмотреть результат в таблице».
  6. Запустить тест