Как составить сценарий нагрузочного тестирования?

Load QA Middle Тест-дизайн обновлено 12.10.2025

Краткий ответ

Сценарий нагрузочного тестирования описывает, какие действия и в каком объёме выполняют виртуальные пользователи, чтобы проверить поведение системы под нагрузкой.
Он строится на основе реальных пользовательских потоков и включает:
Цель теста (что проверяем).
Ключевые сценарии (какие операции выполняются).
Объём и рост нагрузки.
Метрики, которые нужно измерить.

Пример:
Цель — проверить, выдержит ли интернет-банк 5000 одновременных пользователей.
Сценарий:
60% пользователей — логин, просмотр баланса;
30% — перевод между счетами;
10% — оплата мобильной связи;
→ нагрузка растёт от 1000 до 5000 пользователей за 10 минут.

Полный ответ

🔹 Что такое сценарий нагрузочного тестирования

Это описание последовательности действий пользователей и параметров нагрузки,
которые воспроизводятся инструментом (например, JMeter, k6, Locust),
чтобы смоделировать реальную эксплуатацию системы.

Хороший сценарий отвечает на вопрос:

“Как поведёт себя система, если 1000 клиентов одновременно выполняют типичные операции?”


🔹 Этапы подготовки сценария

Этап Что делаем Пример
1. Определить цель теста Что хотим измерить — производительность, предел, стабильность “Проверить, выдержит ли 10 000 пользователей авторизацию без ошибок”
2. Собрать статистику использования Из логов, аналитики, метрик 70% операций — просмотр баланса, 20% — переводы, 10% — платежи
3. Определить ключевые сценарии Описать шаги пользователя “Авторизация → Баланс → Перевод → Выход”
4. Задать параметры нагрузки Количество пользователей, профиль роста, длительность 1000 → 5000 пользователей, рост 500 каждые 2 мин
5. Определить метрики Что измеряем Response Time, TPS, Error Rate, CPU, RAM
6. Настроить think time и паузы Эмулирует поведение реальных людей Пауза 3–5 сек между действиями
7. Настроить мониторинг Метрики сервера и приложения Grafana, Prometheus, InfluxDB
8. Задать критерии успешности (SLA) Условия, при которых система “прошла тест” 95% запросов < 2 сек, Error Rate ≤ 1%

🔹 Пример готового сценария

Цель:
Проверить стабильность API интернет-банка при нагрузке 5000 пользователей.

Сценарий:

  1. 1000 пользователей начинают авторизацию (POST /login).

  2. 70% после входа делают GET /balance.

  3. 20% совершают POST /transfer.

  4. 10% выполняют POST /pay/mobile.

  5. “Think time” — 2–4 сек между шагами.

  6. Постепенное увеличение нагрузки от 1000 → 5000 пользователей (Ramp-up: 10 мин).

  7. Длительность пикового теста — 15 мин.

Ожидаемые метрики:

  • Средний Response Time ≤ 2 сек.

  • Error Rate ≤ 1%.

  • CPU < 80%, RAM < 70%.

  • TPS = ~250–300.

Вывод:
Если при 5000 пользователей система стабильна → нагрузка допустима.


🔹 Типичные ошибки при создании сценариев

🚫 Искусственная нагрузка (все пользователи делают одно и то же).
🚫 Отсутствие “think time” → создаёт нереалистично высокий TPS.
🚫 Неправильное распределение сценариев по весам.
🚫 Неучёт “подготовительных” запросов (авторизация, токены).
🚫 Отсутствие мониторинга инфраструктуры (CPU, RAM, network).


🔹 Инструменты для реализации сценариев

  • JMeter — визуальный план с Thread Groups и HTTP Samplers.

  • k6 — сценарии в JS (удобно задавать ramp-up и профили нагрузки).

  • Locust — сценарии на Python с task weighting.

Пример в k6:

import http from 'k6/http';
import { sleep } from 'k6';

export const options = {
stages: [
{ duration: '2m', target: 1000 },
{ duration: '3m', target: 5000 },
{ duration: '5m', target: 5000 },
],
};

export default function () {
http.post('https://bank.test/api/login', { user: 'u', pass: 'p' });
http.get('https://bank.test/api/balance');
sleep(Math.random() * 3 + 2); // think time
}


🔹 Пример структуры сценария (в документе)

Элемент Описание
Цель теста Проверка стабильности API при 5000 пользователях
Тип нагрузки Постепенный рост + удержание
Профиль пользователей 70% баланс, 20% перевод, 10% платеж
Продолжительность 25 мин (10 ramp-up + 15 hold)
Метрики RT, TPS, Error Rate, CPU, RAM
Критерии успешности (SLA) 95% RT < 2 сек, Error Rate ≤ 1%

💡 Итог:
Сценарий нагрузочного тестирования = модель поведения пользователей под нагрузкой, включающая
цель, шаги, объём, профиль роста и метрики.
Он должен быть реалистичным, измеримым и воспроизводимым, чтобы дать надёжную оценку производительности.

Оцените ответ
0 / 5 · 0