Ответ
Нагрузочное тестирование (Load Testing) — классический пример нефункционального тестирования.
Цель: Оценить поведение и производительность системы под ожидаемой пиковой нагрузкой. Проверяется, как система справляется с одновременной работой множества пользователей.
Пример задачи: Определить, выдержит ли API сервиса поиска товаров нагрузку в 1000 запросов в секунду в течение 10 минут.
Ключевые метрики:
- Время отклика (Response Time) — должно оставаться в пределах SLA (например, < 200 мс).
- Количество обработанных транзакций в секунду (TPS/RPS).
- Утилизация ресурсов — загрузка CPU, памяти, сети сервера.
- Процент ошибок — должен быть близок к нулю.
Пример конфигурации сценария в Apache JMeter:
Thread Group:
Number of Threads (users): 1000
Ramp-up period (seconds): 120 # Наращивание нагрузки за 2 минуты
Loop Count: Forever
Duration (seconds): 600 # Общая длительность теста 10 минут
HTTP Request Defaults:
Server Name: api.example.com
Protocol: https
HTTP Request:
Method: GET
Path: /api/v1/products/search?query=laptop
Listener: Summary Report / Graph Results # Для сбора результатов
Другие примеры нефункциональных видов тестирования:
- Тестирование производительности (Performance Testing) — общая оценка скорости и стабильности.
- Стресс-тестирование (Stress Testing) — проверка за пределами нормальной нагрузки до точки отказа.
- Тестирование масштабируемости (Scalability Testing) — проверка возможности увеличения производительности при добавлении ресурсов.
- Объемное тестирование (Volume Testing) — работа с большими объемами данных.
- Тестирование надежности (Reliability/Soak Testing) — длительная работа под средней нагрузкой для поиска утечек памяти.