Как я могу объединить несколько переменных массивов? - PullRequest
0 голосов
/ 10 октября 2018

У меня есть контроллер ForEach, где я вызываю конечную точку, чтобы вернуть список переменных guid (например, inspeId).Я храню их с помощью JSON Extractor (JSONPath) в 1 переменную - inspeIds.Поскольку существует несколько значений, в конечном итоге создается массив, который отлично работает, когда я использую их по цепочке на другом контроллере.Из-за требования рабочего процесса мне нужно объединить все экземпляры инспекционного идентификатора и затем перейти к следующему контроллеру.Но поскольку массив создается внутри контроллера ForEach, он переопределяется на каждой итерации этого контроллера.Итак, я получаю последний результат от контроллера.

Я безуспешно изучил Groovy и BeanShell Processor, поэтому прошу вашей помощи.

Вот несколькоснимки экрана -

JSON Extractor для инспекционного идентификатора

Результаты отладки переменной

1 Ответ

0 голосов
/ 10 октября 2018

Скорее всего, вы поместили свой JSON Extractor в неправильное место, в соответствии с Правилами JMeter Scoping

  1. Если у вас есть JSON Extractor в детстве сэмпла, который возвращает ваш inspectionIds - он будет применен только к этому сэмплеру

    JMeter Scoping Rules - child

    В вышеуказанной настройке применяется только JSON Extractorна Sampler 1

  2. Если у вас есть JSON Extractor на том же уровне , что и запрос, который возвращает ваш inspectionId - он будет применен к этому и любому другомуСэмплер в своем объеме (того же уровня или ниже)

    JMeter Scoping Rules

    В приведенной выше настройке JSON Extractor применяется к Sampler 1 и Sampler 2.Любые переменные JMeter , созданные в результате работы сэмплера 1, будут перезаписаны сэмплером 2. То же самое относится к Debug Sampler , если вы используете его для своего "Тестовый элемент «Переменная отладка»

...