我有一个Post HTTP请求,它的主体在它的XML中有一个变量,这个变量将hostName作为变量,即: 123@host
<Type>myType</Type>
<FolderPath>Automation</FolderPath>
<Description />
<dest>123@host</dest>
<Notes />
在JSR223预处理器groovy中,我喜欢将主机更改为${ host }。我知道我必须读取字符串中的正文,然后像这样更改它:
body = body.replaceAll("host", vars.get("host") );
如何读取字符串中的主体,然后更改HTTP请求主体,然后在发送请求之前将其放回HTTP Post主体中?
发布于 2018-06-04 14:30:39
您要查找的函数是HTTPSamplerBase.addNonEncodedArgument()
将host
替换为相关JMeter Variable的示例Groovy代码如下所示:
def body = sampler.getArguments().getArgument(0).getValue()
body = body.replaceAll('host',vars.get('host'))
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',body,'')
sampler.setPostBodyRaw(true)
发布于 2018-06-04 07:58:57
通过使用PreProcessor,您走上了正确的道路。接下来,您应该将该字符串放回相同或新的变量中。
您可以将该主体放回相同的变量中,如下所示:
vars.put("host",body);
或者,您可以通过调用以下命令来更改采样器:
sampler."method"
您可以在此链接上找到所有可用的方法:Sampler Methods
希望这能有所帮助。
https://stackoverflow.com/questions/50662983
复制相似问题