Jmeter - моделирование более сложных сценариев нагрузки?

Экспериментировал с Jmeter, и я хотел бы знать, как лучше всего это сделать:

20 пользователей входят в приложение более 20 минут и выполняют некоторые действия в течение еще 20 минут, прежде чем выйти из системы в течение 20 минут. т.е. иметь 200 пользователей, вошедших в систему, а затем, когда ВСЕ из них вошли в систему, запустите 20-минутный таймер. По истечении 20 минут начните регистрировать тех, кто вошел в систему раньше всех.

Я понимаю, что это МОЖЕТ БЫТЬ или НЕ МОЖЕТ БЫТЬ реалистичным сценарием тестирования, но я хотел бы посмотреть, возможно ли это.

На данный момент у меня есть план тестирования, согласно которому пользователь входит в систему, выполняет какие-то действия, а затем выходит из системы. Я не вижу, как я могу увеличивать и уменьшать скорость.


person Dominic Bou-Samra    schedule 17.03.2011    source источник


Ответы (4)


В плане тестирования есть опция «Выполнять группы потоков последовательно». Установите его на проверенный.

Затем добавьте 3 группы потоков в свой план тестирования. Я бы предложил использовать группу потоков для первого (20 потоков, количество циклов 1, время нарастания 1), Ultimate Thread Group (20 потоков, начинающихся немедленно и удерживающих нагрузку в течение 20 минут) для второго и снова группу потоков для третьего (20 потоков, цикл). счет 1, время разгона 1).

Поместите соответствующие сэмплеры внутри каждого TG - первый просто входит в систему, второй выполняет действия, третий выходит из системы.

Вот и все. Если у вас возникнут затруднения - дайте мне знать.

person Andrey Pokhilko    schedule 18.03.2011
comment
Проблема в том, что мне нужно войти в каждый из трех потоков. - person Dominic Bou-Samra; 19.03.2011
comment
Хорошо, другой вариант — использовать контроллеры Once Only. вы можете установить один для входа в систему, и он будет выполняться для каждого потока только один раз - person Andrey Pokhilko; 19.03.2011
comment
Я составил для вас краткий пример плана тестирования, попробуйте скачать - person Andrey Pokhilko; 19.03.2011
comment
Спасибо постараюсь отписаться - person Dominic Bou-Samra; 20.03.2011

Вам понадобится несколько групп потоков в JMeter, запускающихся и работающих с разными интервалами, чтобы вы могли гарантировать, что пользователи, которые начнут первыми, закончатся первыми.

Также см. связанный с этим вопрос.

person JoseK    schedule 17.03.2011

У вас может быть количество пользователей = 20, время нарастания = 1200 секунд (1 в минуту), разница во времени между временем начала и окончания теста = 20 минут для достижения этого.

person anubhava    schedule 17.03.2011
comment
Это не сработает. Я хочу запустить таймер после завершения линейного изменения, чтобы имитировать полную нагрузку в течение 20 минут, прежде чем выйти из системы еще на 20 минут. - person Dominic Bou-Samra; 17.03.2011

Я думаю, что у меня была похожая проблема в прошлом

Здесь хочу, чтобы я сделал:

Сначала установите в группе потоков 20 потоков с периодом нарастания 60 секунд.

После входа в систему поставьте «тестовое действие» (в меню сэмплера) target = current thread, с паузой действия и 20 минутами (1 200 000 мс) или более, если вы хотите быть в безопасности.

После этого тестового действия поставьте все свои навигационные запросы.

Как только ваша навигация будет завершена, поместите еще одно «тестовое действие» с теми же настройками, что и предыдущее.

(цель = текущий поток, с паузой действия и 20 минутами (1 200 000 мс)) поместите запрос на выход из системы после семплера.

Это должно охватывать ваш случай.

Обратите внимание, что сэмплер просто приостанавливает ваш поток, поэтому первый поток, который начинается, должен быть первым потоком, который заканчивается.

Если вы хотите масштабировать его до 200, вам просто нужно изменить период нарастания группы потоков на 6 или 5 секунд.

надеюсь, это поможет.

person Chris    schedule 17.03.2011