Что такое load и stress testing? Какими инструментами пользуются для их выполнения?


1. Load Testing (нагрузочное тестирование)

Цель: проверить, как система работает под ожидаемой или пиковой нагрузкой, измерить производительность и стабильность.

Что проверяют:

  • Время отклика страниц или API

  • Пропускную способность (TPS, RPS)

  • Использование ресурсов (CPU, RAM, сеть)

  • Потенциальные узкие места при нормальной и высокой нагрузке

Пример: система должна выдерживать 1000 одновременных пользователей без деградации производительности.


2. Stress Testing (стресс-тестирование)

Цель: проверить поведение системы при экстремальной нагрузке или вне пределов спецификации.

Что проверяют:

  • Как система ведет себя при перегрузке (CPU, RAM, сеть)

  • Срабатывание механизмов отказоустойчивости

  • Восстановление работы после сбоя (graceful recovery)

Пример: система выдерживает 5000 одновременных пользователей, чтобы определить точку отказа.


3. Различия между Load и Stress Testing

Аспект
Load Testing
Stress Testing

Цель

Проверка работы под ожидаемой нагрузкой

Определение пределов и устойчивости

Нагрузка

Реалистичная, ожидаемая

Экстремальная, сверх нормы

Фокус

Производительность, стабильность

Устойчивость, отказоустойчивость

Результат

Метрики времени отклика, пропускной способности

Точка отказа, recovery time


4. Инструменты для Load/Stress Testing

  • JMeter — популярный opensource инструмент для нагрузочного тестирования веб-приложений и API

  • Locust — Python-фреймворк для написания пользовательских сценариев нагрузки

  • Gatling — Scala/Java, удобен для сценариев высокой нагрузки

  • k6 — современный инструмент для нагрузочного тестирования с JS-сценариями

  • BlazeMeter, NeoLoad — коммерческие SaaS решения для нагрузочного тестирования

Last updated

Was this helpful?