Система отчётов в Gatling: как работать и что включает?

f2301eb95cfc025f7226512dc84350b7.png

Продолжим наш разговор про инструмент Gatling. В этот раз я бы хотел обсудить систему отчетов, которую предоставляет Gatling из коробки. Что она в себя включает, как с ней работать и где ее можно использовать.

После выполнения нагрузочного тестирования в Gatling генерируется HTML-отчёт, который предоставляет детальную информацию о работе системы и результатах теста. Эти отчёты позволяют глубже проанализировать производительность приложения и выявить слабые места. Давайте разберём, как с ними работать и что они включают.

Основные компоненты HTML-отчёта Gatling

HTML-отчёт можно найти в папке target/gatling/<название-теста>. Он автоматически создаётся после выполнения теста и содержит несколько ключевых разделов для анализа:

1. Global Information (Общая информация)

Начинается с Response Time Ranges (Диапазоны времени отклика) и Number of Requests (Количество запросов)

cd1d4c537955bdc942fe3caafe802a21.png

Дополнительно указана информация по Gatling Version и Run Information (Информация о запуске)

  • Response Time Ranges — Столбчатая диаграмма: показывает распределение запросов по времени отклика.

  • Number of Requests — Круговая диаграмма: показывает соотношение успешных (OK, зелёный сектор) и неудачных (KO, красный сектор) запросов.

2. Requests Table (Таблица запросов)

041f79addc2d194412b1dd4e729afa17.png

Этот блок отчёта Gatling представляет таблицу запросов, отображающую ключевые метрики производительности для каждого HTTP-запроса, включая успешные (OK) и не успешные (KO) запросы.

  • Requests (Все запросы): Общее количество запросов (456), сгруппированных по статусам.

  • Executions (Выполнения): Количество успешных (OK), не успешных (KO) и их процентное соотношение и данных в секунду для каждого типа запроса…

  • Response Time (Min, Max, Mean): Минимальное, максимальное и среднее время отклика сервера.

3. Errors (Ошибки)

4d13c65f9187803535a0ab23cddcef49.png

Этот блок отчёта Gatling представляет детализированную информацию об ошибках, обнаруженных во время выполнения теста.

Отображает:

  • Error: Полное описание ошибки.

  • Count: Общее количество ошибок.

  • Percentage: Процент ошибок по отношению к общему числу.

4. Active Users Over Time (График активных пользователей)

fadb03e2f9e469b632dd30e29bea9579.png

Данный блок отчёта отображает динамику активных пользователей в процессе выполнения тестирования Gatling.

Включает в себя:

5. Response Time Distribution (Распределение времени отклика)

17232da28a6c0841bc2ef19bcaf6eb9d.png

Этот блок отчёта Gatling представляет гистограмму, отображающую распределение запросов по времени их отклика. Это важный инструмент для анализа производительности приложения под нагрузкой.

Что включает в себя:

  • Горизонтальная ось:

    • Отображает диапазоны времени отклика (например, 133 мс, 270 мс, 406 мс и так далее).

    • Каждое значение — это определённый интервал времени отклика запроса.

  • Вертикальная ось:

  • Цветовая дифференциация:

    • Зелёные столбцы (OK): Процент успешно выполненных запросов.

    • Красные столбцы (KO): Процент неудачных запросов.

6. Response Time Percentiles Over Time (OK): процентиль времени отклика по времени

75dd425ce7de5efb1e01b309910df38b.png

Этот блок отчёта Gatling показывает, как изменяется время отклика успешных запросов (OK) по ключевым процентилям на протяжении всего тестирования.

Включает в себя:

  • Процентиль времени отклика:
    Разные уровни процентилей показывают, как распределяется время отклика успешных запросов:

    • min (Минимум) — нижняя граница времени отклика.

    • Зелёные и голубые зоны: Большинство запросов попадают в эти диапазоны.

    • Синие и фиолетовые зоны: Показывают время отклика для самых медленных запросов.

  • Активные пользователи (Active Users):

    • Оранжевая линия на графике показывает количество активных пользователей на каждом этапе тестирования.

    • Помогает сопоставить пиковые нагрузки с увеличением времени отклика.

7. Number of Requests per Second (Запросы в секунду)

b7f205f6f29ccd8e0c73fdaec7089919.png

Этот блок отчёта Gatling показывает, как изменяется количество запросов в секунду во времени и позволяет проанализировать стабильность системы под нагрузкой.

Показывает:

8. Number of Responses per Second (Ответы в секунду)

599fae969cb16cad411e80f2799cc62e.png

Этот блок отчёта 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. Вот несколько шагов для настройки:

  1. Добавьте зависимость Gatling в ваш проект Maven:


    io.gatling
    gatling-maven-plugin
    ${gatling.plagin.version}
  1. Настройте запуск тестов через Jenkins или GitLab CI:

  1. Настройте публикацию отчётов:

По итогу мы имеем:

Систему отчётов Gatling — не просто статистика, а комплексный инструмент для глубокого анализа производительности приложений. Наглядные графики позволяют увидеть все детали. От времени отклика до ошибок и стабильности при росте нагрузки.

Интеграция с Grafana даёт возможность анализировать метрики в реальном времени, а гибкость и лёгкость внедрения в CI/CD ускоряют процессы разработки и тестирования. Команды могут оперативно получать обратную связь, устранять узкие места и повышать стабильность приложения.

Вся информация по системе отчетов бралась из тестового проекта Gatling

© Habrahabr.ru