advanced

Нагрузочное тестирование

Моделируйте трафик, ramp-up, steady load, spike, пределы отказа и bottlenecks до опоры на допущения о ёмкости.

Нагрузочное тестирование моделирует трафик против системы, чтобы найти пределы ёмкости, точки насыщения и режимы отказа до production. Инструменты: k6, Gatling, Locust, JMeter.

| Фаза | Цель | |------|------| | Smoke | Мало VU — скрипт работает | | Load | Ожидаемый steady traffic | | Stress | Рост до ошибок или нарушения SLA | | Spike | Резкий скачок — autoscale/backpressure | | Soak | Часы — утечки и деградация |

					// k6 sketch
export const options = { stages: [
  { duration: '2m', target: 100 },
  { duration: '5m', target: 100 },
  { duration: '2m', target: 0 },
]};
				

Задайте **критерии успеха**: p95 latency, error rate, queue lag, CPU. Реалистичные payload и think time. Тестируйте близко к production topology — изолированный microservice пропускает integration bottlenecks.

На интервью: open vs closed workload; coordinated omission в tools; зачем soak; безопасные среды load test.

Типовые ошибки: prod без изоляции; think time 0ms; игнор rate limits third-party.

Компромисс — уверенность в ёмкости против стоимости и риска для shared environments.

Чеклист:

  • Реалистичные user journeys в скрипте.
  • Плавный ramp; метрики насыщения.
  • Не load-test prod без safeguards.
  • Задокументируйте найденный max sustainable RPS.