Що таке контролер логіки?
Контролери логіки дозволяють визначити порядок обробки запиту в потоці. Це дозволяє вам контролювати "коли" надсилати запит користувача на веб-сервер. Наприклад, ви можете використовувати випадкові контролери для випадкової надсилання запитів HTTP на сервер
Логічні контролери визначають порядок виконання запиту користувача.
Нижче наведено деякі часто використовувані логічні контролери:
Контролер запису:
JMeter може записувати ваші кроки тестування; контролер запису є заповнювачем для зберігання цих кроків запису.
Простий контролер:
Простий контролер - це просто контейнер для запиту користувача.
Контролер петлі:
Loop Controller робить запит користувача запущеним певну кількість разів або запускається назавжди, як показано на малюнку:
Випадковий контролер:
Випадковий контролер змушує всі запити користувачів виконуватися у довільному порядку в кожному періоді циклу.
Наприклад, у вас є 3 запити користувачів на веб-сайт http://www.google.com у такому порядку:
- HTTP-запит
- FTP-запит
- Запит JDBC
Ці 3 запити повинні виконуватися 5 разів. Загалом 15 запитів користувачів буде надіслано на сервер Google компанією JMeter.
У послідовному порядку запити надсилаються послідовно в такому порядку:
Запит HTTP -> запит FTP-> запит JDBC
для кожної петлі.
У довільному порядку запити надсилаються випадковим чином,
FTP-запит -> HTTP-запит-> JDBC-запит
Або
Запит JDBC -> запит FTP-> запит HTTP
Для кожної петлі.
Контролер модуля:
Метою модульного контролера є додати модульність до JMeter.
Загальна ідея полягає в тому, що веб-програми складаються з невеликих функціональних одиниць (наприклад, вхід, створення облікового запису, вихід із системи…) Цю функціональність можна зберігати в Simple Controller як "модулі". Контролер модулів вибере, який модуль потрібно запускати.
Розглянемо наступний сценарій -
Ви хочете змоделювати:
- 50 користувачів виходять ,
- 100 користувачів входять
- 30 користувачів шукають сайт www.google.com
Ви можете використовувати JMeter для створення 3 модулів. Кожен модуль імітує кожну діяльність користувача: Вхід, вихід та пошук.
Контролер модуля вибирає, який модуль потрібно запустити.
Інші важливі контролери:
- Interleave Controller: піднімає та запускає один із запитів користувача у кожному циклі потоку.
- Контролер виконання : контролює, як довго його діти можуть працювати.
Наприклад, якщо ви вказали Runtime Controller 10 секунд, JMeter запускатиме ваш тест протягом 10 секунд.
- Контролер транзакцій : вимірює загальний час, необхідний для завершення виконання тесту
- Включити контролер: призначений для використання зовнішнього плану тестування. Цей контролер дозволяє використовувати кілька планів тестування в JMeter. Детальніше див. У тестуванні продуктивності JMeter.
Приклад контролера петлі
У цьому розділі наведено покрокову інструкцію щодо додавання контролера петлі до поточного плану тестування продуктивності.
Контролер циклу змушує пробовідбірники запускатись певну кількість разів, на додаток до значення циклу, яке ви вказали для групи потоків. Наприклад, якщо ви
- Додайте один запит HTTP до контролера циклу з кількістю циклів 50
- Налаштуйте кількість циклів групи потоків на 2
- Потім JMeter надішле загалом 50 * 2 = 100 HTTP-запитів.
Це дорожня карта цього прикладу:
Крок 1) Налаштування групи потоків
Ми повторно використовуємо кроки 1, 2 у навчальному тестуванні продуктивності JMeter.
-
Додати групу ниток
Клацніть правою кнопкою миші на тестовому плані та додайте нову групу ниток: Додати -> Потоки (користувачі) -> Група ниток
Але на панелі керування Thread Group введіть Thread Properties таким чином:
Він зробить один запит користувача на веб-сервер google.com і запустить його 2 рази.
-
Додайте елементи JMeter
Додайте HTTP-запит за промовчанням на www.google.com.
-
Додавання Loop Controller
Клацніть правою кнопкою миші Групу ниток -> Логічний контролер -> Контролер петлі
Крок 2) Налаштування контролера петлі
Додайте значення 50 до поля Loop Count, як показано на малюнку нижче. Він зробить один запит користувача на веб-сервер google.com, запустить його 50 разів, на додаток до значення циклу = 2, яке ви вказали для групи потоків вище, тому JMeter надішле загалом 2 * 50 = 100 запитів HTTP.
Клацніть правою кнопкою миші Loop Controller, Add -> Sampler -> HTTP-запит
Крок 3) Додайте результати перегляду в таблицю
Ми повторно використовуємо крок 2 у таймері, щоб додати результати перегляду в таблицю
Тож план випробувань показаний на малюнку нижче
Крок 4) Запустіть тест
Тепер поверніть Перегляд результатів у таблиці, натисніть кнопку Пуск на панелі меню (Ctrl + R), щоб запустити тест
Як показано на малюнку нижче, JMeter імітує один запит користувача, який надсилається 100 разів, на веб-сервер http://www.google.com/. Тест зупиняється після того, як запит користувача було надіслано 100 разів.
Вирішення проблем:
- Якщо ви стикаєтесь із проблемою під час запуску вищевказаного сценарію ..., виконайте наступне
- Перевірте, чи підключаєтесь ви до Інтернету через проксі. Якщо так, видаліть проксі.
- Відкрийте новий екземпляр Jmeter
- Відкрийте ControllerTestPlan.jmx у Jmeter
- Клацніть на Групу ниток -> Переглянути результат у таблиці
- Запустіть тест