JMeter CSV Dataset Config: как перемещаться по переменным в одном потоке? - PullRequest
14 голосов
/ 06 сентября 2011

Я использую элемент конфигурации набора данных CSV, который читает из файла, подобного этому:

abd
sds
ase
sdd
ssd
cvv

Который, в основном, состоит из трехбуквенной случайной строки.

Я присваиваю их переменной ${random_3}.

Теперь я хочу использовать значения из этого списка несколько раз в пределах одного потока, но каждый раз, когда я хочу перейти к следующему. Например, я хочу, чтобы первый сэмплер использовал abd, второй - sds, затем ase и т. Д. Но если я просто использую ${random_3}, тогда используется только первый (abd), где бы он ни использовался. к. Есть ли способ, который я могу указать для циклического перебора значений из набора данных CSV в потоке?

Ответы [ 4 ]

32 голосов
/ 27 января 2012

CSV Data Set Config отлично работает для этого.Все значения должны находиться в одном столбце файла и назначать их переменной, как описано.

Создайте группу потоков , которая имеет столько потоков для столько пользователей, сколько вы хотите выполнить итерацию по файлу (т. Е. Действовать по запросу HTTP).Предполагая 1 пользователя, установите количество потоков в 1, количество циклов в 1.

Внутри группы потоков вам нужно будет добавить Контроллер цикла или Пока контроллер .Вы указали, что хотите перебрать весь набор данных.Если вы добавите контроллер цикла, вам нужно установить значение счетчика циклов 6, поскольку у вас есть 6 значений, по одному для каждого значения.В качестве альтернативы (и проще для обработки всего файла) добавьте контроллер while вместо контроллера цикла и установите $ {random_3} в качестве условия while.

Важно правильно установить набор данных CSV Recycle для значений EOF и Stop Thread для значений EOF .Если вы планируете перебирать файл более одного раза, вы должны установить для «Recycle on EOF» значение True (то есть дать команду jMeter вернуться к началу файла CSV).Установите «Stop Thread on EOF» на False , если вы используете контроллер цикла, true , если вы используете контроллер while и хотите остановить после чтения всего набора данных CSV.

Добавьте конфигурацию набора данных CSV в качестве дочернего элемента контроллера вместе с HTTP-запросом.Просматривайте результаты с помощью любого слушателя, которого вы хотите использовать.

2 голосов
/ 06 сентября 2011

Набор данных CSV перемещается по файлу только при запуске каждой итерации потока.

Вы можете использовать Источник необработанных данных PreProcessor для перемещения файла через каждый запрос, это ваше решение.

1 голос
/ 07 сентября 2011

Обновление:

Набор данных CSV, похоже, не подходит для этой цели.

Я закончил тем, что создал несколько простых скриптов beanhell, которые при необходимости создают случайное 1, 2 или 3 буквенное слово, а также другой, который читает случайные слова из большого набора. Таким образом, каждый раз, когда они вызываются, они дают случайное значение. Они называются так:

${__BeanShell(getRandomStr(3))}

или

${__BeanShell(getRandomWord())
1 голос
/ 06 сентября 2011

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

делает: abd sds ase sdd ssd cvv очень отличается от

abd 
sds 
ase 
sdd 
ssd 
cvv

У первой есть 6 переменных с одним значением каждая; вторая имеет одну переменную с 6 значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...