操作系统:Windows
jmeter版本:5.1.1
说明:这个项目需要对图片进行base64加密发送请求
1、自己使用eclipse编写一个base64的加密代码(可以找开发或百度),导出为 jar 包,本人只是加密图片,代码如下:
package com.mytest.functions; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import sun.misc.BASE64Encoder; public class Base64Test { // 图片转化成base64字符串 public static String GetImageStr(String file) { // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 String imgFile = file; // 待处理的图片 InputStream in = null; byte[] data = null; // 读取图片字节数组 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e){ e.printStackTrace(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data);// 返回Base64编码过的字节数组字符串 } public String GetData(String file) { // windows平台需要转换‘’该转义符 String filedata = file.replaceAll("%2F%2F", "%2F"); // 因编码出来不是在一行上,所以需要处理掉换行符 String data = GetImageStr(filedata).replaceAll(" | ", ""); return data; } }
2、在jmeter的lib目录新建一个文件夹myjar,把导出的jar包放进去,然后进入bin目录里,找到jmeter.properties文件,用文本编辑器打开。
添加以下路径,点击保存
3、启动jmeter
4、添加一个线程组,在后置处理器里,添加BeanShell后置处理程序,编写以下代码:
import com.mytest.functions.*; // 导入的包名 Base64Test da = new Base64Test(); // 新建一个对象 String data = da.GetData("${filepath}"); // fiepath是图片路径,使用csv数据文件导入 vars.put("base64image", data); // base64image 是被引用的参数
注意:
使用CSV 数据文件设置读取图片数据,读取路径格式为:(因Windows平台问题)
5、添加一个http请求,引用加密参数
5、添加一个--查看结果树,点击运行,查看结果树,即可在请求中加密成功。
6、搞定。