62
3. СОЗДАНИЕ ТЕСТОВ НА JMETER Разработка Моделирование Запуск

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

  • Upload
    -

  • View
    13.560

  • Download
    30

Embed Size (px)

DESCRIPTION

 

Citation preview

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 HTTP Requesе Defaults• IP и Port сервера• Таймауты• Кодировка

Проверка соответствия

Add Assertons Response Assertion• гибкие настройки• поддержка регулярных выражений

Просмотр результатов проверки:Add Listener Assertion Results

Простые отчеты

Add Listener Aggregate Graph Aggregate ReportSummary 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 HTTP Cookie Manager – работа с 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.batUNIX - ./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 указываем настройки сценария

JMeter. Что дальше?

• Непрерывная интеграция• Функциональное тестирование• Тестирование безопасности• …

Докладчик

Кожухов Илья

[email protected]• Skype ra_007

СПАСИБО ЗА ВНИМАНИЕ