Java функция внутри __ groovy выполняется, но результат не присваивается переменной - PullRequest
2 голосов
/ 07 января 2020

Я новичок в Jmeter. Я выполняю функцию java, которая шифрует данные, и я пытаюсь назначить вывод функции в моем теле запроса Http. Функция выполняется, и я вижу ответ в консоли jmeter, но значение по какой-то причине не присваивается. Вот что я пробовал до сих пор: -

  "key":  "${__groovy(new com.util.EncUtil().encrypt(),)}"

Функция шифрования в классе EncUtil шифрует необходимые данные и возвращает результат. Я хочу присвоить это возвращаемое значение в моем запросе Dynami c Http. Что я должен изменить?

1 Ответ

2 голосов
/ 07 января 2020

Если вы посмотрите в Function Helper Dialog , вы увидите, что функция __ groovy () имеет 2 параметра:

  1. Groovy скрипт для запуска
  2. Имя переменной для хранения результата

enter image description here

Таким образом, вы можете изменить свою функцию так:

${__groovy(new com.util.EncUtil().encrypt(),encryptedValue)}

Альтернативным вариантом является использование vars сокращения

${__groovy(vars.put('encryptedValue'\, new com.util.EncUtil().encrypt() as String),)}

vars означает JMeterVariables экземпляр класса, который обеспечивает доступ для чтения / записи ко всем переменным JMeter в контекст потока, посмотрите Top 8 JMeter Java Классы, которые вы должны использовать с Groovy статьей, чтобы узнать больше об этом и других JMeter API ярлыках, доступных для JSR223 Test Элементы и __ groovy () работают.


В обоих случаях вы сможете ссылаться на сгенерированное значение как ${encryptedValue} позже, где это необходимо.

...