Тестування навантаження – це тип тестування програмного забезпечення метою якого є оцінка продуктивності системи під впливом різного обсягу навантаження з метою забезпечити стабільність та надійність системи. Цілі тестування:
- Перевірка продуктивності. Визначення максимальної кількості користувачів, яку система може обробити без втрати продуктивності.
- Виявлення вузьких місць. Виявлення проблемних частин системи, таких як недостатньо оптимізовані запити до бази даних або ресурсоємні операції.
- Оцінка часу відгуку. Перевірка, наскільки швидко система відповідає на запити під навантаженням та що система адекватно реагує на зміни навантаження.
- Перевірка стабільності. Тестування системи на витривалість під довготривалим високим навантаженням для виявлення потенційних проблем.
Існує декілька типів тестування навантаження:
- Stress testing – коли система може отримати навантаження вище середнього з середньою тривалістю (5-60 хв.).
- Spike testing – коли система отрумує раптові часті та виликі піки трафіку з короткою тривалістю (кілька хвилин).
- Soak testing – перевірка здатності системи витримувати постійне навантаження протягом тривалого часу (декілька годин).
- Breakpoint testing – визначає максимальну пропускну здатність яку може підтримувати система завантажуючи її до максимума.
- Smoke testing – коли змінюється код системи та потрібно перевірити базову функціональність.
Показники для оцінки навантажувального тестування:
- Середній час відповіді (Average Response Time). Цей показник відображає середній час, необхідний для відповіді на запит.
- Рівень помилок (Error Rate). Показує співвідношення кількості помилок до загальної кількості запитів.
- Пропускна здатність (Throughput). Ця метрика вказує на обсяг пропускної здатності, що споживається під час виконання тестів навантаження.
- Запити за секунду (Requests Per Second). Відображає кількість запитів, які надсилаються до системи щосекунди.
- Одночасні користувачі (Concurrent Users). Ця метрика відображає кількість одночасних користувачів, які використовують систему у певний момент часу.
Навантажувальне тестування це інструмент, який варто інтегрувати в життєвий цикл розробки будь-якого серйозного проєкту.