Rest 如何将文件字节包含到Jmeter中的POST请求正文中?(使用什么编码)
我必须执行来自Jmeter的POST请求。我使用默认的HTTPRequest采样器,其中我指定测试应用程序可以理解的JSON结构。JSON的一部分必须包含来自pdf文件的二进制数据 为了读取文件,我在设置线程组中使用BeanShellSampler:Rest 如何将文件字节包含到Jmeter中的POST请求正文中?(使用什么编码),rest,jmeter,Rest,Jmeter,我必须执行来自Jmeter的POST请求。我使用默认的HTTPRequest采样器,其中我指定测试应用程序可以理解的JSON结构。JSON的一部分必须包含来自pdf文件的二进制数据 为了读取文件,我在设置线程组中使用BeanShellSampler: File file = new File(bsh.args[0]); try { FileInputStream fis = new FileInputStream(file); byte[] array = new byte[(
File file = new File(bsh.args[0]);
try {
FileInputStream fis = new FileInputStream(file);
byte[] array = new byte[(int)file.length()];
log.info("String is read.");
fis.read(array);
vars.put("fileEntity", new String(array, "cp1252"));
} catch (e) {
e.printStackTrace();
log.error(e.getMessage());
}
问题是,当我用Fiddler查看请求时,我看到了差异,二进制对象与Postman的请求相比是如何表示的:
我认为在BeanShellSampler中创建String对象时,编码有问题。什么编码是正确的
我尝试使用RawDataSource插件,但由于以下两个原因无效:
我的期望是你的
fis.read(数组)代码>函数依赖于默认值,默认值可以是或不是cp1252
我建议引入并明确指定编码,如:
InputStreamReader isr = new InputStreamReader(fis,"cp1252");
还要注意,对于脚本编写,主要是因为根据我最近的调查,PDF文件不能表示为字符串变量,不是吗?