Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

CodeFest
January 29, 2018

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

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

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

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

CodeFest

January 29, 2018
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

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

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

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

    — Конфигурация теста — Симуляция — Способы запуска 6
  4. В довесок (демо) — Экспорт реал-тайм метрик и дашборд в

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

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

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

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

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

    Полная документация Gatling — Нагрузочное тестирование типичного интернет-сервиса, Андрей Похилько, Яндекс — Подводные камни в нагрузочном тестировании, Владимир Ситников, Гейзенбаг 2016 15