在接口測試的工作,我們時常需要對參數進行B64編碼。今天我們以聚合數據的“身份證OCR識別”接口,來實現對身份證圖片的B64編碼加密後傳遞。
用到的技術:外部jar包調用和BeanShell 預處理程序
1、添加外部jar包
我們需要用jar是JDK自帶的rt.jar,將rt.jar文件複製到“Jmeter\lib\ext”目錄下;
在測試計劃中添加該jar文件;
2、添加“BeanShell 預處理程序”
在“線程組”上添加“前置處理器”\“BeanShell 預處理程序”;
編寫beanshell腳本;
import java.io.*;
import sun.misc.BASE64Encoder;
public static String test()
{
// 待處理的圖片文件
String img = "D:\\sfzz.jpg";
InputStream i = null;
byte[] data = null;
// 讀取圖片文件字節數組
try {
i = new FileInputStream(img);
data = new byte[i.available()];
i.read(data);
i.close();
}
catch (IOException e){
e.printStackTrace();
}
// 對圖片文件字節數組進行Base64編碼
String res =new sun.misc.BASE64Encoder().encode(data);
//將加密後的圖片文件Base64編碼傳遞給B64file,B64file將作爲http請求被引用的參數
vars.put("B64file",res);
}
test();
3、設置HTTP求請
根據“身份證OCR識別”接口的API要求(詳見:https://www.juhe.cn/docs/api/id/287),其中image的值爲剛纔beanshell中的定義的變量參數;
4、執行查看結果
通過“調試取樣器”我們可以直觀查看到身份證圖片的B64編碼值;
接口調用成功,成功的反饋了身份證上的文字信息。
如有描述不清楚,歡迎留言交流。