Jmeter接口测试文件上传(一):对上传文件实现B64编码

在接口测试的工作,我们时常需要对参数进行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编码值;
在这里插入图片描述
接口调用成功,成功的反馈了身份证上的文字信息。

在这里插入图片描述
如有描述不清楚,欢迎留言交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章