Что такое таймеры?
По умолчанию JMeter отправляет запрос без паузы между каждым запросом. В этом случае JMeter может перегрузить ваш тестовый сервер, сделав слишком много запросов за короткий промежуток времени.
Представьте, что вы отправляете тысячи запросов на тестируемый веб-сервер за несколько секунд. Вот что происходит!
Таймеры позволяют JMeter задерживать каждый запрос, который делает поток. Таймер может решить проблему перегрузки сервера .
Кроме того, в реальной жизни посетители попадают на сайт не одновременно, а через разные промежутки времени. Таким образом, Timer поможет имитировать поведение в реальном времени.
В этом руководстве вы узнаете
- Постоянный таймер
- Гауссовский случайный таймер
- Единый случайный таймер
- Таймер BeanShell
- BSF Таймер
- Таймер JSR223
- Как использовать постоянный таймер
Ниже приведены некоторые распространенные типы таймера в JMeter.
Постоянный таймер:
Постоянный таймер задерживает каждый запрос пользователя на одно и то же время.
Гауссовский случайный таймер:
Гауссовский случайный таймер задерживает каждый пользовательский запрос на случайное количество времени.
Параметры:
Атрибут | Описание |
---|---|
Имя | Описательное имя для этого таймера, которое отображается в дереве |
Отклонения (миллисекунды) | Параметр гауссовой функции распределения |
Постоянное смещение задержки (миллисекунды) | Дополнительное значение в миллисекундах |
Таким образом, общая задержка описана на рисунке ниже:
Единый случайный таймер:
Единый случайный таймер задерживает каждый пользовательский запрос на случайное количество времени.
Параметры:
Атрибут |
Описание |
---|---|
Имя |
Описательное имя для этого таймера, которое отображается в дереве |
Максимум случайной задержки |
Максимальное случайное количество миллисекунд для задержки. |
Постоянное смещение задержки (миллисекунды) |
Дополнительное значение в миллисекундах |
Общая задержка - это сумма случайного значения и значения смещения.
Таймер BeanShell
Таймер BeanShell можно использовать для генерации времени задержки между каждым запросом пользователя.
BSF Таймер
Таймер BSF может использоваться для создания задержки между каждым запросом пользователя с использованием языка сценариев BSF.
Таймер JSR223
Таймер JSR223 может использоваться для генерации задержки между каждым запросом пользователя с использованием языка сценариев JSR223.
Как использовать постоянный таймер
В этом примере вы будете использовать постоянный таймер, чтобы установить фиксированную задержку между пользовательскими запросами на google.com.
Начнем с простого тестового скрипта
- JMeter создает один пользовательский запрос на http://www.google.com 100 раз.
- Задержка между каждым запросом пользователя составляет 5000 мс.
Вот дорожная карта для этого практического примера:
Предварительное условие:
Мы повторно используем Шаг 1 и Шаг 2 в учебнике JMeter Performance Testing.
Шаг 1) Добавьте группу тем
Щелкните правой кнопкой мыши план тестирования и добавьте новую группу потоков: Добавить -> Потоки (пользователи) -> Группа потоков.
На панели управления группой потоков введите Свойства потока, как показано ниже.
Этот параметр позволяет JMeter создавать один пользовательский запрос на http://www.google.com за 100 раз.
Шаг 2) Добавьте элементы JMeter
- Добавить HTTP-запрос по умолчанию
- Добавить HTTP-запрос
Шаг 3) Добавьте постоянный таймер
Щелкните правой кнопкой мыши Thread Group -> Timer -> Constant Timer
Настройка задержки потока 5000 миллисекунд
Шаг 4) Добавьте результаты просмотра в таблицу
Просмотр результатов в таблице отображает результат теста в виде таблицы.
Щелкните правой кнопкой мыши Добавить -> Слушатель -> Просмотреть результат в таблице
Просмотр результатов в таблице отображается, как показано на рисунке ниже.
Шаг 5) Запустите тест
Когда вы будете готовы запустить тест, нажмите кнопку «Выполнить» в строке меню или короткую клавишу Ctrl + R.
Это результат этого теста
Например, на приведенном выше рисунке давайте проанализируем Образец 2.
- Время начала 22: 05: 01.866
- Время выборки 2 составляет 172 мс.
- Постоянный таймер : 5000 мс (как настроено)
- Время окончания этого примера = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Таким образом, Пример 3 должен начаться в 22: 05: 07.039 (как показано на рисунке выше).
Задержка каждого образца составляет 5000 мс
Если вы измените постоянный таймер на ноль , вы увидите, что результат изменился.
Давайте проанализируем Образец 1
- Время начала 22: 17: 39.141
- Время выборки 2 составляет 370 мс.
- Постоянный таймер : 0 мс (как настроено)
- Время окончания этого примера = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511
Таким образом, образец 2 должен начаться в момент времени 22: 17: 39.512 (показано на рисунке выше).
Исправление проблем:
Если вы столкнулись с проблемой при выполнении описанного выше сценария… выполните следующие действия.
- Проверьте, подключаетесь ли вы к Интернету через прокси. Если да, удалите прокси.
- Откройте новый экземпляр JMeter
- Откройте TimerTestPlan.jmx в Jmeter
- Дважды щелкните группу потоков -> Просмотреть результат в таблице
- Запустить тест