Графічна оболонка GUI у JMeter класична, як і у багатьох програм, деревовидне галуження діалогових вікон. Ключове поняття в JMeter — це план тестування. План тестування (Test Plan), наприклад, для веб-додатку є описом послідовності кроків, які буде виконувати JMeter.

З додавання Thread Group розпочинається тестування у Jmeter

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

Керування Thread Group дозволяє встановити кількість потоків для кожної групи.

Thread Group

Number of Treads — кількість користувачів, якщо встановити 100, JMeter змітує 100 запитів користувачів на тестовий сервер.

Ramp up period — час за який розпочнуть роботу усі користувачі.

Loop Count — кількість циклів для кожного користувача.

Якщо Ви припускаєте, що у ході тестування може виникнути помилка на цей случай можете оперувати чекбоксами у полі Дій to be after a Sampler Error: 

  • Continue running — продовжувати JMeter тест.
  • Stop Thread to stop the current Thread зупинити певний потік.
  • Start Next Thread Loop — розпочати наступний.
  • Stop Test completely — зупинити тестування повністю.

У Thread Group можна додати різні елементи, у них у всіх різні сфери відповідальності, розглянемо їх по групах:

Елементи Thread Group

Samplers

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

  • FTP Request — цей контролер дозволяє відправляти запит FTP “відправити файл” або “завантажити файл” на FTP-сервер.
  • HTTP Request — дозволяє надсилати запит HTTP / HTTPS на веб-сервер.
  • JDBC Request — надсилає запит JDBC (SQL-запит) у базу даних.
  • BSF Sampler — дозволяє писати зразок з використанням мови сценаріїв BSF.
  • Access Log Sampler — дозволяє прочитати журнали доступу та створювати HTTP-запити. Журнал може бути зображенням, HTML, CSS …
  • Sampleer SMTP — якщо хочете перевірити поштовий сервер, можете використовувати SMTP sampler. Цей Sampleer використовується для надсилання повідомлень електронної пошти за протоколом SMTP.

Controllers

Controllers бувають двох видів: Samplers і Logic Controllers, перші відповідають за відправку запиту на сервер другі за логічні умови відправки цього запиту. Наприклад логічний контролер Once Only Controller знадобиться вам для виконання запиту один єдиний раз, наприклад запиту авторизації.

Listeners

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

Timers

А ось це ось хитрі штуки. Потрібні для контролю навантаження. Як не парадоксально, але вони по суті уповільнюють навантаження. Thread Group генерує це навантаження в міру своїх сил, а таймери їх обмежують. Constant Timer, наприклад, вставляє певну постійну затримку між запитами. А Constant Throughput Timer дозволить домогтися точного навантаження в певну кількість запитів за певний час і т.д.

Assertion

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

Отже, якщо Вам потрібно буде перевірити, що саме прийшло у відповіді, assertion — те що треба (Add ➡ Assertion ➡  Response Assertion). Або якщо бажаєте переконається, що відповідь отримана протягом певного часу (Duration Assertion). Перегляд результату перевірки: Add  ➡ Listener  ➡ Assertion Result

Configuration elements 

Configuration elements — дозволять більш гнучко налаштувати тест-план. Наприклад підготувати змінні котрі знадобляться в процесі тесту, або ж перевизначити заголовки запитів (HTTP Header Manager).

Кілька часто використовуваних Configuration elements в JMeter

  • CSV Data Set Config: Припустімо, ви хочете протестувати веб-сайт для 100 користувачів, які входили в систему за допомогою різних облікових даних. Вам не потрібно записувати сценарій 100 разів! Ви можете параметризацію сценарію, щоб вводити різні облікові дані для входу. Ця інформація для входу (наприклад, ім’я користувача, пароль) може зберігатися у текстовому файлі. JMeter має елемент, який дозволяє читати різні параметри з цього текстового файлу
  • HTTP Cookie Manager — якщо у Вас є запит HTTP, а відповідь містить файл cookie, Менеджер файлів cookie автоматично зберігає файли cookie та використовує їх для всіх майбутніх запитів на конкретний веб-сайт. 
  • HTTP request default — цей елемент дозволяє встановити значення за замовчуванням. Наприклад, Ви надсилаєте 100 HTTP-запитів на сервер google.com Для всіх цих 100 запитів Вам доведеться вручну ввести ім’я сервера = google.com Замість цього Ви можете додати єдиний типовий запит HTTP-запиту за допомогою поля “Ім’я сервера або IP” = google.com Немає необхідності вводити 100 разів! Якщо потрібно іншу сторінку домену, вказуєте в полі Path
  • Login Config Element — дозволяє додавати або перевизначати параметри імені користувача та пароля в семплерах. Наприклад, Ви хочете імітувати одну реєстрацію користувача на веб-сайті www.facebook.com з користувачем і паролем. Ви можете використовувати Login Config Element для входу, щоб додати цей параметр користувача та пароль у запиті користувача.

Post / Pre processors

За назвою можна здогадатися, що ці елементи роблять щось до і після тесту. Припустимо, зчитати щось із БД, і обернено записати назад в БД після.

Що таке WorkBench? Куди подівся у нових версіях?

WorkBench представляє собою місце для тимчасового зберігання тестових елементів, таку собі тимчасову папку. Справа в тому, що інтерфейс Jmeter побудований на “переміщенні” з місця на місце елементів дерева сценаріїв. Ви конструюєте дерево плану, як треба, а тимчасово не потрібні елементи плану можете його перемістити на Workbench, а потім назад. Виконується в ході тестування лише вміст тестового плану. WorkBench не має відношення до тестового плану. JMeter не збереже вміст WorkBench. Це лише зберігає вміст розділу “Тестовий план”

Тестові елементи JMeter та план тестування зберігаються у форматі * .JMX. JMX стоїть за розширеннями керування Java.

Елементів багато, описувати все не входить в мої плани. На офіційному сайті вони досить добре описані. Їх різноманіття і функціональність дозволяє писати досить складні сценарії. Комбінація ось цих ось елементів і дозволяє створювати сценарії і профіль навантаження. Це і є мова написання сценаріїв, не самий зручний і наочний, але на даний момент open source спільнота, що розробляє цей інструмент, нічого кращого не придумала.

Поєднавши все це добро разом, ми отримаємо так званий тест план, використовуючи який і тестуємо додаток. Ну ось зібрали ви свій тест план, що далі? Далі запускати, правило тут одне, не використовувати JMeter GUI для навантаження, GUI тільки для пристрілки, створення тест-плану і перегляду результатів. Для цього в Jmeter є прапор -n тобто рядок запуску буде приблизно наступнa:

Де -t тест-план -l лог файл, який після тесту можна згодувати якого небудь лістенеру і подивитися гарний графік.

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

Related posts

Leave a Comment

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