Что такое нагрузочное тестирование (Load testing)?

«Что такое нагрузочное тестирование (Load testing)?» — вопрос из категории Тестирование производительности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нагрузочное тестирование (Load testing) — это тип нефункционального тестирования, которое проверяет поведение системы под ожидаемой рабочей нагрузкой (например, определённым количеством одновременных пользователей или транзакций). Его цель — убедиться, что приложение стабильно работает в условиях, имитирующих реальное использование, и выявить проблемы производительности до релиза.

Ключевые цели и проверяемые метрики:

  • Время отклика системы на действия пользователей.
  • Пропускная способность (throughput) — количество обработанных операций в единицу времени.
  • Использование ресурсов сервера: загрузка CPU, потребление памяти (RAM), операции ввода-вывода (I/O).
  • Стабильность — отсутствие сбоев, утечек памяти или деградации производительности в течение теста.

Пример сценария в Apache JMeter:

<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Пользовательская нагрузка" enabled="true">
  <intProp name="ThreadGroup.num_threads">100</intProp> <!-- 100 виртуальных пользователей -->
  <intProp name="ThreadGroup.ramp_time">60</intProp>   <!-- Наращивание нагрузки за 60 секунд -->
  <longProp name="ThreadGroup.duration">300</longProp> <!-- Длительность теста 300 секунд -->
</ThreadGroup>

Важное отличие: Load testing не следует путать со стресс-тестированием (Stress testing). Нагрузочное тестирование проверяет систему в пределах или около плановых нагрузок, в то время как стресс-тестирование нацелено на работу за пределами нормальной ёмкости, чтобы определить точку отказа и поведение системы при восстановлении.