千家信息网

jmeter怎么添加自定义扩展函数实现图片base64编码

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇"jmeter怎么添加自定义扩展函数实现图片base64编码"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获
千家信息网最后更新 2026年11月02日jmeter怎么添加自定义扩展函数实现图片base64编码

这篇"jmeter怎么添加自定义扩展函数实现图片base64编码"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"jmeter怎么添加自定义扩展函数实现图片base64编码"文章吧。

打开eclipse,新建maven工程,在pom中引入jmeter核心jar包:

    org.apache.jmeter    ApacheJMeter_core    3.2    org.apache.jmeter    ApacheJMeter_functions    3.2

1. 新建一个包com.mytest.functions,包名要包含functions,因为jmeter.properties对这块有配置,可见该文件的classfinder.functions.contain=.functions.

2. 在该包下新建一个类并继承AbstractFunction,重写该类的所有方法,具体如下:

package com.mytest.functions;import java.io.FileInputStream;import java.io.InputStream;import java.util.Collection;import java.util.LinkedList;import java.util.List;import org.apache.jmeter.engine.util.CompoundVariable;import org.apache.jmeter.functions.AbstractFunction;import org.apache.jmeter.functions.InvalidVariableException;import org.apache.jmeter.samplers.SampleResult;import org.apache.jmeter.samplers.Sampler;import org.apache.jmeter.threads.JMeterVariables;import sun.misc.BASE64Encoder;public class MyBase64 extends AbstractFunction{    //自定义function的描述    private static final List desc = new LinkedList();    static {        desc.add("图片路径");    }        desc.add("图片base64后存放变量");    private static final String KEY = "__MyBase64";       //存放传入参数的值的变量    private Object[] values;        //描述参数    public List getArgumentDesc() {        // TODO Auto-generated method stub        return desc;    @Override    //函数的执行    public synchronized String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {        JMeterVariables localJMeterVariables = getVariables();        String str1 = ((CompoundVariable)this.values[0]).execute();        String str2 = getImgBase64(str1);        if ((localJMeterVariables != null) && (this.values.length > 1)) {          String str3 = ((CompoundVariable)this.values[1]).execute().trim();          localJMeterVariables.put(str3, str2);        }        return str2;    public String getReferenceKey() {        //提供jmeter函数助手显示的名称        return KEY;    public synchronized void setParameters(Collection arg0) throws InvalidVariableException {        //检查参数的个数,支持的方法有2个,具体用法参加api:        /**         * protected void checkParameterCount(Collection parameters,                                   int count)                            throws InvalidVariableException            Utility method to check parameter counts.            Parameters:            parameters - collection of parameters            count - number of parameters expected         * */        //-----------------         *                                    int min,                                   int max)            min - minimum number of parameters allowed            max - maximum number of parameters allowed        //checkParameterCount(arg0, 1);        checkParameterCount(arg0, 1, 2);        //将参数值存入变量中        this.values = arg0.toArray();    public String getImgBase64(String filePath) {        InputStream in = null;        byte[] data = null;        String result = null;        try {            in = new FileInputStream(filePath);            data = new byte[in.available()];            in.read(data);            in.close();            BASE64Encoder encoder = new BASE64Encoder();            result = encoder.encode(data);        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();                            return result;}

3. 由于我写的类没有依赖第三方jar包,引入的jmeter核心包都是jmeter自带的,所以直接导出上面的类为一个jar包,并把这个jar放在jmeter安装目录的apache-jmeter-3.2\lib\ext下面

4. 重启jmeter,打开函数助手,可看见如下图:

5. 下面我们测试一下这个函数是否能使用,新建一个http请求,在post请求里分别添加${__MyBase64(D:\\aa.jpg,imgresult)}和${imgresult}如下图,注意${__MyBase64(D:\\aa.jpg,imgresult)}一定要在上面

6. 运行后可以看到已经成功

以上就是关于"jmeter怎么添加自定义扩展函数实现图片base64编码"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

函数 图片 内容 参数 编码 变量 助手 文章 方法 核心 知识 篇文章 成功 个数 价值 名称 大部分 就是 工程 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东特亿宝互联网科技有限公司 互联网科技工作委员会毛军 美国互联网保险保险科技 互联网巨头反垄断金融科技 金诺互联网科技 凡科互联网科技 云电互联网科技 互联网金融科技平台 互联网科技公司有哪些 人人互联网科技是培训 顺网科技2021年互联网排名 海南科技产业互联网平台 互联网教育科技公司vipkid 福州新华互联网科技学校 知乎 阿大互联网科技有限公司 南京一网一红互联网科技有限公司 九思连强互联网电子科技有限公司 抖集互联网科技技术咨询 同城互联网络科技 上海旺乐尼互联网科技有限公司 江苏根荣互联网科技 互联网科技金融 亿策互联网科技 腾讯科技 互联网女皇 伴你行互联网科技有限公司 科技互联网创业计划书 崇明区互联网教育科技售后服务 互联网科技人工智能实验室 中国互联网有什么科技 互联网科技平台产品运营
0