Jmeter函数组件开发

简介: 插件开发方法有两种: 一、在jmeter官网下载jmeter源码,在源码里面新加函数,然后导出jar; 二、不下载源码,直接导入jmeter相应的jar包,即可开发。(推荐)   下面介绍第二种开发方法: 在eclipse新建项目,导入jmeter目录下\lib\ext目录中的的ApacheJMeter_core.jar,继承AbstractFunction类。

插件开发方法有两种:

一、在jmeter官网下载jmeter源码,在源码里面新加函数,然后导出jar;

二、不下载源码,直接导入jmeter相应的jar包,即可开发。(推荐)

  下面介绍第二种开发方法:

在eclipse新建项目,导入jmeter目录下\lib\ext目录中的的ApacheJMeter_core.jar,继承AbstractFunction类。

案例:以下写一个计算阶乘的Function,将其命名为Factorial,主要代码参考如下,

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.util.JMeterUtils;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;

public class Factorial extends AbstractFunction {

    private static final Logger log = LoggingManager.getLoggerForClass();
    private static final List<String> desc = new LinkedList<String>();
    private static final String KEY = "__factorial";
    private Object[] values = null;

    static {
        desc.add("factorial_value");
    }
    //描述参数
    @Override
    public List<String> getArgumentDesc() {
        // TODO Auto-generated method stub
        return desc;
    }
    //函数执行,返回结果
    @Override
    public String execute(SampleResult previousResult, Sampler currentSampler)
            throws InvalidVariableException {
        // TODO Auto-generated method stub
        String numberString = ((CompoundVariable) values[0]).execute().trim();
        int num;
        try{
            num = Integer.valueOf(numberString);
        } catch (Exception e){
            return null;
        }

        return String.valueOf(factorial(num));
    }
    //获取函数引用关键字
    @Override
    public String getReferenceKey() {
        // TODO Auto-generated method stub
        return KEY;
    }
    //设置参数
    @Override
    public void setParameters(Collection<CompoundVariable> parameters)
            throws InvalidVariableException {
        // TODO Auto-generated method stub
        //可以检查参数数量,主要包括以下两种方法
        checkMinParameterCount(parameters, 1);
        checkParameterCount(parameters, 1, 1);
        values = parameters.toArray();
    }

    private int factorial(int num){
        int result = 1;
        if(num < 0){
            return -1;
        }
        if(num == 0){
            result = 1;
        } else {
            for(int i = num; i > 0; i--){
                result *= i;
            }
        }

        return result;
    }
}

通过继承AbstractFunction抽象类,重写getArgumentDesc方法实现对函数参数的描述,重写setParameters方法来对函数的参数进行检查和设置,重写getReferenceKey方法告诉JMeter该函数在框架中的引用名称,重写execute方法,实现对该函数的执行并返回结果。通过上述代码我们完成了对Factorial函数组件的编写。 
将代码导出为jar文件,放在\lib\ext目录中,打开jmeter即可在函数助手中查看到该函数组件: 


img_42a4adae4716d0e15c3eeaabfd040044.png

注:转载需注明出处及作者。

流柯      

目录
相关文章
|
消息中间件 Java 测试技术
性能工具之Jmeter扩展函数及压测ActiveMQ实践
【5月更文挑战第18天】性能工具之Jmeter扩展函数及压测ActiveMQ实践
224 5
新版jmeter函数助手不在选项菜单下-在工具栏中
了解新版jmeter函数助手不在选项菜单下-在工具栏中。
165 0
新版jmeter函数助手不在选项菜单下-在工具栏中
jmeter函数助手对话框 随机数、字符和时间戳,判断变量是否存在
jmeter函数助手对话框 随机数、字符和时间戳,判断变量是否存在
|
存储
JMeter入门教程(10) --函数助手
一些常用的函数助手的介绍
310 0
JMeter入门教程(10) --函数助手
JMeter5.3 及以后的版本jmeter函数助手生成的字符在置灰无法复制
学习JMeter5.3 及以后的版本jmeter函数助手生成的字符在置灰无法复制。
729 0
JMeter5.3 及以后的版本jmeter函数助手生成的字符在置灰无法复制
|
数据安全/隐私保护
Jmeter系列(46)- Jmeter 中有哪些常用的函数
Jmeter系列(46)- Jmeter 中有哪些常用的函数
205 0
|
2月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
433 0
|
28天前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
439 10
|
1月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
268 0