Нагрузочное тестирование JMeter Кожухов

20,898 views

Published on

2 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total views
20,898
On SlideShare
0
From Embeds
0
Number of Embeds
798
Actions
Shares
0
Downloads
210
Comments
2
Likes
12
Embeds 0
No embeds

No notes for slide

Нагрузочное тестирование JMeter Кожухов

  1. 1. РазработкаМоделированиеЗапуск3. СОЗДАНИЕ ТЕСТОВ НА JMETER
  2. 2. Инструменты
  3. 3. JMeter• Инструмент нагрузочного тестирования• Написан на Java (кроссплатформенный)• Бесплатный• Интерфейс• Настраиваемый
  4. 4. JMeter - возможности• Эмуляция одновременной работы пользователей• Распределенная нагрузка• Снятие метрик JMeter – это не браузер!
  5. 5. Цель на сегодня• Обучить пользоваться функционалом JMeter
  6. 6. Запуск• Java – (http://www.java.com)• Jmeter 2.6 – (http://jmeter.apache.org/)• Запускаем jmeter.bat/.sh
  7. 7. Интерфейс
  8. 8. План практики• Разработка сценариев• Моделирование нагрузки• Запуск тестов
  9. 9. Разработка сценариев• Запись и воспроизведение• HTTP запрос• Проверка соответствия• Работа с переменными• Авторизация• Отладка
  10. 10. Объект тестирования• Сайт на WordPress (3.3.1)• Запущен на Denwer – Apache 2.2.4 – PHP 5.2.12 – MySQL 5.0.51a
  11. 11. Запись и воспроизведениеWorkBench  Add Non Test Elements  HTTP Proxy ServerВыполняем тест в браузере, затем воспроизводим его в JMeter
  12. 12. Группы пользователейTest Plan  Threads (Users)  Thread Group• Number of Threads - количество пользователей;• Ramp-Up Period – время, за которое начнут работу все пользователи;• Loop Count – количество циклов для каждого пользователя.
  13. 13. Поддерживаемые протоколы• HTTP• FTP• JDBC• Java• LDAP• SOAP• SMTP
  14. 14. HTTP запрос по умолчаниюAdd Config Element  HTTP Requesе Defaults• IP и Port сервера• Таймауты• Кодировка
  15. 15. Проверка соответствияAdd  Assertons  Response Assertion• гибкие настройки• поддержка регулярных выраженийПросмотр результатов проверки:Add  Listener  Assertion Results
  16. 16. Простые отчетыAdd Listener  Aggregate Graph Информация: Aggregate Report - о выполнении запросов - о времени отклика Summary Report
  17. 17. Работа с переменными${param} – это переменнаяAdd  Config Element  User Defined Variables – хранилище переменных
  18. 18. Работа с переменнымиAdd  Config Element  Counter – счетчик• начальное значение• шаг• максимум• формат
  19. 19. Работа с переменнымиAdd  Config Element  CSV Data Set Config – чтение из файла• путь к файлу• имена переменных• разделитель• настройки
  20. 20. Работа с переменнымиAdd  Post Processors  Regular Expression Extractor – разбор HTTP ответа• используем регулярные выражения (движок Apach Jakarta ORO)
  21. 21. Авторизация• Add  Connfig Element  HTTP Cookie Manager – работа с Cookie• Add  Logic Controller  Once Only Controller – авторизуемся только 1 раз или• Add  Connfig Element  HTTP Header Manager – передаем Cookie в заголовке запроса
  22. 22. ОтладкаAdd  Listener  View Results Tree – отображение данных о запросе:• Sampler result – заголовки ответа• Request – запрос• Response data – тело ответа
  23. 23. ОтладкаAdd  Sampler  Debug Sampler – отображает:• JMeter properties – настройки JMeter• JMeter variables – переменные JMeter• System properties – настройки системыИспользуется совместно с View Results Tree
  24. 24. Моделирование нагрузки• Плагины• Управление группами пользователей• Снятие метрик
  25. 25. ПлагиныДополняем стандартный функционал - (http://code.google.com/p/jmeter-plugins/)• распаковываем JMeterPlugins.jar в libext
  26. 26. Управление группами пользователейTest Plan  Threads (Users)  jp@gc - Stepping Thread Group• пошаговое увеличение количества пользователей
  27. 27. Управление группами пользователейTest Plan  Threads (Users)  jp@gc - Ultimate Thread Group• гибкая настройка количества пользователей
  28. 28. Снятие метрикAdd  Listener  jp@gc - Active Threads Over Time• графическое отображение активных пользователей
  29. 29. Снятие метрикAdd  Listener  jp@gc - Response Times Over Time• графическое отображение времени отклика
  30. 30. Снятие метрикAdd  Listener  jp@gc - Transactions per Second• графическое отображение количества запросов в секунду
  31. 31. Снятие метрикAdd  Listener  jp@gc - Response Times vs Threads• графическое отображение времени отклика в зависимости от количества активных пользователей
  32. 32. Метрики производительностиPerfMonAgent – устанавливаем на сервер агентаWIN - /startAgent.batUNIX - ./startAgent.sh --udp-port 4443 --tcp- port 3450
  33. 33. Метрики производительностиAdd  Listener  jp@gc - PerfMon Metrics Collector• CPU• Memory• Disks• Network
  34. 34. Запуск тестов• Распределенное тестирование• Запуск из командной строки
  35. 35. Распределенное тестированиеMaster – машина, на которой запущен JMeterSlaves – машины с запущенным jmeter- server, которые получают команды от master и отправляют запросы
  36. 36. Распределенное тестирование1) jmeter-server.bat2) jmeter.properties 3)
  37. 37. Запуск из командной строки
  38. 38. Запуск из командной строки• Ключи -n отключаем интерфейс -t путь к файлу сценария -l путь к файлу лога -J указываем настройки сценария
  39. 39. JMeter. Что дальше?• Непрерывная интеграция• Функциональное тестирование• Тестирование безопасности• …
  40. 40. ДокладчикКожухов Илья• k.i.a88@mail.ru• Skype ra_007
  41. 41. СПАСИБО ЗА ВНИМАНИЕ

×