在我的项目中,我想为JMeter实现一个插件。
所以目前我被困在采样器上-后处理步骤。
@Override
public void postProcessSampler(HTTPSamplerBase sampler, SampleResult result)
{
super.postProcessSampler(sampler, result);
String postData = sampler.getPropertyAsString(HTTPSamplerBase.ARGUMENTS);
// ...
// apply some operations to postData
// ...
//
// try to write it back to sampler : approach1
// sampler.removeProperty(HTTPSamplerBase.ARGUMENTS);
// sampler.addNonEncodedArgument(HTTPSamplerBase.ARGUMENTS, postData, "");
// Fails
}
因此,在后处理步骤中,我想更改请求正文,通常将其存储在HTTPSamplerBase.ARGUMENTS
属性中。但是,以某种方式,我无法对此字段进行任何设置。用另一个字符串重新定义它会给我一个类转换错误。如果我尝试使用字符串进行操作,则会得到调用异常...
所以我的问题是,更改采样器的帖子主体的正确方法是什么?
致谢,谢谢
答案 0 :(得分:1)
请尝试使用HTTPSamplerBase.getArguments() function,示例代码:
sampler.getArguments().removeAllArguments();
sampler.addNonEncodedArgument("foo","bar","");
sampler.setPostBodyRaw(true);
另外请注意,对于这种形式的后期处理,您甚至都不需要提供插件,所有操作都可以通过JSR223 PostProcessor和Groovy语言完成。上面的代码应该可以正常工作