Какие таймеры?
По умолчанию JMeter отправляет запрос без пауз между запросами. В этом случае JMeter может перегружать ваш тестовый сервер, делая слишком много запросов за короткое время.
Представьте себе, что вы отправляете тысячи запросов на тестируемый веб-сервер за несколько секунд. Это то, что происходит!
Таймеры позволяют JMeter задерживать между каждым запросом, который делает поток. Таймер может решить проблему перегрузки сервера .
Кроме того, в реальной жизни посетители приходят на сайт не одновременно, а через разные промежутки времени. Так что Timer поможет имитировать поведение в реальном времени.
В этом уроке вы узнаете
- Постоянный таймер
- Гауссовский случайный таймер
- Единый случайный таймер
- BeanShell Timer
- BSF Таймер
- Таймер JSR223
- Как использовать постоянный таймер
Ниже приведены некоторые распространенные типы таймера в JMeter.
Постоянный таймер:
Постоянный таймер задерживает каждый пользовательский запрос на одинаковое количество времени.
Gaussian Random Timer:
Gaussian random timer delays each user request for a random amount of time.
Parameters:
Attribute | Description |
---|---|
Name | Descriptive name for this timer that is shown in the tree |
Deviations (milliseconds) | A parameter of Gaussian Distribution Function |
Constant Delay Offset (milliseconds) | Additional value in milliseconds |
So the total delay is described as below figure:
Uniform Random Timer:
Uniform random timer delays each user request for a random amount of time.
Parameters:
Attribute |
Description |
---|---|
Name |
Descriptive name for this timer that is shown in the tree |
Random Delay Maximum |
Maximum random number of milliseconds to delay. |
Constant Delay Offset (milliseconds) |
Additional value in milliseconds |
The total delay is the sum of the random value and the offset value.
BeanShell Timer
BeanShell Таймер может быть использован для генерации времени задержки между каждым запросом пользователя.
BSF Таймер
Таймер BSF может использоваться для генерации задержки между каждым пользовательским запросом с использованием языка сценариев BSF .
Таймер JSR223
Таймер JSR223 можно использовать для генерации задержки между каждым запросом пользователя с использованием языка сценариев JSR223.
Как использовать постоянный таймер
В этом примере вы будете использовать постоянный таймер, чтобы установить фиксированную задержку между запросами пользователей на google.com.
Давайте начнем с простого тестового скрипта
- JMeter создает один запрос пользователя на http://www.google.com 100 раз
- Задержка между каждым пользовательским запросом составляет 5000 мс
Вот дорожная карта для этого практического примера:
Предварительное условие:
Мы повторно используем Шаг 1 и Шаг 2 в руководстве по тестированию производительности JMeter .
Шаг 1) Добавить группу тем
Щелкните правой кнопкой мыши План тестирования и добавьте новую группу потоков: Добавить -> Потоки (Пользователи) -> Группа потоков
На панели управления «Группа потоков» введите «Свойства потока» следующим образом.
Этот параметр позволяет JMeter создать один пользовательский запрос на http://www.google.com в 100 раз.
Шаг 2) Добавьте элементы JMeter
- Добавить HTTP-запрос по умолчанию
- Добавить HTTP-запрос
Шаг 3) Добавить постоянный таймер
Щелкните правой кнопкой мыши группу потоков -> Таймер -> Постоянный таймер
Настройка задержки потока в 5000 миллисекунд
Шаг 4) Добавить результаты просмотра в таблицу
Просмотр результатов в таблице отображает результаты теста в формате таблицы.
Щелкните правой кнопкой мыши Add -> Listener -> View Result in Table
Просмотр результатов в таблице отображается как на рисунке ниже
Шаг 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
- Двойной щелчок по группе нитей -> Просмотр результата в таблице
- Запустить тест