Цикл по массиву - Jmeter - PullRequest
       25

Цикл по массиву - Jmeter

1 голос
/ 07 октября 2019

Я пытаюсь зациклить сценарий для двухкратной выборки данных из массива.

Мой вариант использования: я хочу создать пользователя для нескольких стран, поэтому вместо решения случая я хочу реализовать логику цикла.

Пока что пробовал как, но безуспешно:

  1. отсюда я хочу получить данные

// JSR223 PreProcessor

String[] varArray = {"US", "UK"};
idx = Integer.parseInt(vars.get("loopCounter"))-1;
vars.put("myVariable", varArray[idx]);

enter image description here

логика счетчика: enter image description here

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

enter image description here

Результат: я получил null, если попытался использовать переменную fetch.

Script37.groovy: 1: unexpected token: US @ line 1, column 22.
   String[] varArray = {"US", "UK"};

Ответы [ 2 ]

1 голос
/ 08 октября 2019
  1. Определить countries переменную через Пользовательские переменные , например:

    enter image description here

  2. В Loop Controller вы можете динамически получить длину массива с помощью функции __ groovy () следующим образом:

    ${__groovy(vars.get('countries').split().size(),)}
    

    enter image description here

  3. Где бы вы ни находились внутри контроллера цикла, вы можете ссылаться на «текущую» страну для данного цикла следующим образом:

    ${__groovy(vars.get('countries').split()[vars.get('__jm__Loop Controller__idx') as int],)}
    

    enter image description here

0 голосов
/ 07 октября 2019

Вам необходимо использовать квадратные скобки для массива Java при использовании Apache Groovy :

String[] varArray = ["US", "UK"];

Если вы использовали язык сценариев Beanshell / Java, ваш код будет работать

String[] varArray = {"US", "UK"};
...