Це 1 -й допис по JMeter. Узагалі по JMeter -у ми плануємо публікувати серію статей, щоб згодом сформувати на нашому сайті власний міні туторіал по JMeter -у для потреб наших студентів, курсу Основи Тестування Програмного Забезпечення. Ну, а всім решта, думаю він стане в нагоді для самонавчання. Бо як показує досвід, здавалося би офіційна документація JMeter гарно описана, на guru99.com чудовий туторіал по JMeter. Усе розжовано з малюнками і гіфками, зрозуміліше далі нікуди, але на англійській — і люди то зависають від цього кепсько 😯
Обіцяємо цей туторіал JMeter -у познайомить Вас з поширеною популярною програмою для Load & Performance Testing, її перевагами та обмеженнями. І найголовніше, забере страх, боягузкість, яка виникає через деяке нерозуміння, щоб спробувати скористуватися JMeter.
Що таке JMeter?
JMeter — це десктопний додаток, опенсорс інструмент навантажувального тестування, який написаний на чистій Java, а працює на JVM (віртуальній машині Java, особливість JVM в тому, що JVM використовуватися для виконання програм, написаних в інших мовах програмування і завдяки цьому наш герой JMeter кросплатформенний).
JMeter має свою мову опису сценаріїв навантаження, і навіть графічний UI. Багато хто сперечається, що графічний інтерфейс джімітера є страшним і не дружнім, але як по мені — нормальний, не в ньому суть. Окрім, тести можна запускати не тільки із графічної оболонки, тести дозволено запускати із командної строки.
Розробляється JMeter Apache Foundation, код і API джімітера є у відкритому доступі, не потребує ліцензії, тому кому чогось не вистачає, проте має відповідні пізнання може собі щось доробити чи переробити, а хтось як ми просто використовувати також. Прикладами таких доробок інструментів Performance testing, котрі працюють з JMeter є Taurus, Blazemeter. Джимітер має велике співтовариство користувачів тестувальників та розробників по усьому світу.
Для чого тестувальнику потрібен JMeter?
Застосовується JMeter для тестування load functional performance testing — українською, для перевірки на великі навантаження функціональної поведінки (багаторазовий та одночасний трафік користувачів за різними сценаріями) і вимірювання продуктивності різного виду аплікацій, що працюють за схемою клієнт-сервер, таких як: сайти, веб сервіси, бази даних, FTP сервери і т. д. По-простому перевірити скільки витримає, доки не лопне 💥
Читайте: Все про Performance Testing або тестування продуктивності
Отже, в JMeter, на момент написання версії 4.0 можна тестувати такі типи аплікацій:
- Вебсайти: HTTP and HTTPS
- Веб сервіси — REST і SOAP
- Бази Даних
- FTP Servers
- LDAP Servers
- Mail Servers – SMTP, POP3, IMAP
- Shell скрипти
- TCP Servers
Переваги JMeter
- Безкоштовний — доступний продукт що не вимагає ліцензії.
- Просто інсталюється
- Багатофункціональний — може тестувати навантаження різного виду програм з різної категорії, як веб аплікації, веб сервіси, бази даних, LDAP, shell скрипти і т. д.
- Багатопотововий фрейворк — одночасно можна семплити різні гілки завдань, виставляти число ітерацій, час підігріву тощо.
- Кросплатформенний — є незалежним від платформ і може працювати на різних.
- Функція запису і відтворення — JMeter має функцію запису і відтворення, а також дає можливість перетягувати файли, завантажувати сторонні файли, що дозволяє створювати скрипти простіше і швидше.
- Адаптивний — оскільки джімітер є з відкритим вихідним кодом, розробники можуть налаштувати його вихідний код відповідно до їхніх специфічних вимог, про це ми вже писали + використовувати різноманітні плагіни, про це ми поговоримо трішки пізніше.
- Підтримує тести розподіленого навантаження — JMeter підтримує функцію тестування розподіленого навантаження, в якій ми можемо створити налаштування типу “мастер-підопічний” для тестування навантаження на декількох машинах. Та й узагалі різні функціональні сценарії.
- Візуалізація результатів тестів — результат тесту може відображатися в різних форматах, наприклад діаграмі, таблиці, дерева та журналу логів. Якщо не подобається аналітика з коробки, допомагають її покращити плагіни.
- Добра підтримка спільноти — це означає JMeter має багато онлайн тюторіалів, блогів, форумів, відео і підтримку спільноти у відповідях на поставлені запитання.
Також Джімітер для того чого не вміє з коробки, має у вільному доступі багато плагінів, котрі допомагають в створенні і аналізі скриптів. Завдяки такій модульній архітектурі JMeter можна розширити в потрібну користувачеві сторону, реалізувати навіть досить екзотичні сценарії тестування. Підключати плагіни за посиланням цим посиланням. Є навіть особливий плагін — агрегатор плагінів, підключаєш і отримуєш ще більше плагінів їх там багато, 64 штуки, 64 плагіна для інструменту навантажувального тестування, це повірте мені багато !!! До речі джімітер і навпаки вміє відключати плагіни, які йдуть в JMeter за замовчуванням, що дозволить позбутися 100500 непотрібних пунктів контекстного меню при створенні тест плану.
Обмеження JMeter
- Написання тестових сценаріїв за допомогою Джімітера вимагає певного рівня експертизи та розуміння його елементів, регулярних виразів, обробки сеансів тощо.
- Функції візуалізації на відміну від інших інструментів тестування продуктивності, таких як Loadrunner багатьом не подобаються.
- Потужності конфогурації одиночної звичайної машини недостатньо для проведення випробування тестування навантаження з великою кількістю користувачів. У таких випадках потрібно йти у хмари, або проводити розподілене тестування.
- Джімітер не підтримує ajax, javascript та flash, і також він не розглядає такі веб-елементи як браузер.
- JMeter надає дуже обмежену можливість тестування в режимі реального часу порівняно з іншими більш новішими інструментами Performance тестування.
Як JMeter працює?
Основний робочий процес JMeter показано на малюнках нижче
Джімітер імітує поведінку користувача, що надсилає запити на цільовий сервер, і повертає статистичну інформацію з сервера і так по колу, скільки користувачів у нас задано у Workflow JMeter, для представлення тестувальнику дані тестування агрегуються та інтерпретуються.