Jmeter -взрослый инструмент для тяжёлых задач

Jmeter -взрослый инструмент для тяжёлых задач

Рассказ про то, как в Miro прокачали Jmeter для работы с ws. Некоторые особенности использования кода внутри Jmeter. Несколько полезных фишек про сбор метрик. Как и зачем использовать параллельное выполнение нагрузочных тестов с е2е тестами.

405cf5a7e7cad100e431fa3a2403e909?s=128

Zoya Chizhkova

October 24, 2019
Tweet

Transcript

  1. 2.

    Инфраструктура Кластер для подачи нагрузки Кластер аналогичный проду Сервисы для

    сбора метрик Сервисы для масштабирования Код для управления Инструменты для запуска и автозапуска Сервис для подготовки отчетов
  2. 3.
  3. 4.

    Схема сервиса Services Web servers Load balancers Board servers Servers

    with other roles Redis servers PostgreSQL servers PgBouncer Active MQ ... ... ... W ebSocket Billing
  4. 7.

    WS plugin 1. Работа с WS 2. Listeners 3. *Механизм

    архивации пакетов как на клиенте 7/45
  5. 8.
  6. 9.
  7. 10.

    10/45 Особенности выполнения js Это не JS фреймворк, как angular

    или extJS. Это конкретная специфичная версия JS, выполняемая в Java. Стоит проверить код перед запуском. Только Rhino- поддерживаемые функции.
  8. 11.

    Client → JSR223 Sampler → Используем нужные методы как браузер

    Client Лишнее Клиент- серверное взаимодействие Stress- client - = =
  9. 12.
  10. 13.

    - Сложно понять вид отправляемых данных - Требуется совместимость клиента

    и сервера в части моделей Плюсы: - Клиент- серверное взаимодейтсвие редко меняется - Почти нет функциональных ограничений в тесте Минусы
  11. 14.

    14/45 также, про JSR JSR sampler имеет свои свойства в

    jmeter.properties, например размер js файла JSR sampler имеет Pre processor and Post processor элементы Для больших и сложных js потребуется заметное время интерпретатору, в этих частях лучше использовать sampler, а не pre, post processors Интерпретатор не сохраняется между вызовами
  12. 17.
  13. 19.

    Наш пример Тип Jmeter server в AWS: m5.large ($0.06 per

    Hour) vCPU: 2 Mem (GiB): 8 Dedicated EBS Bandwidth (Mbps): Up to 3,500 Network Performance (Gbps): Up to 10 → ~730 потоков 19/45
  14. 21.

    Облачные провайдеры AWS Openctack+Hetzner Hetzner Фичи Есть Есть, но сложнее

    Нет Цена X В 17 раз дешевле Х В 17 раз дешевле Х
  15. 22.

    Содержание Jmeter серверов в AWS Например 50К online =50 000

    \ 730 = 69 инстансов За месяц: =69*30*24*0,06=$ 2981 =инстансов*дней*часов*цена 22/45
  16. 24.

    Содержание SPOT- Jmeter серверов в AWS Те же 50К online

    69 инстансов $0,24 цена спотового инстанса За месяц: =69*6*12*0,24=$ 1192 =инстансов*часов за тест*тестов в месяц*цена Экономия: $1788 (минимум 60%) 24/45
  17. 29.

    Автоматические отчеты Сервис для отображения всех отчетов Выводы (текст) Графики

    (картинки) Живые графики (данные) Prometheus Grafana full page screen capture автогенерируемый ш аблон интеграция
  18. 31.

    Конфиги вместо клонов сценариев Конфиги для Jmeter серверов Легкие онлайн

    результаты Удобная интеграция с CI Запуск в распределенной системе Taurus
  19. 35.

    Автоматический старт тестов на билд мастера Деплой версии на тестовый

    стенд Запуск функциональных автотестов Запуск нагрузочных тестов в Jmeter Сбор отчета в Allure Timeout Tim eout http request запускает python скрипт, который стартует Jmeter Средняя нагрузка Java+Selenium Выполняется полный набор тестов на мастер Как?
  20. 36.