Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana | Иван Останин, Сергей Тихонов

12,095 views

Published on

1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity

Published in: Technology
  • Login to see the comments

Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana | Иван Останин, Сергей Тихонов

  1. 1. Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana Иван Останин iostanin@ptsecurity.com Сергей Тихонов stikhonov@ptsecurity.com
  2. 2. Часть 1. Мониторинг в нагрузочных тестах
  3. 3. Тезисы • Как было раньше? • nfluxdb, как хранилище time-series данных • Мониторинг нагрузочных стендов при помощи Zabbix • Grafana, как способ превратить графики и дашборды в конфетку • Что было до автоматизации UI-тестов и стандартные проблемы • Внедрение автоматизации в процесс нагрузочного тестирования • Плюсы и минусы в автоматизации • Выводы
  4. 4. Сбор и отображение данных: ДО
  5. 5. Проблемы • Отчет и данные хранятся мертвым грузом в артифактории • Один жесткий шаблон отчета, дорогая доработка • Отображение данных только после окончания теста
  6. 6. Решение Использовать плоды чужих трудов!
  7. 7. InfluxDB • Создана для хранения временных рядов: • Метрик производительности • Аналитик • Событий • Умеет на лету агрегировать данные • SQL-like синтаксис • Поддерживает регулярные выражения • Автоматически чистит старые данные • Масштабируема • Есть библиотеки для популярных языков • Легкое развертывание и администрирование. Ничего лишнего.
  8. 8. Пример данных • Температура машины X типа Y в интервале времени • измерение: temperature • теги: machine, type • поля: internal_temperature, external_temperature • temperature,machine=unit42,type=assembly internal=32,external=100 1434055562000000035 • теги – для агрегации и фильтрации • поля – данные для хранения • поля не индексируются • хранится только одно значение для комбинации измерение + тег + timestamp задается временная точность (с, мс, мкс, нс) • длительность хранения данных задается политикой очистки
  9. 9. Zabbix Как используется в нагрузочном тестировании: • Кросс-платформенные агенты на Windows- и Linux-хостах • Активный сбор данных для закрытых сетей • Autodiscovery виртуальных машин на хостах с ESXi
  10. 10. Grafana “An open source, feature rich metrics dashboard and graph editor for Graphite, InfluxDB & OpenTSDB” grafana.org
  11. 11. Основные особенности Grafana • Очень гибкий инструмент для отображения • Удобный построитель запросов для источников данных • InfluxDB, Zabbix, Elasticsearch среди поддерживаемых источников • Шаблонизация запросов • Подписи к графикам • Поиск по дашбордам • Плейлисты • Экспорт/импорт • Выглядит так, что не заставляет глаза кровоточить (привет, zabbix)
  12. 12. Демонстрация
  13. 13. Примеры графиков в Grafano
  14. 14. Сбор и отображение данных: ПОСЛЕ
  15. 15. Часть 2. Jmeter + TeamCity + Grafano
  16. 16. Jmeter Для чего он нужен: • Полная эмуляция работы реальных пользователей с системой (В данном случаем эмуляция всех запросов между серверов и браузером) • Получение статистических данных по работе сервера: • Время обработки входящих запросов (Время отклика на действия пользователя) • Обработка приходящих ответов • Отправка результатов работы в InfuxDB и Grafano
  17. 17. Какие проблемы необходимо решить • Простой механизм разворачивания инструмента на серверах • Легкий процесс запуска и проведения нагрузочного тестирования • Простая интеграция результатов тестирования в существующую систему “Grafano” • Онлайн мониторинг за проведением нагрузочного тестирования
  18. 18. Что было сделано • Разработан нагрузочный скрипт который покрывает до 80% всех пользовательских операций • Внедрен механизм запуска тестирования через TeamCity • Отображение онлайн статистики по работе MaxPatrol UI • Простое обновление скриптов через GIT
  19. 19. Внедрение Jmeter в TeamCity
  20. 20. Внедрение Jmeter в Grafano Jmeter имеет уже существующий плагин (Backend Listener) для отправки данных в InfluxDB
  21. 21. Текущее положение дел • Процесс нагрузочного тестирования на текущий момент представляет запуск задачи в TeamCity (необходимо только выбрать нужные параметры при старте) • Статистические данные по работе UI отображаются сразу в виде готовых интерактивных графиков • Обновленные скрипты автоматически подтягиваются через GIT в TeamCity
  22. 22. Ссылки • InfluxDB: https://influxdata.com • Grafana: https://grafana.org • Live demo: https://play.grafana.org • Zabbix datasource demo: http://play.grafana-zabbix.org • Zabbix: https://zabbix.org • Мониторинг ВМ: https://www.zabbix.com/documentation/3.0/manual/vm_monitoring • Zabbix + iostat: http://virtuallyhyper.com/2013/06/monitor-disk-io-stats-with-zabbix/ • Jmeter http://jmeter.apache.org/ • TeamCity http://www.jetbrains.com/teamcity/
  23. 23. Спасибо! Вопросы? Иван Останин iostanin@ptsecurity.com Сергей Тихонов stikhonov@ptsecurity.com

×