По каким признакам принимается решение о необходимости нагрузочного тестирования?

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

Ответ

Решение о проведении нагрузочного (performance) тестирования принимается на основе следующих ключевых признаков:

  1. Критичность производительности для бизнеса: Сервис является высоконагруженным (платежи, API шлюз, система бронирования).
  2. Предстоящие изменения инфраструктуры: Миграция на новые серверы, обновление версии базы данных, переход в другой облачный регион.
  3. Значительные изменения в коде: Рефакторинг ключевых модулей, внедрение нового алгоритма или фреймворка, изменение схемы базы данных.
  4. Ожидаемый рост нагрузки: Запуск маркетинговой кампании, сезонный всплеск трафика (Черная пятница), выход на новые рынки.
  5. Наличие проблем в production: Инциденты, связанные с медленным откликом или падением сервиса под нагрузкой, высокий процент ошибок 5xx.
  6. Требования SLA/SLO: Необходимость гарантировать определенное время отклика (например, p95 < 200 мс) при заданном RPS (запросов в секунду).

Пример сценария для тестирования:

# Конфигурация теста в JMeter/Gatling
scenario:
  name: "Checkout Load Test"
  expected-rps: 1000
  duration: 10m
  thresholds:
    - p95-response-time: < 500ms
    - error-rate: < 0.1%

Без нагрузочного тестирования риски включают деградацию производительности, downtime и потерю revenue при реальном скачке трафика.