我有一小段Java代码,我必须将其合并到Jmeter中以将图像转换为base64。
File f = new File("C:/Users/SETU BASAK/Desktop/a.jpg");
String encodstring = encodeFileToBase64Binary(f);
System.out.println(encodstring);
}
private static String encodeFileToBase64Binary(File file){
String encodedfile = null;
try {
FileInputStream fileInputStreamReader = new FileInputStream(file);
byte[] bytes = new byte[(int)file.length()];
fileInputStreamReader.read(bytes);
encodedfile = Base64.encodeBase64(bytes).toString();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return encodedfile;
}
将您的文件构建为jar文件并放在apache-jmeter包中的lib文件夹中。然后在脚本中添加BeanShell Sampler并为您的类添加对象,并在方法内传递您的文件以获取base64值
在BeanShell Sampler中,对于ex,您的类名是Base64Conv的意思
import com.package.converter;
Base64Conv converter=new Base64Conv();
String imageBase64=converter.encodeFileToBase64Binary(new File("path to your file"));
然后在需要的地方使用$ {imageBase64}
建议使用JMeter内置的test elements或functions或plugins,这样你将获得最大的性能和最少的资源消耗,因此你可以考虑使用__FileToString()和__base64Encode()函数组合,如:
${__base64Encode(${__FileToString(c:/Users/SETU BASAK/Desktop/a.jpg,,)},)}
您可以使用__base64Encode()
安装JMeter Plugins Manager和其他自定义函数
如果您仍想考虑使用JSR223 Test Elements and Groovy language编写脚本,相关代码将类似于:
new File("C:/Users/SETU BASAK/Desktop/a.jpg").getBytes().encodeBase64().toString()
这两种方法应该产生相同的Base64字符串: