操作系統: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("\r|\n", ""); 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、搞定。