在接口测试的工作,我们时常需要对参数进行B64编码。今天我们以聚合数据的“身份证OCR识别”接口,来实现对身份证图片的B64编码加密后传递。
使用此接口之前,需要在聚合平台进行注册,下单申请接口,大多数接口都有免费次数,非常方便大家学习接口测试。
** 聚合数据地址 **
https://www.juhe.cn/
用到的技术:外部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编码值;
接口调用成功,成功的反馈了身份证上的文字信息。
如有描述不清楚,欢迎留言交流。