Нагрузочное Тестирование (НТ) — это тип Нефункционального Тестирования, который проверяет поведение, стабильность и производительность системы в условиях нагрузки (близкой к реальной или превышающей ее).
-
Нефункциональное Тестирование: Проверка как система работает (быстро, надежно, безопасно), в отличие от Функционального Тестирования (которое проверяет, что она делает).
-
Производительность (Performance): Совокупность характеристик, определяющих, насколько быстро и эффективно система справляется с работой.
-
Нагрузка : Количество одновременных виртуальных пользователей или транзакций (операций), которые система обрабатывает в единицу времени.

Разница ФТ и НТ
- Функциональное Тестирование отвечает на вопрос: “Может ли 1 пользователь войти в систему?”
- Нагрузочное Тестирование отвечает на вопрос: “Могут ли 1000 пользователей одновременно войти в систему? Как быстро? И не ‘упадет’ ли при этом сервер?”
Ключевая Цель
Основная цель — найти “узкие места” (Bottlenecks) в производительности и обеспечить стабильность.
-
“Узкое Место” (Bottleneck): Компонент системы (например, База Данных, Процессор (CPU) сервера, пропускная способность сети), который первым достигает своего предела и замедляет или останавливает всю систему.
-
Другие цели:
- Определить максимальную пропускную способность системы.
- Убедиться, что система соответствует SLA (Service Level Agreement) — соглашению об уровне сервиса (например, “страница должна загружаться не дольше 2 секунд под нагрузкой 5000 пользователей”).
Что конкретно проверяется
Нагрузочное тестирование измеряет количественные метрики:
-
Время отклика (Response Time): Время с момента отправки HTTP-запроса (например, клика) до получения полного HTTP-ответа (например, загрузки страницы).
-
Пропускная способность (Throughput): Количество транзакций (операций), которое система может успешно обработать в секунду. Часто измеряется в RPS (Requests Per Second) — Запросов в Секунду.
-
Уровень ошибок (Error Rate): Процент неудачных запросов (например, HTTP-ошибок
500-й серии — “ошибка сервера”) от общего числа. Высокий % ошибок под нагрузкой — признак отказа. -
Утилизация Ресурсов: Насколько загружены компоненты инфраструктуры (серверного “железа”):
- CPU (Центральный Процессор): Нагрузка на “мозг” сервера. Если 100%, сервер “захлебнулся”.
- RAM (Оперативная Память): Использование памяти. Если заканчивается, система начинает крайне медленно работать.
- O): Скорость чтения/записи на диск.
Место в Процессе Разработки
Нагрузочное тестирование проводится инженерами нагрузочного тестирования после функционального и интеграционного тестирования, когда продукт уже собран и (относительно) стабилен.
Оно требует специальной, отдельной среды:
- Среда Нагрузочного Тестирования (Performance / Staging Environment): Изолированная среда, которая по конфигурации (характеристикам “железа”) максимально идентична “боевой” (Production) среде, где работают реальные пользователи.
Важно
Проводить полноценное нагрузочное тестирование на “боевой”(Production) среде категорически запрещено, так как это равносильно DDoS-атаке и приведет к отказу сервиса для реальных клиентов.
Типы Тестирования Производительности
“Нагрузочное тестирование” — это общий термин. На практике это набор из нескольких разных типов тестов:
-
1. Тестирование загрузки (Load Testing):
-
Цель: Проверить, как система работает под ожидаемой (нормальной) и пиковой ожидаемой нагрузкой.
-
Вопрос: “Выдержит ли система нагрузку ‘Черной Пятницы’, которую мы прогнозируем?”
-
-
2. Стресс-Тестирование (Stress Testing):
-
Цель: Найти “точку слома”. Нагрузка намеренно превышает ожидаемую и постепенно увеличивается, пока система не откажет.
-
Вопрос: “При каком количестве пользователей (например, 50 000) сервер ‘упадет’? И как быстро он восстановится после снятия нагрузки?”
-
-
3. Тестирование на Выносливость (Soak / Endurance Testing):
-
Цель: Проверить стабильность системы под нормальной нагрузкой, но в течение длительного времени (например, 24-72 часа).
-
Ищет: Утечки памяти — ошибки в коде, когда программа “съедает” память и не освобождает ее, что со временем (через много часов) приводит к сбою.
-
-
4. Тестирование Пиковых Нагрузок (Spike Testing):
- Цель: Проверить реакцию на резкие, мгновенные всплески нагрузки (например, “все 10 000 зрителей одновременно нажали ‘голосовать’ в финале шоу”).
Заключение
Что дальше?
➡️ Рассмотрим процесс бизнес-тестирования