JMeter-запуск различных запросов в каждой итерации

в настоящее время я использую JMeter для имитации запросов 5 пользователей каждые 40 секунд. Я создал 100 различных запросов, но через каждые 40 секунд каждый пользователь запускает все 100 запросов. Я хочу сделать это таким образом, чтобы через каждые 40 секунд каждый пользователь запускал только 1 запрос, и этот запрос должен отличаться от предыдущего запроса. Я хотел бы знать, какой контроллер использовать (или что-то еще), чтобы реализовать такой сценарий.

спасибо

2 ответов


попробуйте использовать Случайные Контроллер.

самый простой способ реализовать вашу ситуацию:

Thread Group
Number of Threads = 5
Loop Count = N
    . . .
    Random Controller
        HTTP Request 001
        HTTP Request 002
        HTTP Request 003
        . . .
        . . .
        HTTP Request 100
    Test Action
    Target = Current Thread
    Action = Pause
    Duration = 40000
    . . .

это будет повторять 5 потоков N раз.
Случайный контроллер будет случайным образом подбирать на каждом шаге http-запрос из "пула запросов" - все сэмплеры, добавленные как дети к случайному контроллеру.
Тестовое действие приостановит поток на 40 секунд.

обновление:
рабочая иллюстрация для выше схема:

Random Controller example

Thread Group
Number of Threads = 5
Ramp-Up Period = 0
Loop Count = 10

Constant Timer
Thread Delay (in ms) = 40000

Вы можете скачать рабочий пример для описанной схемы здесь: rc-план.с помощью JMX.
Это работает так, как вы хотите (по крайней мере, для меня, Jmeter 2.5.1): он выбирает случайным образом один запрос из пула запросов (в примере - 10 запросов) для каждого пользователя (здесь - 5 пользователей) на каждом шаге (здесь - 10 циклов) и приостанавливает каждый поток на 40 секунд (постоянный таймер).

вы также можете посмотреть в архиве рассылки: является ли их a способ рандомизации выбора URL?.
Ситуация, похожая на вашу, кажется, описана здесь.

...согласно официальной документации "взаимодействия между несколькими контроллерами могут привести к сложному поведению. Это особенно верно для случайного контроллера."


другой вариант для вас может быть создать CSV-файл с параметрами для ваших запросов раньше времени и использовать конфигурация набора данных CSV для параметризации одного http-запроса.

Это, очевидно, зависит от того, насколько отличаются ваши http-запросы, но если это соответствует вашим требованиям, есть некоторые потенциальные бонусы с поддержанием 1 http-запроса в вашем плане тестирования против 100.

другие детали будут такими же, как @Alies Belik выложил-одна группа потоков настроено для требуемого количества потоков и петель, с постоянным таймером в конце для вашей 40-секундной паузы.