Ответ
Нагрузочное тестирование делится на несколько видов, каждый из которых решает свою задачу:
| Вид тестирования | Цель | Пример сценария |
|---|---|---|
| Load Testing (Нагрузочное) |
Проверить поведение системы под ожидаемой нагрузкой. Определить производительность и соответствие требованиям. | 1000 пользователей одновременно работают с корзиной покупок в течение 1 часа. |
| Stress Testing (Стрессовое) |
Найти предел производительности и точку отказа системы при нагрузке выше нормальной. | Постепенно увеличивать число пользователей с 1000 до 5000, пока система не перестанет отвечать. |
| Spike Testing (Пиковое) |
Проверить реакцию системы на резкие, кратковременные скачки нагрузки. | Мгновенно создать нагрузку в 3000 пользователей на 2 минуты, затем вернуться к нормальной. |
| Soak/Endurance Testing (Тестирование стабильности) |
Выявить проблемы, возникающие при длительной работе под средней нагрузкой (утечки памяти, деградация). | 500 пользователей непрерывно используют систему в течение 48 часов. |
| Volume Testing (Объемное) |
Проверить обработку системой больших объемов данных. | Загрузить в базу данных 10 миллионов записей и выполнить типовые операции поиска и отчетности. |
| Scalability Testing (Тестирование масштабируемости) |
Определить, как система увеличивает производительность при добавлении ресурсов (CPU, RAM, узлов). | Измерить RPS при 2, 4 и 8 серверных узлах в кластере. |
Практический пример конфигурации в JMeter:
Thread Group
├─ Number of Threads (users): 100 # Количество виртуальных пользователей
├─ Ramp-Up Period (seconds): 60 # Все пользователи "подключаются" за 60 секунд
└─ Loop Count: Forever # Выполнять сценарий бесконечно (для soak-теста)
Ключевой вывод: Каждый вид теста отвечает на конкретный вопрос о поведении системы, и их комбинация дает полную картину надежности и производительности.