Какой у вас опыт проведения стресс-тестирования?

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

Ответ

Есть опыт проведения стресс-тестирования (нагрузочного тестирования за пределами ожидаемой нагрузки) для веб-приложений и API с целью выявления узких мест и проверки стабильности.

Инструменты и подход:

  • Apache JMeter: Для создания комплексных сценариев нагрузки.
  • k6: Для скриптового тестирования на JavaScript/TypeScript.

Ключевые метрики, которые отслеживаю:

  • Время отклика (Response Time) и его перцентили (p95, p99).
  • Пропускная способность (Throughput, RPS).
  • Количество ошибок под нагрузкой (HTTP 5xx, таймауты).
  • Утилизация ресурсов сервера (CPU, память, сеть, диск).

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

Thread Group:
  Number of Threads (users): 200
  Ramp-Up Period: 30 seconds  // Плавный выход на пиковую нагрузку
  Loop Count: Forever
  Duration: 600 seconds       // 10 минут пиковой нагрузки

HTTP Request Sampler:
  Server: api.example.com
  Path: /v1/orders
  Method: POST
  Body: { "productId": 123 }

Цель тестирования: Определить точку отказа системы, проверить механизмы деградации и восстановления после снятия нагрузки.