Тестування навантаження - визначення або збір показників продуктивності і часу відгуку програмно-технічної системи або пристрої у відповідь на зовнішній запит з метою встановлення відповідності вимогам, що пред'являються до даної системи (пристрою). (Вікіпедія)
Навіщо проводиться тестування навантаження:
Взагалі, існує величезна кількість інструментів для навантажувального тестування, як 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С-Бітрікс»;
- Здається кількість потоків, можна змінювати кількість потоків в процесі тесту;
- Зручний для швидких сценаріїв з перевірки поточної конфігурації сервера.
Звіт про тестування виводиться у вигляді таблиці і графіків: