Jmeter — как получить более высокий эффект рандомизации?

#multithreading #http #web #server #jmeter

#многопоточность #http #веб #сервер #jmeter

Вопрос:

Мне нужно имитировать «реальный трафик» на веб-ферме, другими словами, мне нужно генерировать высокие пики, а также периоды, когда HTTP-запросы (хиты) меньше или вообще отсутствуют. Причина этого в том, чтобы протестировать некоторые атомизированные механизмы для добавления и уменьшения процессора и памяти для самих веб-серверов (это уже другая история). Вот почему мне нужны «полностью случайные» сценарии, когда у меня загружаются, а также периоды с нулевым или меньшим трафиком (чтобы я мог добавлять или уменьшать вычислительную мощность).

Это ситуация, с которой я сталкиваюсь сейчас, как вы можете видеть, у меня всегда есть некоторая средняя загрузка, она всегда составляет около некоторого количества обращений, даже если я меняю от 10 до 100 потоков. Значения (результаты) всегда будут иметь некоторое среднее значение. Нет периодов с меньшим или большим трафиком, которые были бы разделены на 10 минут или около того, всего на несколько секунд. Текущая ситуация

Я хотел бы получать «более высокие» вариации по ОБРАЩЕНИЯМ / ЗАПРОСАМ с некоторыми временными перерывами между ними. Ситуация, которую я хочу:i.stack.imgur.com/I4LhU.png

Я пробовал несколько таймеров, но безуспешно, и я не хочу использовать «Конечную группу потоков» и подобные компоненты, потому что я хочу, чтобы тест был полностью случайным и не был предопределен с временными перерывами и периодами паузы (задержки потоков). Я хотел бы тест, который будет полностью рандомизирован сам по себе — который мог бы, например, генерировать от 1 до 100 пользователей за XY раз.

Это моя текущая настройка Jmeter: i.stack.imgur.com/I4LhU.png

Я не знаю, не хватает ли мне какого-то параметра в текущей настройке или есть совершенно другой способ сделать это.

Большое спасибо!

Ответ №1:

Если это то, чего вы действительно хотите (я твердо верю, что тест должен быть повторяемым, а не случайным), я бы предложил использовать для этого таймер постоянной пропускной способности. Несмотря на слово «Константа» в его названии, вы можете использовать там функцию или переменную, например __Random(), и вы будете получать разные управляемые «всплески» на каждой итерации.

Более того, вы вводите функцию __P() и изменяете ее значение через сервер Beanshell во время выполнения теста

Комментарии:

1. Не могли бы вы быть более конкретными, пожалуйста? конкретный пример. Спасибо