jMeter - план тестирования монитора
В этой главе мы обсудим, как создать план тестирования с помощью JMeter для мониторинга веб-серверов. Тесты монитора используются следующим образом:
Мониторы полезны для стресс-тестирования и управления системой.
Монитор, используемый при стресс-тестировании, предоставляет дополнительную информацию о производительности сервера.
Мониторы упрощают просмотр взаимосвязи между производительностью сервера и временем отклика на стороне клиента.
В качестве инструмента системного администрирования монитор обеспечивает простой способ мониторинга нескольких серверов с одной консоли.
Для мониторинга нам нужен Tomcat 5 или выше. Для нашей тестовой цели мы будем отслеживать сервер Tomcat 7.0.42. Вы можете протестировать любой контейнер сервлетов, поддерживающий Java Management Extension (JMX). Напишем тестовый пример для мониторинга сервера Tomcat. Давайте сначала настроим наш сервер tomcat.
Настроить Tomcat Server
Начнем с открытия статуса службы Tomcat. Для этого отредактируйте файл конфигурации для пользователей,<TOMCAT_HOME>/conf/tomcat-users.xml. Этот файл содержит раздел пользователей tomcat (с комментариями), как показано -
<tomcat-users>
<!--
<role rolename = "tomcat"/>
<role rolename = "role1"/>
<user username = "tomcat" password = "tomcat" roles = "tomcat"/>
<user username = "both" password = "tomcat" roles = "tomcat,role1"/>
<user username = "role1" password = "tomcat" roles = "role1"/>
-->
</tomcat-users>
Нам нужно изменить этот раздел, чтобы добавить роли администратора, manager, manager-gui и назначить пользователя «admin». Исправленный файл выглядит следующим образом -
<tomcat-users>
<role rolename = "manager-gui"/>
<role rolename = "manager-script"/>
<role rolename = "manager-jmx"/>
<role rolename = "manager-status"/>
<user username = "admin" password = "admin" roles = "manager-gui,manager-script,manager-jmx,manager-status"/>
</tomcat-users>
Теперь запустите сервер tomcat <TOMCAT_HOME> /bin/startup.sh для Linux и <TOMCAT_HOME> /bin/startup.bat для Windows. После запуска убедитесь, что надзор Tomcat работает, введя следующую ссылку в своем браузере -
http://localhost:8080/manager/status?XML=true
В браузере появится окно аутентификации. Введите логин и пароль для Tomcat (в нашем случае это admin). Затем браузер показывает состояние выполнения Tomcat, как показано ниже -
Из приведенного выше снимка экрана мы можем отметить несколько вещей -
В URL-адресе обратите внимание, что XML = true (обратите внимание на чувствительность к регистру) позволяет четко отображать контролирующий Tomcat, необходимый для работы JMeter.
Также обратите внимание, что по умолчанию используются два разъема. Коннектор AJP обычно используется в сочетании с передним модулем mod_jk Apache HTTPD и коннектором HTTP, который обычно используется для прямого доступа к Tomcat через порт 8080.
Написать план тестирования JMeter
Давайте следить за сервером Tomcat, написав план тестирования -
Переименовать план тестирования
Откройте окно JMeter, щелкнув /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
Щелкните узел "План тестирования".
Добавьте группу потоков, как описано в следующем шаге.
Добавить группу тем
Щелкните правой кнопкой мыши на Test Plan → Add → Threads(Users) → Thread Group. Группа потоков будет добавлена в узел Test Plan.
Измените количество циклов на вечное (или какое-то большое число), чтобы было сгенерировано достаточно выборок.
Менеджер авторизации HTTP
Добавьте диспетчер авторизации HTTP к элементу группы потоков, выбрав Добавить → Элемент конфигурации → Диспетчер авторизации HTTP. Этот элемент управляет аутентификацией, запрошенной браузером, чтобы увидеть статус сервера Tomcat.
Выберите диспетчер авторизации HTTP.
Отредактируйте следующие детали -
Username - admin (в зависимости от конфигурации в файле tomcat-users.xml)
Password - admin (в зависимости от конфигурации в файле tomcatusers.xml)
Остальные поля остаются пустыми.
Добавить Sampler-HTTP Request
Теперь, когда мы определили наших пользователей, пришло время определить задачи, которые они будут выполнять. Добавляем элемент HTTP Request.
Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».
Выберите Добавить → Образец → HTTP-запрос.
Затем выберите в дереве элемент HTTP-запроса.
Отредактируйте следующие свойства, как на изображении ниже -
В этот элемент вводятся следующие данные -
Name - Статус сервера
Server Name or IP - localhost
Port - 8080
Path - / менеджер / статус
Parameters- Добавьте параметр запроса с именем «XML» в верхнем регистре. Присвойте ему значение «истина» в нижнем регистре.
Optional Tasks - Отметьте «Использовать как монитор» внизу сэмплера.
Добавить постоянный таймер
Чтобы периодически запрашивать статус сервера, добавьте постоянный таймер, который обеспечит временной интервал между каждым запросом. Добавьте таймер в эту группу потоков, выбрав Добавить → Таймер → Постоянный таймер.
Введите 5000 миллисекунд в поле Thread Delay . В общем, использование интервалов короче 5 секунд может увеличить нагрузку на ваш сервер. Прежде чем развертывать монитор в производственной среде, выясните, каков допустимый интервал.
Добавить слушателя
Последний элемент, который вам нужно добавить в свой план тестирования, - это слушатель. Добавляем два типа слушателей. Один хранит результаты в файле, а второй показывает результаты в графическом виде.
Выберите элемент группы потоков.
Добавьте прослушиватель Simple Data Writer Add → Listener → Simple Data Writer.
Укажите каталог и имя выходного файла (в нашем случае это /home/manisha/work/sample.csv)
Давайте добавим еще одного слушателя, выбрав элемент плана тестирования Add → Listener → Monitor Results.
Запустите план тестирования
Теперь сохраните указанный выше план тестирования как monitor_test.jmx . Выполните этот план тестирования, используя команду «Выполнить» → «Пуск».
Просмотр вывода
Результаты будут сохранены в файле /home/manisha/work/sample.csv. Вы также можете увидеть графический результат в прослушивателе результатов Monitor, как на изображении ниже.
Обратите внимание, что на обеих сторонах графика есть подписи. Слева проц, а справа мертв / здоров. Если линия памяти быстро поднимается и опускается, это может указывать на нехватку памяти. В таких ситуациях рекомендуется профилировать приложение с помощью Borland OptimizeIt или JProbe. То, что вы хотите увидеть, - это обычный шаблон для нагрузки, памяти и потоков. Любое нестабильное поведение обычно указывает на низкую производительность или какую-либо ошибку.