在我的jmeter测试中,我在HttpRequest步骤之前运行了一个BSF PreProcessor步骤(使用groovy)。我需要在此HttpRequest步骤中发送包含二进制数据的帖子,但我的二进制数据是动态计算的。如何将此二进制数据设置为我的请求的帖子正文?我看到HTTPRequest有从文件做二进制文件的选项。但我不想为每个请求创建一个临时文件。
谢谢,
答案 0 :(得分:2)
从jmeter版本2.6开始,没有办法做到这一点。发布二进制体预期文件输入HttpSampleProxy #setHTTPFiles(HTTPFileArg [] files)。 HTTPFileArg只包含文件系统上真实文件的路径。 UI有一个选项可以将post主体设置为文本,但它使用的是HttpSampleProxy #setArguments(Arguments value)。而Arguments只使用文本体而不是二进制。我不知道如何实例化这个对象。
答案 1 :(得分:0)
我遇到setArgument
的问题,因为它会对内容进行编码。
addNonEncodedArgument
不执行uri编码,但如果已有某些参数,则不会将其设置为正文。
对我来说,无论如何这都有效:
if(((HTTPSamplerProxy)sampler).getArguments()==null){
((HTTPSamplerProxy)sampler).addNonEncodedArgument("body", body, "");
}else{
((HTTPSamplerProxy)sampler).getArguments().getArgument(0).setValue(body);
}