Скачать

Нагрузочное тестирование — руководство | YoBench

Как пользоваться модулем «Load Testing» в YoBench: HTTP до 500 потоков и браузерное до 20, ramp-up, метрики RPS / latency / P95 / P99.

Что такое модуль «Нагрузочное тестирование»

Модуль создаёт нагрузку на ваши веб-сервисы, чтобы оценить их поведение при росте трафика. Поддерживается два режима: HTTP через undici в worker-потоках (до 500 параллельных потоков) и браузерный через Chromium (до 20 одновременных вкладок). Метрики обновляются каждую секунду — RPS, latency, P95/P99, error rate и активные потоки.

Что вы получаете:

  • Высокая параллельность HTTP — до 500 потоков на одной машине, без браузера, минимальный overhead.
  • Браузерный режим — до 20 одновременных Chromium-вкладок с page.goto() и waitUntil: networkidle2, для проверки полной отрисовки страницы.
  • Ramp-up — постепенное наращивание потоков (ramp_step_threads потоков каждые ramp_step_duration секунд).
  • Реалтайм-метрики — снимок каждую секунду в load_test_snapshots: RPS, средний latency, P95/P99, error rate, активные потоки.
  • Прокси и авторизация — заголовки/куки/query-параметры применяются ко всем запросам теста.
  • Хранение результатов — шаблоны и отчёты в локальной БД.

Параметры теста

При создании шаблона указываете:

  • URL — обязателен.
  • HTTP-метод — пока только GET (поле захардкожено в worker'е).
  • Заголовки — берутся из выбранного профиля авторизации (метод header).
  • Cookies — из профиля авторизации (метод cookie); встраиваются в заголовок Cookie.
  • Потоки — 1–500 для HTTP, 1–20 для браузера.
  • Длительность — минимум 5 секунд, в БД хранится в секундах.
  • Ramp-upramp_enabled, ramp_step_duration (сек), ramp_step_threads (на сколько потоков увеличивать). Доступно только для режима HTTP; браузерный режим всегда стартует со всеми потоками.
  • Прокси — выбирается случайная IP из списка прокси-группы; поддерживается аутентификация.
  • Профиль авторизации — общая запись из настроек.

Одновременно может выполняться только один тест — для точности измерений.

Метрики реального времени

Снимки сохраняются в load_test_snapshots каждую секунду:

  • RPS — запросов в секунду в окне последнего интервала.
  • Avg latency — среднее время ответа в миллисекундах.
  • P95 — 95-й перцентиль latency.
  • P99 — 99-й перцентиль latency.
  • Error rate — процент ответов с ошибкой.
  • Active threads — текущее число запущенных потоков (растёт во время ramp-up).
  • Total requests / errors — накопительные счётчики.

В финальном отчёте дополнительно: P50 (медиана), Min и Max latency.

Лимиты памяти на удержание latency-сэмплов: HTTP — 50 000 последних, browser — 10 000.

Глобальные настройки

Специфичных loadTesting*-ключей в общих настройках нет — все параметры хранятся в шаблонах (load_test_templates) и отчётах (load_test_reports).

Флоу использования

1. Создайте шаблон

  1. Откройте модуль Нагрузочное тестирование в левом меню.
  2. На вкладке Шаблоны нажмите Создать шаблон.
  3. Заполните URL, режим (HTTP / Browser), число потоков, длительность.
  4. При желании включите ramp-up и задайте шаги.
  5. Выберите прокси-группу и профиль авторизации.
  6. Сохраните.

2. Запустите тест

Кнопка Запустить рядом с шаблоном создаёт отчёт со статусом running. Только один тест одновременно. Кнопка Стоп — досрочное завершение, метрики сохраняются.

3. Изучите отчёт

На вкладке Отчёты для каждой записи доступны графики (RPS, latency, P95/P99, errors), сводные числа и список снимков посекундно.

4. Сравните прогоны

Используйте отчёты, чтобы сравнить результаты при изменении кода / прокси / окружения. Шаблон можно перезапускать сколько угодно раз — каждый прогон создаёт новый отчёт.

Что дальше

  • Параллельно с нагрузкой мониторьте ваш бэкенд через Серверы и Health Check.
  • Используйте Site Audit для оценки SEO и Lighthouse в нормальных условиях.
  • Если нужно проверить полную JS-цепочку — выбирайте режим Browser (но он ограничен 20 потоками).

Помощь и обратная связь

Хотели бы методы POST/PUT/DELETE, тело запроса, рандомизированные данные или WebSocket-нагрузку? Напишите нам через форму обратной связи.