как я могу сохранить возврат JsonExtractor в массиве после каждого http-запроса в Jmeter?

#javascript #java #jmeter #beanshell #jmeter-5.0

#javascript #java #jmeter #beanshell #jmeter-5.0

Вопрос:

У меня есть JsonExtractor, который принимает значение, возвращаемое в «requestprotocolId», я использую его в следующей группе потоков, потому что это значение передается в следующем запросе API, но когда я делаю, например, 50 запросов, он вернет 50 «requestProtocolId», но они не вернут все сразу, это будет по одному на запрос, поэтому я хочу, чтобы значение, возвращаемое в этом поле, сохранялось в массиве при каждом запросе, и когда я завершу группу потоков и перейду к следующему, я могу использовать все эти «requestProtocolId» в следующем запросе, по одному за раз. Возможно ли это?

Ответ №1:

  1. Следующий запрос не обязательно должен находиться в «следующей группе потоков», он может быть в той же группе потоков, таким образом, вам не придется преобразовывать переменные JMeter (которые являются локальными для потоков) в свойства JMeter или использовать плагин межпотоковой связи
  2. Если вы хотите собрать 50 «requestprotocolId» из 50 отдельных запросов в некоторую форму массива — это можно сделать с помощью постпроцессора JSR223, взгляните на следующие материалы:

Комментарии:

1. vars.get(«${requestProtocolId}»); def protocolArray = [] как строка[10] для (i=0; i <= protocolArray.length; i ){protocolArray[i]= «${requestProtocolId}»; } ОШИБКА o.a.j.e.JSR223PostProcessor: проблема в скрипте JSR223, постпроцессор JSR223 javax.script.ScriptException: groovy.lang.missingmethod Исключение: нет подписи метода: java.lang. String.call() применим для типов аргументов: (ArrayList) значения: [[10]] Возможные решения: wait(), any(), wait(long), any(groovy.lang. Закрытие), коснитесь (groovy.lang. Закрытие), take(int) ************* обращается к циклу «for», но выдает эту ошибку.