Огляд інструментів навантажувального тестування

Тестування навантаження - визначення або збір показників продуктивності і часу відгуку програмно-технічної системи або пристрої у відповідь на зовнішній запит з метою встановлення відповідності вимогам, що пред'являються до даної системи (пристрою). (Вікіпедія)

Навіщо проводиться тестування навантаження:

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

Apache HTTP server benchmarking tool

Самий часто використовуваний, т.к входить до складу Apache.

де основні необхідні options:

-c concurrency - кількість одночасних запитів до сервера (за замовчуванням 1);
-n requests - загальна кількість запитів (за замовчуванням 1).

В результаті команди отримуємо такий звіт:

  • Є скрізь, де є Apache;
  • Не потребує ніякої додаткової настройки;
  • Дуже простий інструмент.
  • Дуже простий інструмент;
  • Тестує тільки продуктивність веб-сервера: опитує тільки один URL, не підтримує сценарії навантаження, неможливо імітувати призначену для користувача навантаження і оцінити працездатність проекту з усіх боків - як з точки зору інфраструктури, так і з точки зору розробки.

Joe Dog Siege

Трохи складніше ab і необхідні завдання виконує набагато краще.

У файлі-сценарії задаються URL-и та запити тестування. Якщо сценарій великий за обсягом, то можна винести все запити в окремий файл і в команді вказати цей файл при тестуванні:

У команді вказується кількість користувачів -з. кількість повторень -r і затримку між хітами -d.

Результат можна виводити в log-файл або відразу в консоль в режимі реального часу:

Також можна взяти з access-log веб-сервера URL-и, по яких ходили реальні користувачі і емулювати навантаження реальних користувачів.

  • Багатопотоковий;
  • Можна задавати як кількість запитів, так і тривалість (час) тестування - тобто можна емулювати призначену для користувача навантаження;
  • Підтримує найпростіші сценарії
  • ресурсномісткий;
  • Мало статистичних даних і не дуже добре емулює такі призначені для користувача сценарії, як обмеження швидкості запитів користувача;
  • Не підходить для серйозного і масштабного тестування в сотні і тисячі потоків, т.к він сам по собі ресурсномісткий, а на великій кількості запитів і потоків дуже сильно навантажує систему.

Apache JMeter

  • Написаний на Java;
  • HTTP, HTTPS, SOAP, Database via JDBC, LDAP, SMTP (S), POP3 (S), IMAP (S);
  • Консоль і GUI;
  • Розподілене тестування;
  • План тестування - XML-файл;
  • Може обробляти лог веб-сервера як план тестування;
  • Візуалізація результатів в GUI.

Результати виводяться в графічному вигляді:

Огляд інструментів навантажувального тестування

  • Багатоплатформовий, т.к написаний на Java;
  • Дуже гнучкий, використовується багато протоколів, не тільки веб-сервер, але і бази;
  • Управляється через консоль і gui інтерфейс;
  • Використання безпосередньо логів веб-сервера Apache і Nginx в якості сценарію c можливістю варіювання навантаження за цими профілями;
  • Досить зручний і потужний інструмент.
  • ресурсномісткий;
  • На тривалих і важких тестах часто падає з різних причин;
  • Стабільна робота залежить від оточення і конфігурації сервера.
  • Написаний на Erlang;
  • HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, Jabber / XMPP;
  • Консоль (GUI через сторонній плагін);
  • Розподілене тестування (мільйони користувачів);
  • Фази тестування;
  • План тестування - XML;
  • Запис плану за допомогою Tsung recorder'а;
  • Моніторинг тестованих серверів (Erlang, munin, SNMP);
  • Інструменти для генерації статистики і графіків з логів роботи.

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

Огляд інструментів навантажувального тестування

Огляд інструментів навантажувального тестування

  • Немає gui-інтерфейсу;
  • Тільки * nix системи.
  • Windows
  • Платний (є тріал на 30 днів / 20 віртуальних користувачів);
  • Запис плану тестування з десктопних і мобільних браузерів;
  • Залежності в планах тестування (наступний URL в залежності від відповіді сервера);
  • Імітації реальних користувачів (затримки між сполуками, обмеження швидкості з'єднань).

Звіт можна вивести як таблицею, так і графіком:

Огляд інструментів навантажувального тестування

  • Дуже гнучкий, велика кількість налаштувань і тестів;
  • Емуляція повільних каналів з'єднань користувачів;
  • Підключення модулів;
  • Запис сценаріїв тестування прямо з браузера, як з десктопного, так і з мобільного;
  • Генерація різних графіків тестування за допомогою скриптів.
  • Доступний тільки для Windows;
  • Платний.

Інструменти тестування в продуктах «1С-Бітрікс»

Входить до ліцензії продукту

  • Простий і зрозумілий функціонал, доступний відразу з адміністративного інтерфейсу продукту «1С-Бітрікс»;
  • Здається кількість потоків, можна змінювати кількість потоків в процесі тесту;
  • Зручний для швидких сценаріїв з перевірки поточної конфігурації сервера.

Огляд інструментів навантажувального тестування

Звіт про тестування виводиться у вигляді таблиці і графіків:

Огляд інструментів навантажувального тестування