JMeter Елементи та компоненти: Група ниток, Семплери

⚡ Розумний підсумок

JMeter Елементи є будівельними блоками кожного плану тестування: групи потоків створюють віртуальних користувачів, семплери надсилають запити, слухачі відображають результати, а елементи конфігурації надають значення за замовчуванням та дані, необхідні цим запитам.

  • 🔘 Група тем: Кожен потік представляє одного віртуального користувача, який керує тестованим застосунком.
  • ☑️ Пробники: Визначте протокол запиту — FTP, HTTP, JDBC, SMTP та інші.
  • Слухачі: Відображати результати у вигляді графіка, дерева, таблиці або файлу журналу.
  • 🧪 Елементи конфігурації: Встановіть значення за замовчуванням та змінні, які семплери повторно використовують протягом усього тесту.
  • 🛠️ Запуски на основі даних: Конфігурація набору даних CSV передає різні облікові дані кожному змодельованому користувачеві.
  • Сучасні еквіваленти: BSF Sampler було видалено; поточні релізи працюють через JSR223 та Groovy.

JMeter Елементи: Група потоків, Семплери, Слухачі та Елементи конфігурації

Що таке Element in JMeter?

Різні компоненти JMeter називаються елементами. Кожен елемент призначений для певної мети.

На малюнку нижче показано деякі загальні елементи JMeter і показує, як вони розташовані в групі потоків.

JMeter Діаграма ієрархії елементів з групою потоків над семплерами, логічними контролерами, слухачами, елементами конфігурації, твердженнями, таймерами та процесорами

Вивчення всіх компонентів за один раз – це запрошення до плутанини та нудьги. Тут ми обговоримо компоненти, які необхідно знати, перш ніж ви зможете почати. Тестування in JMeter.

Решта компонентів будуть обговорені в міру їх використання в наступних навчальних посібниках. Елементи, що обговорюються в цьому навчальному посібнику, перелічені нижче.

Група ниток

Група потоків – це колекція потоків. Кожен потік представляє одного користувача, який використовує тестовану програму. По суті, кожен потік імітує один реальний запит користувача до сервера.

Елементи керування для групи потоків дозволяють встановити кількість потоків для кожної групи.

Наприклад, якщо встановити кількість потоків як 100, JMeter створить та змоделює 100 запитів користувачів до тестованого сервера, як показано на діаграмі нижче.

Діаграма JMeter Група потоків, що імітує користувачів від 1 до 100, кожен з яких надсилає запит до тестованої програми

Панель «Група потоків» також має період нарощування, який розподіляє запуск цих потоків з часом, замість того, щоб запускати кожного користувача одночасно.

Пробовідбірники

Як ми вже знаємо, JMeter підтримує тестування HTTP, FTP, JDBC та багатьох інших протоколів.

Ми також знаємо, що групи потоків імітують запити користувачів до сервера.

Але як група потоків знає, який тип запиту (HTTP, FTP тощо) їй потрібно зробити?

Відповідь – семплери.

Запит користувача може бути FTP-запитом, HTTP-запитом, JDBC-запитом тощо. На рисунку нижче перелічені семплери, що розглядаються в цьому посібнику.

Список деревоподібної діаграми JMeter семплери: FTP-запит, HTTP-запит, JDBC-запит, BSF-семплер, семплер журналу доступу та SMTP-семплер

FTP запит

Уявімо, що ви хочете протестувати продуктивність FTP-сервера. Ви можете використовувати семплер FTP-запитів у JMeter щоб виконати це завдання. Цей контролер дозволяє надсилати FTP-запит «завантажити файл» або «завантажити файл» на FTP-сервер.

Діаграма, що показує JMeter надсилання FTP-запиту на FTP-сервер для завантаження або вивантаження файлу

Наприклад, якщо ви хочете завантажити файл «Test.txt» із FTP-сервера, який тестується, вам потрібно налаштувати деякі параметри в JMeter як на малюнку нижче.

Панель семплера FTP-запитів з ftp.example.com як сервером, портом 21, Test.txt як віддаленим файлом та анонімним входом

Панель налаштовує сервер на ftp.example.com, порт 21, віддалений файл до Test.txt та опція get(RETR), отже JMeter надсилає FTP-команду на цей сервер і завантажує файл.

Запит HTTP

Цей семплер дозволяє надсилати запит HTTP/HTTPS на веб-сервер.

Розглянемо наведений нижче приклад. JMeter надсилає HTTP-запит до Google веб-сайт та отримує з нього HTML-файли або зображення.

Діаграма JMeter надсилання HTTP-запиту до Google Сайти та отримання HTML-коду та зображень у відповідь

У підручнику JMeter Тестування продуктивності, ми детальніше пояснимо цей HTTP-запит. Це семплер, який найчастіше тестування веб-застосунків робота спирається на.

Запит JDBC

Цей семплер дозволяє виконувати завдання з бази даних тестування працездатності. Він надсилає запит JDBC (запит SQL) до бази даних.

Діаграма JMeter надсилання SQL-запиту до сервера бази даних та отримання результату

Наприклад, сервер бази даних має поле test_result, що зберігається в таблиці з назвою test_tbl. Ви хочете запитувати ці дані з сервера бази даних, тому можете налаштувати JMeter відправити a SQL запит до цього сервера для отримання даних.

Панель запитів JDBC з типом запиту, встановленим на оператор Select, та запитом select test_result з test_tbl, де id = 1

Тип запиту тут — оператор Select, а запит читається select test_result from test_tbl where id = 1Елемент конфігурації з’єднання JDBC повинен містити пул, на який вказує поле «Ім’я змінної».

Пробовідбірник BSF

Цей семплер дозволяє писати семплер за допомогою a BSF мова сценаріїв.

Ось приклад семплера BSF у JMeter, з полями для мови скрипта, параметрами, що передаються скрипту, та або вбудованим скриптом, або зовнішнім файлом скрипта.

Панель BSF Sampler з полями для мови скриптів, параметрів, зовнішнього файлу скрипта та тіла вбудованого скрипта

Примітка про застаріле використання: Сімейство елементів BSF було вилучено з рекомендацій на користь елементів JSR223 і більше не відображається в JMeter посилання на компонентУ поточних випусках використовуйте Семплер JSR223 з Groovy, який компілюється та працює набагато краще під навантаженням. Панель вище збережено тут, оскільки старі плани тестування все ще містять її.

Збірник журналу доступу

Цей семплер дозволяє читати журнали доступу та генерувати HTTP-запити. Записи журналу можуть бути зображеннями, HTML, CSS тощо.

Панель зразка журналу доступу, що показує поля сервера та порту за замовчуванням, клас плагіна TCLogParser та розташування файлу журналу

Поле «Синалоничний аналізатор» за замовчуванням має значення org.apache.jmeter.protocol.http.util.accesslog.TCLogParser, а поле «Розташування файлу журналу» вказує JMeter у журналі, який ви хочете відтворити.

Збірник SMTP

Якщо ви хочете протестувати поштовий сервер, ви можете скористатися SMTP Sampler. Цей зразок використовується для надсилання електронних листів за допомогою протоколу SMTP.

Панель SMTP Sampler з налаштуваннями сервера, поштовими адресами, параметрами автентифікації та безпеки, а також налаштуваннями повідомлень

Панель групує налаштування сервера, поштові адреси, налаштування автентифікації та повідомлень, а поруч із полем «Порт» друкує порти за замовчуванням: SMTP 25, SSL 465 та StartTLS 587.

Слухачі

Слухачі показують результати виконання тесту. Вони можуть представляти результати в різних форматах, таких як дерево, таблиця, графік або файл журналу.

Діаграма, що показує, як Listener розбиває результати на графічне, деревоподібне, табличне та звітне представлення.

Команда Результати графіка Слухач відображає час відгуку сервера на графіку, а під ним надруковано кількість вибірок, середнє значення, відхилення, пропускну здатність та медіану.

Слухач результатів графіків, що відображає час відгуку з даними, середнім значенням, медіаною, відхиленням та рядами пропускної здатності

Переглянути дерево результатів показує результат кожного запиту користувача у базовому HTML-форматі, а вкладка результатів Sampler повідомляє про час завантаження, затримку, розмір та код відповіді.

Переглянути слухач дерева результатів зі списком запитів ліворуч та вкладкою результатів Sampler, що показує код відповіді 200

Переглянути результати в таблиці показує зведений результат тесту у форматі таблиці, один рядок на зразок.

Перегляд результатів у таблиці-слухачі зі стовпцями для номера вибірки, часу початку, назви потоку, мітки та часу вибірки

Файл журналу записує той самий зведений опис, що й текст, тобто те, що ви зберігаєте, коли тест виконується без графічного інтерфейсу.

Зведений зведений журнал зі списком міток пробовідбірника з кількістю зразків, середніми значеннями та рядком TOTAL

Найкраща практика: Слухачі графічного інтерфейсу споживають пам'ять і спотворюють результати, тому запускайте реальні навантажувальні тести в режимі без графічного інтерфейсу та відкривайте збережений файл результатів лише після цього.

Елементи конфігурації

Елементи конфігурації встановлюють значення за замовчуванням та змінні для подальшого використання семплерами.

На малюнку нижче показано деякі часто використовувані елементи конфігурації в JMeter.

Деревоподібна діаграма JMeter елементи конфігурації: конфігурація набору даних CSV, менеджер файлів cookie HTTP, елемент конфігурації входу, значення за замовчуванням для запитів HTTP та значення за замовчуванням для запитів FTP

Конфігурація набору даних CSV

Припустимо, ви хочете протестувати веб-сайт для 100 користувачів, які входять у систему з різними обліковими даними. Вам не потрібно записувати скрипт 100 разів. Ви можете параметризувати скрипт для введення різних облікових даних для входу. Цю інформацію для входу (наприклад, ім'я користувача та пароль) можна зберігати в текстовому файлі. JMeter має елемент, який дозволяє зчитувати різні параметри з цього текстового файлу. Це «CSV Data Set Config», який використовується для зчитування рядків з файлу та розділення їх на змінні.

JMeter Дерево плану тестування з вибраною конфігурацією набору даних CSV у контролері входу разом із налаштуваннями HTTP-запиту за замовчуванням

Це приклад даних CSV. Це текстовий файл, який містить імена користувачів та паролі, що використовуються для входу на ваш цільовий веб-сайт.

Текстовий файл csv_data.txt, що містить чотири рядки, розділені комами, зі значеннями імені користувача, пароля та довжини файлу cookie.

Менеджер файлів cookie HTTP

Давайте розберемося в цьому на прикладі.

Ви використовували свій браузер (Firefox, Chrome тощо) для перегляду www.google.com.

Ви входите, використовуючи своє ім'я користувача та пароль.

Ваше ім'я користувача та пароль будуть збережені на вашому комп'ютері у вигляді файлів cookie.

Наступного разу, коли завітаєте www.google.com, вам не потрібно входити знову, оскільки ваш браузер використовуватиме ваші файли cookie як дані користувача для входу.

Менеджер файлів cookie HTTP має ту саму функцію, що й веббраузер. Якщо у вас є HTTP-запит, а відповідь містить файл cookie, Менеджер файлів cookie автоматично зберігає цей файл cookie та використовує його для всіх майбутніх запитів до цього конкретного веб-сайту.

Стандартні параметри запиту HTTP

Цей елемент дозволяє встановити значення за замовчуванням, які використовують ваші контролери запитів HTTP.

Наприклад,

Ви надсилаєте 100 HTTP-запитів на сервер google.com.

Вам довелося б вручну вводити ім'я сервера google.com для всіх 100 запитів.

Замість цього ви можете додати один елемент HTTP Request Defaults із полем «Server Name or IP» (Ім’я сервера або IP-адреса), встановленим на google.com, як показано нижче.

Панель налаштувань HTTP-запитів за замовчуванням з назвою сервера google.com, портом 80 та часом очікування підключення й відповіді

Не потрібно вводити це 100 разів. Цей елемент буде детально пояснено в навчальному посібнику. JMeter Тестування продуктивності.

Елемент конфігурації входу

Елемент конфігурації входу дозволяє додавати або змінювати налаштування імені користувача та пароля в семплерах.

Наприклад, ви хочете імітувати вхід одного користувача на вебсайт www.facebook.com з іменем користувача та паролем. Ви можете скористатися елементом конфігурації входу, щоб додати це налаштування імені користувача та пароля до запиту користувача.

Панель конфігурації входу з введеним ім'ям користувача guru99 та замаскованим полем пароля

Елемент конфігурації входу проти конфігурації набору даних CSV

Елемент конфігурації входу Конфігурація набору даних CSV
Використовується для імітації входу одного користувача Використовується для імітації входу кількох користувачів
Підходить лише для параметрів входу (ім'я користувача та пароль) Підходить для великої кількості параметрів

Разом ці два елементи охоплюють майже кожен сценарій повноважень, з яким ви зустрічаєтеся засоби тестування продуктивності працювати.

Поширені запитання

Це розповідає JMeter скільки часу потрібно, щоб усі потоки запрацювали. Десять потоків зі 100-секундним розгоном запускаються з інтервалом у десять секунд. Занадто короткий розгін перевантажує сервер і призводить до збоїв, які жоден реальний користувач ніколи не спричинив би.

Таймери вставляють паузу між запитами, щоб імітація завантаження нагадувала реальний перегляд веб-сторінок, а не перевантаження. Твердження перевіряють кожну відповідь, позначаючи зразок як невдалий, коли код стану, текст або тривалість не відповідають вказаному вами.

Вони групують та розгалужують запити під собою. Контролер циклу повторює свої дочірні запити, контролер If виконує їх умовно, а контролер транзакцій повідомляє про всю групу як один крок за часом у результатах.

Ні. Слухачі, такі як View Results Tree, буферизують кожен зразок і спотворюють числа, які вони повідомляють. Запустіть тест у режимі без графічного інтерфейсу, запишіть результати у файл, а потім завантажте цей файл у слухач після завершення запуску.

Спочатку застосовуються елементи конфігурації та препроцесори, потім запускається семплер, далі постпроцесори, твердження та слухачі. Область застосування також має значення: елемент, розміщений на рівні плану, застосовується до кожного запиту нижче нього.

Це корисно для виявлення закономірностей. Передача файлу з результатами асистенту виявляє найповільніші мітки, кластери помилок і тенденції часу відгуку набагато швидше, ніж читання рядків. Завжди перевіряйте результат на необроблених зразках, перш ніж діяти.

Так. Це чернетки Groovy напрtracзмінення значень, створення корисних навантажень та встановлення змінних всередині елемента JSR223. Перевіряйте кожну пропозицію, оскільки вона часто використовує застарілий BeanShell API або змінні, які JMeter не викриває.

Одна група потоків та один семплер. Все інше необов'язково. На практиці додається слухач, щоб результати були видимими, а значення за замовчуванням або файл даних додаються, коли ті самі значення починають повторюватися в різних запитах.

Підсумуйте цей пост за допомогою: