在BSF预处理器修改请求后,jmeter发送空的http POST正文数据
有人知道为什么在我修改请求主体后jmeter会传递空帖子吗 我有一个在正文中包含大量JSON的请求(不幸的是,我不能用它粘贴图像) 我已将BSF预处理器附加到此请求:在BSF预处理器修改请求后,jmeter发送空的http POST正文数据,post,request,jmeter,beanshell,Post,Request,Jmeter,Beanshell,有人知道为什么在我修改请求主体后jmeter会传递空帖子吗 我有一个在正文中包含大量JSON的请求(不幸的是,我不能用它粘贴图像) 我已将BSF预处理器附加到此请求: import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.jmeter.config.Argument; import org.apache.jmeter.config.Arguments; import org.apache
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.jmeter.config.Argument;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.protocol.http.sampler.HTTPSampler;
Sampler sampler = ctx.getCurrentSampler();
String param = sampler.getArguments().toString();
String replacerMCI = vars.get("vMainCaseId");
Pattern r = Pattern.compile("(?<=mainCaseId\":\")(\\d{2,})");
Matcher m = r.matcher(param);
String paramRep = m.replaceAll(replacerMCI);
Argument arg = new Argument("", paramRep);
Arguments argList = new Arguments();
argList.addArgument(arg);
sampler.setArguments(argList);
代码看起来不错,只需删除以下行:
Sampler sampler = ctx.getCurrentSampler();
作为
sampler
,它是父sampler的缩写,我想这是您的情况如果您使用的是BSF语言,则可以添加
debug()代码>行在测试开始时,Beanshell解释器将把调试信息打印到STDOUTHi-Dmitri!谢谢你的提示。我稍微改变了一下实现。现在我直接使用HTTPArgument,帖子正在发送中,但是。。。我发现了另一个问题。1.邮件在请求正文开头以等号发送。有没有办法从邮件中删除此等号?POST看起来是这样的:={data:;…}您可以将其作为arg.setValue(arg.getValue().replaceFirst(“\\=”,”)删除代码>万岁!;-)这么简单。谢谢你的帮助。不幸的是,我不能给予荣誉,因为我没有足够的声望点数。
Sampler sampler = ctx.getCurrentSampler();