需要通过jmeter中的Webservice发送字节数组

时间:2014-06-10 13:40:33

标签: web-services bytearray jmeter

我应该将图像转换为数组字节,并将其与目标位置一起发送到 Webservice 中。 我有这个用beanshell编写的代码

File file = new File("\\PICS\\k6.jpg"); 
FileInputStream in = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int i=0;
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));

我正面对这个错误 - 在文档的元素内容中找到了无效的XML字符(Unicode:0x0)。

变量" imageData"似乎是ASCII,但如何与请求一起发送。我需要数组对象

1 个答案:

答案 0 :(得分:2)

尝试将以下行添加到脚本顶部:

import org.apache.commons.lang.StringEscapeUtils;

并将最后一行更改为如下所示:

vars.put("imageData", StringEscapeUtils.escapeXml(new String(imageData)));

UPD:端到端代码

import org.apache.commons.lang.StringEscapeUtils;

File file = new File("/home/glinius/test.html");
FileInputStream in = new FileInputStream(file);
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", StringEscapeUtils.escapeXml(new String(imageData)));