Ответ
Тестирование производительности — это тип нефункционального тестирования, оценивающий скорость, отзывчивость, стабильность, масштабируемость и потребление ресурсов системы под определенной нагрузкой.
| Основные виды тестирования производительности: | Вид тестирования | Цель |
|---|---|---|
| Нагрузочное (Load Testing) | Проверить поведение системы под ожидаемой пиковой нагрузкой. | |
| Стрессовое (Stress Testing) | Найти точку отказа системы, постепенно увеличивая нагрузку за пределы нормы. | |
| Тестирование стабильности/на выносливость (Soak/Endurance Testing) | Выявить утечки памяти или проблемы деградации при длительной (многочасовой) работе под нагрузкой. | |
| Спайковое (Spike Testing) | Проверить реакцию на резкие, кратковременные скачки нагрузки. | |
| Тестирование масштабируемости (Scalability Testing) | Определить, как система справляется с ростом нагрузки путем добавления ресурсов (вертикальное/горизонтальное масштабирование). |
Что является объектом проверки (метрики):
- Время отклика (Response Time) ключевых операций.
- Пропускная способность (Throughput), например, запросов в секунду.
- Утилизация ресурсов: загрузка ЦП, память, диск, сеть.
- Количество ошибок под нагрузкой.
Пример конфигурации сценария в JMeter:
Thread Group:
Number of Threads (users): 100
Ramp-Up Period: 30 seconds // 100 пользователей за 30 сек.
Loop Count: Forever
HTTP Request:
Server Name: api.example.com
Path: /v1/orders
Method: GET
Цель: выявить узкие места (баттлнеки) в архитектуре (БД, кэш, внешние API) и убедиться, что система соответствует требованиям к производительности.