Transcript Презентация - sysadminfaq.ru
Разработка Моделирование Запуск
3. СОЗДАНИЕ ТЕСТОВ НА JMETER
Инструменты
JMeter
• • • • • Инструмент нагрузочного тестирования Написан на Java (кроссплатформенный) Бесплатный Интерфейс Настраиваемый
JMeter - возможности
• • • Эмуляция одновременной работы пользователей Распределенная нагрузка Снятие метрик
JMeter – это не браузер!
Цель на сегодня
• Обучить пользоваться функционалом JMeter
Запуск
• • • Java – ( http://www.java.com
) Jmeter 2.6 – ( http://jmeter.apache.org/ ) Запускаем jmeter.bat/.sh
Интерфейс
План практики
• • • Разработка сценариев Моделирование нагрузки Запуск тестов
Разработка сценариев
• • • • • • Запись и воспроизведение HTTP запрос Проверка соответствия Работа с переменными Авторизация Отладка
Объект тестирования
• • Сайт на WordPress (3.3.1) Запущен на Denwer – Apache 2.2.4
– PHP 5.2.12
– MySQL 5.0.51a
Запись и воспроизведение
WorkBench
Add
Non Test Elements
HTTP Proxy Server
Выполняем тест в браузере, затем воспроизводим его в JMeter
Группы пользователей
• • •
Test Plan
Threads (Users)
Thread Group
Number of Threads - количество пользователей; Ramp-Up Period – время, за которое начнут работу все пользователи; Loop Count – количество циклов для каждого пользователя.
• • • • • • •
HTTP
FTP JDBC Java LDAP SOAP SMTP Поддерживаемые протоколы
HTTP запрос по умолчанию • • •
Add
Config Element
Defaults HTTP Requesе
IP и Port сервера Таймауты Кодировка
Проверка соответствия
• •
Add
Assertons
Response Assertion
гибкие настройки поддержка регулярных выражений Просмотр результатов проверки:
Add
Listener
Assertion Results
Простые отчеты
Add
Listener
Aggregate Graph Aggregate Report Summary Report
Информация: - о выполнении запросов - о времени отклика
Работа с переменными
${param} – это переменная
Add
Config Element
User Defined
Variables – хранилище переменных
Работа с переменными
• • • •
Add
Config Element
Counter – счетчик начальное значение шаг максимум формат
Работа с переменными
• • • •
Add
Config Element
чтение из файла
CSV Data Set Config –
путь к файлу имена переменных разделитель настройки
Работа с переменными
•
Add
Post Processors
Regular Expression
Extractor – разбор HTTP ответа используем регулярные выражения (движок Apach Jakarta ORO )
Авторизация
• • •
Add
Connfig Element
Manager – работа с Cookie
HTTP Cookie Add
Logic Controller
Once Only
Controller – авторизуемся только 1 раз или
Add
Connfig Element
HTTP Header
Manager – передаем Cookie в заголовке запроса
Отладка
• • •
Add
Listener
View Results Tree –
отображение данных о запросе: Sampler result – заголовки ответа Request – запрос Response data – тело ответа
Отладка
• • •
Add
Sampler
отображает:
Debug Sampler –
JMeter properties – настройки JMeter JMeter variables – переменные JMeter System properties – настройки системы Используется совместно с View Results Tree
Моделирование нагрузки • • • Плагины Управление группами пользователей Снятие метрик
Плагины
Дополняем стандартный функционал - ( http://code.google.com/p/jmeter-plugins/ ) • распаковываем JMeterPlugins.jar в \lib\ext\
Управление группами пользователей •
Test Plan
Threads (Users)
jp@gc - Stepping Thread Group
пошаговое увеличение количества пользователей
Управление группами пользователей •
Test Plan
Threads (Users)
jp@gc - Ultimate Thread Group
гибкая настройка количества пользователей
Снятие метрик
•
Add
Listener
jp@gc - Active Threads Over Time
графическое отображение активных пользователей
Снятие метрик
•
Add
Listener
jp@gc - Response Times Over Time
графическое отображение времени отклика
Снятие метрик
•
Add
Listener
jp@gc - Transactions per Second
графическое отображение количества запросов в секунду
Снятие метрик
•
Add
Listener
jp@gc - Response Times vs Threads
графическое отображение времени отклика в зависимости от количества активных пользователей
Метрики производительности PerfMonAgent – устанавливаем на сервер агента WIN - /startAgent.bat
UNIX - ./startAgent.sh --udp-port 4443 --tcp port 3450
Метрики производительности • • • •
Add
Listener
jp@gc - PerfMon Metrics Collector
CPU Memory Disks Network
Запуск тестов
• • Распределенное тестирование Запуск из командной строки
Распределенное тестирование
Master
– машина, на которой запущен JMeter
Slaves
– машины с запущенным jmeter server, которые получают команды от
master
и отправляют запросы
Распределенное тестирование 1) jmeter-server.bat
2) jmeter.properties
3)
Запуск из командной строки
Запуск из командной строки • Ключи -n отключаем интерфейс -t путь к файлу сценария -l путь к файлу лога -J указываем настройки сценария