В этой главе мы обсудим, как создать план тестирования с использованием JMeter для мониторинга веб-серверов. Испытания монитора следующие:
-
Мониторы полезны для стресс-тестирования и управления системой.
-
Используемый со стресс-тестированием, монитор предоставляет дополнительную информацию о производительности сервера.
-
Мониторы облегчают просмотр взаимосвязи между производительностью сервера и временем отклика на стороне клиента.
-
Как инструмент системного администрирования, монитор обеспечивает простой способ мониторинга нескольких серверов с одной консоли.
Мониторы полезны для стресс-тестирования и управления системой.
Используемый со стресс-тестированием, монитор предоставляет дополнительную информацию о производительности сервера.
Мониторы облегчают просмотр взаимосвязи между производительностью сервера и временем отклика на стороне клиента.
Как инструмент системного администрирования, монитор обеспечивает простой способ мониторинга нескольких серверов с одной консоли.
Нам нужен Tomcat 5 или выше для мониторинга. Для нашего теста мы будем следить за сервером Tomcat 7.0.42. Вы можете протестировать любой контейнер сервлета, который поддерживает Java Management Extension (JMX). Давайте напишем контрольный пример для мониторинга сервера Tomcat. Давайте сначала настроим наш сервер Tomcat.
Настройка сервера Tomcat
Начнем с открытия статуса сервиса Tomcat. Для этого отредактируйте файл конфигурации для пользователей: <TOMCAT_HOME> /conf/tomcat-users.xml . Этот файл содержит раздел tomcat-users (с комментариями), как показано ниже:
<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, используемый в общем, соединен с передним модулем Apache HTTPD mod_jk и соединителем HTTP, который обычно используется для прямого доступа к Tomcat через порт 8080.
Обратите внимание, что в URL-адресе XML = true (обратите внимание на чувствительность к регистру) позволяет четко отображать супервизор Tomcat, необходимый для работы JMeter.
Также обратите внимание, что по умолчанию есть два разъема. Соединитель AJP, используемый в общем, соединен с передним модулем Apache HTTPD mod_jk и соединителем HTTP, который обычно используется для прямого доступа к Tomcat через порт 8080.
Написать план тестирования JMeter
Давайте посмотрим на сервер Tomcat, написав план тестирования —
Переименовать план тестирования
-
Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
-
Щелкните по узлу «План тестирования».
-
Добавьте группу потоков, как описано в следующем шаге.
Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
Щелкните по узлу «План тестирования».
Добавьте группу потоков, как описано в следующем шаге.
Добавить группу тем
-
Щелкните правой кнопкой мыши План тестирования → Добавить → Темы (пользователи) → Группа потоков . Группа потоков будет добавлена в узел плана тестирования.
-
Измените счетчик циклов навсегда (или какое-то большое число), чтобы генерировалось достаточное количество выборок.
Щелкните правой кнопкой мыши План тестирования → Добавить → Темы (пользователи) → Группа потоков . Группа потоков будет добавлена в узел плана тестирования.
Измените счетчик циклов навсегда (или какое-то большое число), чтобы генерировалось достаточное количество выборок.
Диспетчер авторизации HTTP
-
Добавьте диспетчер авторизации HTTP к элементу группы потоков, выбрав «Добавить» → «Элемент конфигурации» → «Диспетчер авторизации HTTP». Этот элемент управляет проверкой подлинности, запрашиваемой браузером для просмотра состояния сервера Tomcat.
-
Выберите диспетчер авторизации HTTP.
-
Отредактируйте следующие детали —
-
Имя пользователя — admin (в зависимости от конфигурации в файле tomcat-users.xml)
-
Пароль — admin (в зависимости от конфигурации в файле tomcatusers.xml)
-
Остальные поля оставлены пустыми.
-
Добавьте диспетчер авторизации HTTP к элементу группы потоков, выбрав «Добавить» → «Элемент конфигурации» → «Диспетчер авторизации HTTP». Этот элемент управляет проверкой подлинности, запрашиваемой браузером для просмотра состояния сервера Tomcat.
Выберите диспетчер авторизации HTTP.
Отредактируйте следующие детали —
Имя пользователя — admin (в зависимости от конфигурации в файле tomcat-users.xml)
Пароль — admin (в зависимости от конфигурации в файле tomcatusers.xml)
Остальные поля оставлены пустыми.
Добавить запрос Sampler-HTTP
Теперь, когда мы определили наших пользователей, пришло время определить задачи, которые они будут выполнять. Добавляем элемент HTTP Request.
-
Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».
-
Выберите Добавить → Выборка → Запрос HTTP.
-
Затем выберите элемент HTTP Request в дереве.
-
Отредактируйте следующие свойства как на изображении ниже —
-
Следующие детали вводятся в этот элемент —
-
Имя — Состояние сервера
-
Имя сервера или IP — localhost
-
Порт — 8080
-
Путь — / менеджер / статус
-
Параметры — добавьте параметр запроса с именем «XML» в верхнем регистре. Дайте ему значение «true» в нижнем регистре.
-
Дополнительные задачи — установите флажок «Использовать как монитор» в нижней части сэмплера.
-
Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».
Выберите Добавить → Выборка → Запрос HTTP.
Затем выберите элемент HTTP Request в дереве.
Отредактируйте следующие свойства как на изображении ниже —
Следующие детали вводятся в этот элемент —
Имя — Состояние сервера
Имя сервера или IP — localhost
Порт — 8080
Путь — / менеджер / статус
Параметры — добавьте параметр запроса с именем «XML» в верхнем регистре. Дайте ему значение «true» в нижнем регистре.
Дополнительные задачи — установите флажок «Использовать как монитор» в нижней части сэмплера.
Добавить постоянный таймер
Чтобы периодически запрашивать состояние сервера, добавьте постоянный таймер, который будет предоставлять промежуток времени между каждым запросом. Добавьте таймер в эту группу потоков, выбрав Добавить → Таймер → Постоянный таймер.
Введите 5000 миллисекунд в поле « Задержка потока». Как правило, использование интервалов менее 5 секунд может увеличить нагрузку на ваш сервер. Узнайте, что является приемлемым интервалом, прежде чем развертывать монитор в производственной среде.
Добавить слушателя
Последний элемент, который вам нужно добавить в свой план тестирования, — это слушатель. Мы добавляем два типа слушателей. Один из них хранит результаты в файле, а второй — графическое представление результатов.
-
Выберите элемент группы потоков.
-
Добавить прослушиватель Simple Data Writer Добавить → Прослушиватель → Simple Data Writer.
-
Укажите каталог и имя файла выходного файла (в нашем случае это /home/manisha/work/sample.csv)
Выберите элемент группы потоков.
Добавить прослушиватель Simple Data Writer Добавить → Прослушиватель → Simple Data Writer.
Укажите каталог и имя файла выходного файла (в нашем случае это /home/manisha/work/sample.csv)
-
Давайте добавим еще одного слушателя, выбрав элемент плана тестирования Add → Listener → Monitor Results.
Давайте добавим еще одного слушателя, выбрав элемент плана тестирования Add → Listener → Monitor Results.
Запустите план тестирования
Теперь сохраните вышеуказанный план тестирования как monitor_test.jmx . Выполните этот план тестирования, используя Run → Start.
Посмотреть вывод
Результаты будут сохранены в файле /home/manisha/work/sample.csv. Вы также можете увидеть графический результат в прослушивателе результатов монитора, как показано на рисунке ниже.
Обратите внимание, что на графике есть подписи с обеих сторон графика. Слева процент, а справа мертвый / здоровый. Если линия памяти быстро поднимается и опускается, это может указывать на перегрузку памяти. В таких ситуациях рекомендуется профилировать приложение с помощью Borland OptimizeIt или JProbe. То, что вы хотите увидеть, это обычный шаблон для загрузки, памяти и потоков. Любое ошибочное поведение обычно указывает на низкую производительность или какую-то ошибку.