1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
3. Тезисы
• Как было раньше?
• nfluxdb, как хранилище time-series данных
• Мониторинг нагрузочных стендов при помощи Zabbix
• Grafana, как способ превратить графики и дашборды в конфетку
• Что было до автоматизации UI-тестов и стандартные проблемы
• Внедрение автоматизации в процесс нагрузочного тестирования
• Плюсы и минусы в автоматизации
• Выводы
5. Проблемы
• Отчет и данные хранятся мертвым грузом в артифактории
• Один жесткий шаблон отчета, дорогая доработка
• Отображение данных только после окончания теста
7. InfluxDB
• Создана для хранения временных рядов:
• Метрик производительности
• Аналитик
• Событий
• Умеет на лету агрегировать данные
• SQL-like синтаксис
• Поддерживает регулярные выражения
• Автоматически чистит старые данные
• Масштабируема
• Есть библиотеки для популярных языков
• Легкое развертывание и администрирование. Ничего лишнего.
8. Пример данных
• Температура машины X типа Y в интервале времени
• измерение: temperature
• теги: machine, type
• поля: internal_temperature, external_temperature
• temperature,machine=unit42,type=assembly internal=32,external=100
1434055562000000035
• теги – для агрегации и фильтрации
• поля – данные для хранения
• поля не индексируются
• хранится только одно значение для комбинации измерение + тег + timestamp
задается временная точность (с, мс, мкс, нс)
• длительность хранения данных задается политикой очистки
9. Zabbix
Как используется в нагрузочном тестировании:
• Кросс-платформенные агенты на Windows- и Linux-хостах
• Активный сбор данных для закрытых сетей
• Autodiscovery виртуальных машин на хостах с ESXi
10. Grafana
“An open source, feature rich metrics dashboard
and graph editor for Graphite, InfluxDB &
OpenTSDB”
grafana.org
11. Основные особенности Grafana
• Очень гибкий инструмент для отображения
• Удобный построитель запросов для источников данных
• InfluxDB, Zabbix, Elasticsearch среди поддерживаемых источников
• Шаблонизация запросов
• Подписи к графикам
• Поиск по дашбордам
• Плейлисты
• Экспорт/импорт
• Выглядит так, что не заставляет глаза кровоточить (привет, zabbix)
16. Jmeter
Для чего он нужен:
• Полная эмуляция работы реальных пользователей с системой
(В данном случаем эмуляция всех запросов между серверов и браузером)
• Получение статистических данных по работе сервера:
• Время обработки входящих запросов (Время отклика на действия пользователя)
• Обработка приходящих ответов
• Отправка результатов работы в InfuxDB
и Grafano
17. Какие проблемы необходимо решить
• Простой механизм разворачивания инструмента на серверах
• Легкий процесс запуска и проведения нагрузочного тестирования
• Простая интеграция результатов тестирования в существующую
систему “Grafano”
• Онлайн мониторинг за проведением нагрузочного тестирования
18. Что было сделано
• Разработан нагрузочный скрипт который покрывает до 80% всех
пользовательских операций
• Внедрен механизм запуска тестирования через TeamCity
• Отображение онлайн статистики по работе MaxPatrol UI
• Простое обновление скриптов через GIT
20. Внедрение Jmeter в Grafano
Jmeter имеет уже существующий плагин (Backend Listener) для
отправки данных в InfluxDB
21. Текущее положение дел
• Процесс нагрузочного тестирования на текущий момент представляет
запуск задачи в TeamCity (необходимо только выбрать нужные
параметры при старте)
• Статистические данные по работе UI отображаются сразу в виде
готовых интерактивных графиков
• Обновленные скрипты автоматически подтягиваются через GIT в
TeamCity