首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在POST请求体中的Jmeter变量,并在发送发送请求之前更改该变量

在POST请求体中的Jmeter变量,并在发送发送请求之前更改该变量
EN

Stack Overflow用户
提问于 2018-06-03 11:16:06
回答 2查看 1.7K关注 0票数 3

我有一个Post HTTP请求,它的主体在它的XML中有一个变量,这个变量将hostName作为变量,即: 123@host

代码语言:javascript
复制
 <Type>myType</Type>
  <FolderPath>Automation</FolderPath>
  <Description />
  <dest>123@host</dest>
  <Notes />

在JSR223预处理器groovy中,我喜欢将主机更改为${ host }。我知道我必须读取字符串中的正文,然后像这样更改它:

代码语言:javascript
复制
body = body.replaceAll("host", vars.get("host") );

如何读取字符串中的主体,然后更改HTTP请求主体,然后在发送请求之前将其放回HTTP Post主体中?

EN

回答 2

Stack Overflow用户

发布于 2018-06-04 14:30:39

您要查找的函数是HTTPSamplerBase.addNonEncodedArgument()

host替换为相关JMeter Variable的示例Groovy代码如下所示:

代码语言:javascript
复制
def body = sampler.getArguments().getArgument(0).getValue()
body = body.replaceAll('host',vars.get('host'))
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',body,'')
sampler.setPostBodyRaw(true)
票数 2
EN

Stack Overflow用户

发布于 2018-06-04 07:58:57

通过使用PreProcessor,您走上了正确的道路。接下来,您应该将该字符串放回相同或新的变量中。

您可以将该主体放回相同的变量中,如下所示:

代码语言:javascript
复制
vars.put("host",body);

或者,您可以通过调用以下命令来更改采样器:

代码语言:javascript
复制
sampler."method"

您可以在此链接上找到所有可用的方法:Sampler Methods

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50662983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档