Не в состоянии зациклить с 2 слоя в то время как контроллер - PullRequest
0 голосов
/ 09 октября 2019

enter image description here

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

Представьте, что

Внешний во время контроллера: чтение файла A

1

2

3

4

5

Внутренний контроллер: чтение файла B

6

7

8

Я хотел бы получить следующий результат, вызвав HTTP-запрос во Внутреннем контроллере

1 * 6, 1 * 7, 1 * 8 (результат первого вызовавнешний контроллер while)

2 * 6, 2 * 7, 2 * 8 (результат 2-го вызова внешнего контроллера while)

...

5 * 6, 5 * 7, 5 * 8 (результат 5-го вызова внешнего контроллера while)

============================================

Однако я могу получить только первую строку файла A для внутреннего контроллера while. Jmeter останавливается при втором вызове на внешнем контроллере.

Что можно сделать, чтобы сделать 2-слойный во время работы контроллера?

1 Ответ

0 голосов
/ 09 октября 2019
  1. Убедитесь, что настройка CSV Data Set выглядит следующим образом:

    enter image description here

  2. Переименуйте внешний Пока контроллер в While Controller 1. Ваши 2 контроллера должны иметь разные метки, чтобы вы могли различать их текущие итерации, выставленные с помощью переменной JMeter в виде __jm__<Name of your element>__idx
  3. Используйте следующую __ groovy () функция в качестве условия внешнего контроллера:

    ${__groovy((vars.get('__jm__While Controller 1__idx') as int) < new File('fileA.csv').readLines().size(),)}
    
  4. Переименуйте внутренний контроллер контроллера в While Controller 2
  5. Используйте следующую функцию __groovy () какусловие внутреннего Контроллера:

    ${__groovy((vars.get('__jm__While Controller 2__idx') as int) < new File('fileB.csv').readLines().size(),)}
    
  6. Вот и все, теперь вы должны получить нужную комбинацию внутреннего / внешнего цикла:

    enter image description here

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