如何在jmeter中将二进制post体设置为HTTPSamplerProxy?

时间:2012-03-23 21:35:01

标签: jmeter

在我的jmeter测试中,我在HttpRequest步骤之前运行了一个BSF PreProcessor步骤(使用groovy)。我需要在此HttpRequest步骤中发送包含二进制数据的帖子,但我的二进制数据是动态计算的。如何将此二进制数据设置为我的请求的帖子正文?我看到HTTPRequest有从文件做二进制文件的选项。但我不想为每个请求创建一个临时文件。

谢谢,

2 个答案:

答案 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);
    }