我正在使用j meter进行负载测试,我必须通过http请求调用上传Image API并实现此目的,我必须将图像转换为压缩字节数组,以通过http请求将其作为发布数据发送出去。
任何人都可以通过jmeter帮助我如何实现。
非常感谢您的帮助。
答案 0 :(得分:5)
有几种方法可供选择:
您可以使用HTTP Raw Request采样器(可通过JMeter Plugins网站获得),它可让您完全控制发送的内容,方式和位置。
您是否尝试为HTTP请求采样器启用Use multipart/form-data for POST
?这是根据RFC-1867上传文件的方式。
如果您的用例是特定的,并且以上都不适用,则可以始终使用JMeter Scripting扩展。例如,如果您向HTTP请求添加Beanshell Pre Processor,该请求使用以下内容执行文件上载:
FileInputStream in = new FileInputStream("/home/glinius/401.png");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
for (int i; (i = in.read(buffer)) != -1; ) {
bos.write(buffer, 0, i);
}
in.close();
byte[] imageData = bos.toByteArray();
bos.close();
vars.put("imageData", new String(imageData));
您可以在POST请求中添加${imageData}
参数。
答案 1 :(得分:1)
是的,我按照这种方法“将Beanshell预处理器添加到您的HTTP请求中”,并且成功。
对于我的情况,我还添加了一个“HTTP Header Manager”,指定:“Content-Encoding:gzip”,“Content-Type:”application / x-www-form-urlencoded“,”Accept: / ”。 并且,设置字符串编码:vars.put(“binaryData”,new String(binThrift,“ISO-8859-1”));