JMeter中JSR223预处理器替换请求Body值失败问题求助
JMeter JSR223 PreProcessor 请求Body替换失效问题
你的代码存在两处关键问题,导致替换不生效:
- 语法错误:代码末尾多了一个多余的
},正确的replace调用应该是body.replace("${date}", date) - 字符串不可变特性忽略:Java/Groovy中的String是不可变类型,
replace()方法不会修改原body变量,而是返回一个新的字符串对象。你没有将替换后的结果重新设置回请求采样器,所以原始Body不会被更新。
正确的实现代码应该是这样:
// 获取当前采样器的原始请求Body def originalBody = sampler.getBodyAsString() // 执行替换操作,接收返回的新字符串 def updatedBody = originalBody.replace("${date}", date) // 将修改后的Body重新设置到采样器中 sampler.setBody(updatedBody)
额外注意点:
- 确保
date变量已经被正确初始化并赋予了预期值 - 这个JSR223 PreProcessor必须直接关联到需要修改Body的HTTP请求采样器上,否则不会对目标请求生效
内容的提问来源于stack exchange,提问作者Andreas Panteli
相关产品推荐
相关产品推荐

