Переменная Jmeter в теле запроса POST и изменение его перед отправкой запроса - PullRequest
0 голосов
/ 03 июня 2018

У меня есть запрос Post HTTP с телом, в котором есть переменная в XML, эта переменная принимает hostName в качестве переменной, например: 123 @ host

 <Type>myType</Type>
  <FolderPath>Automation</FolderPath>
  <Description />
  <dest>123@host</dest>
  <Notes />

в JSR223 Pre-Processor groovy Мне нравитсяизмените хост на $ {хост}.Я знаю, что должен прочитать тело в строке, а затем изменить его следующим образом:

body = body.replaceAll("host", vars.get("host") );

Как мне прочитать тело в строке, затем изменить тело запроса HTTP, а затем поместить его обратно в тело сообщения HTTPдо отправки запроса?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Функция, которую вы ищете: HTTPSamplerBase.addNonEncodedArgument ()

Пример Groovy код для замены host на соответствующую переменную JMeter будет что-то вроде:

def body = sampler.getArguments().getArgument(0).getValue()
body = body.replaceAll('host',vars.get('host'))
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',body,'')
sampler.setPostBodyRaw(true)
0 голосов
/ 04 июня 2018

Вы находитесь на правильном пути, используя PreProcessor.Затем вы должны поместить эту строку обратно в ту же или новую переменную.

Вы можете вернуть это тело к той же переменной, например так:

vars.put("host",body);

Или вы можете изменить сэмплер, вызвав:

sampler."method"

Вы можете найти все доступные методы по этой ссылке: Методы сэмплера

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...