Система отчётов в Gatling: как работать и что включает?
Продолжим наш разговор про инструмент Gatling. В этот раз я бы хотел обсудить систему отчетов, которую предоставляет Gatling из коробки. Что она в себя включает, как с ней работать и где ее можно использовать.
После выполнения нагрузочного тестирования в Gatling генерируется HTML-отчёт, который предоставляет детальную информацию о работе системы и результатах теста. Эти отчёты позволяют глубже проанализировать производительность приложения и выявить слабые места. Давайте разберём, как с ними работать и что они включают.
Основные компоненты HTML-отчёта Gatling
HTML-отчёт можно найти в папке target/gatling/<название-теста>
. Он автоматически создаётся после выполнения теста и содержит несколько ключевых разделов для анализа:
1. Global Information (Общая информация)
Начинается с Response Time Ranges (Диапазоны времени отклика) и Number of Requests (Количество запросов)
Дополнительно указана информация по Gatling Version и Run Information (Информация о запуске)
Response Time Ranges — Столбчатая диаграмма: показывает распределение запросов по времени отклика.
Number of Requests — Круговая диаграмма: показывает соотношение успешных (
OK
, зелёный сектор) и неудачных (KO
, красный сектор) запросов.
2. Requests Table (Таблица запросов)
Этот блок отчёта Gatling представляет таблицу запросов, отображающую ключевые метрики производительности для каждого HTTP-запроса, включая успешные (OK
) и не успешные (KO
) запросы.
Requests (Все запросы): Общее количество запросов (456), сгруппированных по статусам.
Executions (Выполнения): Количество успешных (
OK
), не успешных (KO
) и их процентное соотношение и данных в секунду для каждого типа запроса…Response Time (Min, Max, Mean): Минимальное, максимальное и среднее время отклика сервера.
3. Errors (Ошибки)
Этот блок отчёта Gatling представляет детализированную информацию об ошибках, обнаруженных во время выполнения теста.
Отображает:
Error: Полное описание ошибки.
Count: Общее количество ошибок.
Percentage: Процент ошибок по отношению к общему числу.
4. Active Users Over Time (График активных пользователей)
Данный блок отчёта отображает динамику активных пользователей в процессе выполнения тестирования Gatling.
Включает в себя:
5. Response Time Distribution (Распределение времени отклика)
Этот блок отчёта Gatling представляет гистограмму, отображающую распределение запросов по времени их отклика. Это важный инструмент для анализа производительности приложения под нагрузкой.
Что включает в себя:
Горизонтальная ось:
Отображает диапазоны времени отклика (например, 133 мс, 270 мс, 406 мс и так далее).
Каждое значение — это определённый интервал времени отклика запроса.
Вертикальная ось:
Цветовая дифференциация:
Зелёные столбцы (OK): Процент успешно выполненных запросов.
Красные столбцы (KO): Процент неудачных запросов.
6. Response Time Percentiles Over Time (OK): процентиль времени отклика по времени
Этот блок отчёта Gatling показывает, как изменяется время отклика успешных запросов (OK
) по ключевым процентилям на протяжении всего тестирования.
Включает в себя:
Процентиль времени отклика:
Разные уровни процентилей показывают, как распределяется время отклика успешных запросов:min (Минимум) — нижняя граница времени отклика.
Зелёные и голубые зоны: Большинство запросов попадают в эти диапазоны.
Синие и фиолетовые зоны: Показывают время отклика для самых медленных запросов.
Активные пользователи (Active Users):
Оранжевая линия на графике показывает количество активных пользователей на каждом этапе тестирования.
Помогает сопоставить пиковые нагрузки с увеличением времени отклика.
7. Number of Requests per Second (Запросы в секунду)
Этот блок отчёта Gatling показывает, как изменяется количество запросов в секунду во времени и позволяет проанализировать стабильность системы под нагрузкой.
Показывает:
8. Number of Responses per Second (Ответы в секунду)
Этот блок отчёта Gatling показывает, как изменяется количество ответов сервера (успешных и не успешных) в течение выполнения теста.
Отображает:
Зелёная область (OK):
Красная область (KO):
Показывает количество неудачных ответов (
KO
, например, ошибки5xx
или4xx
) в секунду.
Оранжевая линия (Active Users):
График количества активных пользователей во времени.
Используется для анализа зависимости между числом пользователей и ответами сервера.
Синяя линия (All):
Интеграция отчётов Gatling с Grafana
Для улучшенного мониторинга тестов и удобной визуализации метрик можно настроить интеграцию Gatling с Grafana через Prometheus. Такой подход позволяет получать данные в реальном времени
Настройка Prometheus:
curl -LO https://github.com/prometheus/prometheus/releases/download//prometheus-.tar.gz
tar xvf prometheus-.tar.gz
scrape_configs:
- job_name: 'gatling'
static_configs:
- targets: ['localhost:9999']
./prometheus --config.file=prometheus.yml
Включение метрик в Gatling:
MetricsSettings metrics = new MetricsSettings()
.withPushGateway("http://localhost:9091")
.withEnable(true);
docker run -d -p 9091:9091 prom/pushgateway
Настройка Grafana для визуализации:
Установите Grafana и добавьте Prometheus в качестве источника данных:
Импортируйте готовый дашборд Gatling:
Анализируйте метрики: на дашборде будут отображаться графики времени отклика, количества запросов и ошибок в реальном времени.
Лёгкость интеграции с CI/CD
Одним из главных преимуществ Gatling является лёгкость интеграции в процессы CI/CD. Вот несколько шагов для настройки:
Добавьте зависимость Gatling в ваш проект Maven:
io.gatling
gatling-maven-plugin
${gatling.plagin.version}
Настройте запуск тестов через Jenkins или GitLab CI:
Настройте публикацию отчётов:
По итогу мы имеем:
Систему отчётов Gatling — не просто статистика, а комплексный инструмент для глубокого анализа производительности приложений. Наглядные графики позволяют увидеть все детали. От времени отклика до ошибок и стабильности при росте нагрузки.
Интеграция с Grafana даёт возможность анализировать метрики в реальном времени, а гибкость и лёгкость внедрения в CI/CD ускоряют процессы разработки и тестирования. Команды могут оперативно получать обратную связь, устранять узкие места и повышать стабильность приложения.
Вся информация по системе отчетов бралась из тестового проекта Gatling