У меня есть простой контроллер цикла и внутри него элемент конфигурации Counter и семплер JSR223 с кодом Groovy. Мой счетчик настроен на начало с 0, увеличение на 1 до максимального значения 3 и установлен на переменную с именем «idx».
В моем семплере JSR223 я регистрирую значение idx с помощью log.info(${idx});
- он всегда печатает значение первой итерации (в моем случае 0) для каждой итерации цикла.
Я отключил этот сэмплер JSR223 и добавил сэмплер BeanShell, выполнив тот же оператор журнала, log.info(${idx});
, и он правильно увеличивается - я получаю значения 0, 1, 2 для итерации.
Мне нужно взять JSON, сопоставить их с объектами, немного настроить, а затем снова сопоставить их с JSON. Существуют классы JSONParser, JSONObject и JSONArray, которые, похоже, работают в семплере BeanShell, но мне гораздо удобнее классы Groovy JsonSlurper и JsonBuilder, и я бы предпочел их использовать.
Все эти шаги находятся в тестовом фрагменте, если это имеет значение. У кого-нибудь есть идеи? Это ошибка?
Вау, у меня это сработало. Спасибо!
Никогда ссылается на Функция или переменные JMeter непосредственно в скриптах, либо используйте для этого раздел «Параметры», например:
Или используйте сокращение vars
, которое обозначает экземпляр класса JMeterVariables, например:
log.info(vars.get('idx'))
Причины в:
См. Статью Apache Groovy - зачем и как его использовать для получения дополнительной информации об использовании сценариев Groovy с Элементы JSR223 в тестах JMeter.
Какую версию Jmeter вы используете? ты пробовал использовать это с Groovy?
String x = vars.get("idx"); log.info(x);
у меня работает нормально.