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这个函数在列。

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

相关推荐
zfj3219 小时前
学英语学压测:08 jmeter html测试报告&测试报告的3种生成方式
jmeter·压力测试·测试报告·生成报告3种方式·html report
测试老哥1 天前
Jmeter实战:编写博客标签模块增删改查自动化脚本和压测
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
灞波儿奔、和奔波儿灞1 天前
Jmeter-性能测试
jmeter
cmgdxrz2 天前
性能测试05|JMeter:分布式、报告、并发数计算、性能监控
分布式·jmeter
记录测试点滴2 天前
【JMeter】配置元件Config Element
数据库·jmeter
cmgdxrz2 天前
性能测试04|JMeter:连接数据库、逻辑控制器、定时器
jmeter
zfj3212 天前
JMeter线程组Duration和循环次数设置冲突后,Duration优先级高
jmeter·duration·循环次数·线程组·持续时间
小大力2 天前
简单的jmeter数据请求学习
java·学习·jmeter
测试者家园3 天前
JMeter + Grafana +InfluxDB性能监控 (二)
自动化测试·软件测试·jmeter·性能测试·grafana·性能监控·质量效能
讓丄帝愛伱3 天前
使用JMeter对Linux生产服务器进行压力测试
linux·jmeter·压力测试