Учебники

8) Контроллеры

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

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

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

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

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

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

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

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

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

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

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

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

Loop Controller заставляет пользовательский запрос выполняться указанное количество раз или выполняться вечно, как показано на рисунке:

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

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

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

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

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

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

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

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

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

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

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

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

Или

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Добавление Loop Controller

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

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

Шаг 2) Настройка Loop Controller

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

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

Щелкните правой кнопкой мыши Loop Controller, Add -> Sampler -> HTTP request.

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

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

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

Таким образом, план тестирования показан на рисунке ниже

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

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

Теперь верните View Results in Table, нажмите кнопку Start в строке меню (Ctrl + R), чтобы запустить тест

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

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

Поиск проблемы:

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