我有一个发布HTTP请求,其主体中有一个变量&XML;此变量将hostName作为变量,即:123 @ host
<Type>myType</Type>
<FolderPath>Automation</FolderPath>
<Description />
<dest>123@host</dest>
<Notes />
在JSR223预处理器中我喜欢将主机更改为$ {host}。我知道我必须用字符串读取正文然后改变它:
body = body.replaceAll("host", vars.get("host") );
如何在字符串中读取正文然后更改HTTP请求正文,然后在发送请求之前将其放回HTTP Post正文中?
答案 0 :(得分:0)
通过使用预处理器,您走在正确的轨道上。接下来,您应该将该字符串放回相同或新变量中。
您可以将该主体放回同一个变量:
vars.put("host",body);
或者您可以通过调用以下方式更改采样器:
sampler."method"
您可以在此链接上找到所有可用的方法: Sampler Methods
希望这有帮助。
答案 1 :(得分:0)
您正在寻找的功能是HTTPSamplerBase.addNonEncodedArgument()
使用相关Groovy替换host
的示例JMeter Variable代码如下:
def body = sampler.getArguments().getArgument(0).getValue()
body = body.replaceAll('host',vars.get('host'))
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',body,'')
sampler.setPostBodyRaw(true)