Что такое Thread Group и зачем он нужен?
Thread Group — это «сердце» вашего нагрузочного теста в JMeter. Он определяет:
- Количество виртуальных пользователей (потоков)
- Сценарий их появления (график нагрузки)
- Поведение при ошибках
- Длительность теста
Каждый поток (thread) имитирует одного пользователя, выполняющего последовательность действий, которые вы определили в тестовом плане.
Основные настройки Thread Group
1. Конфигурация нагрузки
properties
Number of Threads (users): 100 Ramp-Up Period (seconds): 60 Loop Count: Forever Duration (seconds): 300
Что это значит:
- 100 пользователей
- Постепенное подключение (1-2 пользователя в секунду)
- Бесконечное повторение сценария
- Общая длительность теста 5 минут
2. Поведение при ошибках

Когда что использовать:
- Continue — для сбора статистики, где некоторые ошибки допустимы
- Stop Thread — при тестировании пользовательских сессий
- Stop Test — для критически важных проверок
Продвинутые настройки
1. Планировщик (Scheduler)
Startup Delay: 30 Duration: 600 End time: [указывается вручную]
Сценарий применения:
- Тест начнётся через 30 секунд после старта
- Будет работать 10 минут
- Или завершится в указанное время
2. Оптимизация потоков
Delay Thread Creation: true Same User on Iteration: false
Для чего:
- Экономия ресурсов (потоки создаются по мере необходимости)
- Разные «пользователи» на каждой итерации
Типовые сценарии нагрузки
1. Постепенное увеличение (Ramp-Up)
Threads: 500 Ramp-Up: 300 # 500 пользователей за 5 минут
Когда использовать: Поиск точки насыщения системы
2. Постоянная нагрузка
Threads: 200 Ramp-Up: 10 # Быстрый выход на полную нагрузку Duration: 3600 # 1 час стабильной нагрузки
Для чего: Тестирование стабильности системы
3. Пиковая нагрузка
Threads: 1000 Ramp-Up: 1 # Мгновенная нагрузка Duration: 60 # 1 минута максимального стресса
Цель: Проверка системы на устойчивость к скачкам
5 критических ошибок при настройке Thread Group
- Слишком резкий старт
- Плохо: 1000 пользователей с Ramp-Up=1
- Хорошо: 1000 пользователей с Ramp-Up=300
- Неограниченные циклы без Duration
- Риск: Бесконечный тест
- Решение: Всегда устанавливать Duration или фиксированное Loop Count
- Игнорирование ошибок (Continue)
- Проблема: Пропуск критических сбоев
- Альтернатива: Stop Thread + автоматическое оповещение
- Одинаковые пользователи
- Ошибка: Same User=true для авторизованных сценариев
- Исправление: Разные учётные данные на каждой итерации
- Несоответствие реальным условиям
- Пример: 100% активности без пауз
- Решение: Добавить Random Timers между запросами
Интеграция с другими компонентами
1. CSV + Thread Group

Паттерн: Уникальные данные для каждого пользователя
2. Параллельные Thread Groups
Test Plan (Run Thread Groups consecutively = false)
Для чего: Имитация разных типов пользователей одновременно
3. Мониторинг ресурсов
Backend Listener → InfluxDB → Grafana
Метрики:
- Активные потоки
- Ошибки по группам
- Время отклика
Чек-лист перед запуском
- Проверено количество потоков и Ramp-Up
- Установлены ограничения по времени (Duration/Loop Count)
- Определена стратегия при ошибках
- Настроены уникальные пользовательские данные
- Добавлены реалистичные таймеры между запросами
Профессиональные советы
- Золотое правило Ramp-Up:bashRamp-Up = Number of Threads / 2-3 (для постепенного роста нагрузки)
- Формула длительности теста:bashDuration > (Ramp-Up + 2* Среднее время сценария)
- Для распределённого тестирования:propertiesNumber of Threads = (Желаемая RPS * Время отклика) / Количество JMeter-серверов
Заключение: 3 уровня мастерства
- Начальный: Простые тесты с 10-100 пользователями
- Продвинутый: Комбинированные сценарии с разными группами
- Экспертный: Точное моделирование реальной нагрузки + автоматический анализ
«Хороший нагрузочный тест — как симфония: важно не только количество инструментов (потоков), но и то, как они вступают (Ramp-Up) и взаимодействуют между собой.» — Senior Performance Engineer
Финал: Thread Group — ваш основной инструмент для создания реалистичных сценариев нагрузки. Начинайте с простых конфигураций, постепенно усложняя тесты по мере изучения поведения системы.