jmeter自定义函数

jmeter本身带有很多内带的函数,功能很强大,但是更强大的是,jmeter还可以扩展,让用户自定义函数。

下面来看下自定义函数是怎么做的。

需要在org.apache.jmeter.functions包中,添加我们的自定义函数,函数模板如下:

java 复制代码
package org.fast.jmeter.functions;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;


public class myFunction extends AbstractFunction{

    @Override
    public String execute(SampleResult result, Sampler sampler) throws InvalidVariableException{
      return "jmeter函数";
    }

    @Override
    public void setParameters(Collection<CompoundVariable> collection) throws InvalidVariableException{
       checkParameterCount(collection,0,0);
    }

    @Override
    public String getReferenceKey()
    {
        return "__NewFunction";
    }

    @Override
    public List<String> getArgumentDesc()
    {
        return desc;
    }

}

对以上代码按照自己的需求重构并打成jar包

java 复制代码
package org.fast.jmeter.functions;

import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableFunction;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sample;
import org.fast.jmeter.functions.RandomString;

import java.util.LinkedList;
import java.util.Collection;
import java.util.List;

@SuppressWarnings("unchecked")
public class RandomMail extends AbstractFunction{

   @Override
   public String execute(SampleResult result, Sampler sample) throws InvalidVariableException{
     ...
   }
 
   @Override
   public void setParameters(Collection<CompoundVariable> collection) throws InvalidVariableException{
     checkParameterCount(collection,0,0);
   }

   @Override
   public String getReferencKey()
   {
       return "__NewFunction";
   }

   public String getArgumentDesc()
   {
       return new LinkedList();
   }

接下来把打包好的jar包放到${jmeter_home}/lib/ext目录下,重启jmeter,打开函数助手,可以看到有RandomMail这个函数在列。

这样自定义函数就做好了。

相关推荐
颜挺锐16 分钟前
在 JMeter 中,将日期字符串(如 2025-06-07 00:00:00)转换为时间戳(毫秒级),可以使用以下两种方法
jmeter
财神爷首席大弟子20 小时前
jmeter做跨线程组
jmeter
程序媛_1 天前
【JMeter】跨线程组传递参数
jmeter
测试杂货铺8 天前
Jmeter(六):json断言元件,jmeter参数化实现
jmeter·json
Moshow郑锴19 天前
JMeter API 并发性能测试计划JMX文件解析
jmeter
qq_49244844620 天前
java项目打包成jar包,并给jmeter使用
java·jmeter·jar
kanyun12320 天前
Jmeter使用过程中的一些总结
jmeter
無_爲20 天前
JavaEE:使用JMeter进行接口并发测试
java·jmeter·java-ee
cllsse22 天前
jmeter学习
jmeter
明月与玄武22 天前
JMeter 高阶玩法:分布式压测的技术核心技术要点
jmeter·分布式压测