Денис Трифонов (2ГИС), Нагрузочное тестирование с Gatling с нуля, CodeFest 2017

16b6c87229eaf58768d25ed7b2bbbf52?s=47 CodeFest
January 29, 2018

Денис Трифонов (2ГИС), Нагрузочное тестирование с Gatling с нуля, CodeFest 2017

https://2017.codefest.ru/lecture/1218

Хорошо, когда есть выбор. Я расскажу про один интересный сценарный инструмент нагрузки для тестирования HTTP-сервисов – Gatling.

Прямо во время доклада мы с нуля разработаем нагрузочные тесты с разными кейсами, динамическими данными, профилями, ассертами и реал-тайм дашбордами. И, конечно же, запустим их. Обсудим почему бы не ab, Яндекс.Танк или JMeter.

16b6c87229eaf58768d25ed7b2bbbf52?s=128

CodeFest

January 29, 2018
Tweet

Transcript

  1. Нагрузочное тестирование с Gatling с нуля Денис Трифонов

  2. Обо мне Занимаюсь тестированием производительности бэкендов внешних продуктов 2ГИС. Пришел

    в нагрузку из команд Справочного API и Continuous Delivery. 2
  3. „Нагрузочные тесты, как и функциональные, нужно писать, поддерживать и выполнять“

  4. Gatling в России — 2ГИС — Онлайн ПК и мобильная

    версия 2ГИС — Бекенды Справочного API, Карт, Фото, Мессенджера, Авторизации, Избранного и ещё десятки других проектов — Tinkoff.ru — Статья на Хабрахабр 4
  5. Тестирование News API — Получение коллекции — Получение записи —

    Обновление записи — Создание записи — Удаление записи 5
  6. Получение коллекции (демо) — HTTP запрос — Проверки — Сценарий

    — Конфигурация теста — Симуляция — Способы запуска 6
  7. Получение записи (демо) — Тестовые данные — Модели пользовательских сценариев

    и отдельных запросов — Ветвления 7
  8. Обновление записи (демо) — Сессия виртуального пользователя — Шаблоны —

    Логирование 8
  9. Создание и удаление записи (демо) — Извлечение данных из ответа

    — Условия — Ассерты 9
  10. В довесок (демо) — Экспорт реал-тайм метрик и дашборд в

    Grafana — Логирование URL запросов, HTTP коды и времена ответов 10
  11. Резюме — Gatling достоен внимания как инструмент для тестирования HTTP

    сервисов (также умеет WebSockets, SSE и JMS) — Нагрузочные тесты как код — Нагрузочные тесты как функциональные тесты — Простой DSL и вся мощь Scala при необходимости — Средства отладки и расширенного логирования — Реал-тайм статистика по протоколу Graphite и HTML-отчёты 11
  12. Что дальше — Интеграция в CI/CD — Другие виды тестов

    (стресс, всплеск, стабильность и т.д.) — Разделить создание и удаление записи (удаляемые записи необходимо подготовить до теста) — Пагинация в получении коллекции — А как оно в жизни на бою: вместо последовательного чтения у нас популярные записи и страницы новостей... 12
  13. Если проектов десятки Пример тестовой инфраструктуры 2ГИС: — Код и

    автоматизация в GitLab — Shared Runners для нагрузочных тестов — Изолированное пространство для приложений — Подготовленные мониторинг и дашборд — Сохранение HTML-отчётов в артефакты, экспорт логов тестов для хранения истории и дальнейшей аналитики 13
  14. Если проектов десятки Поставить новый проект на конвеер — дело

    часа, от команды требуются только тесты и приложение 14
  15. Материалы — Код (расширенная версия) и слайды этого доклада —

    Полная документация Gatling — Нагрузочное тестирование типичного интернет-сервиса, Андрей Похилько, Яндекс — Подводные камни в нагрузочном тестировании, Владимир Ситников, Гейзенбаг 2016 15
  16. Денис Трифонов de.trifonov@2gis.ru dentrifonov.github.io Спасибо!