jmeter二次开发函数-生成身份证号

代码参考这个
java 随机生成身份证代码

Java的身份证号码工具类

pom文件添加

xml 复制代码
 <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>5.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>5.6.2</version>
        </dependency>

创建

java 复制代码
import com.saic.ptest.sign.IdCardGenerator;
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 java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class IdCardGeneratorFunction extends AbstractFunction {
    private static final List<String> desc = new ArrayList();

    //定义函数参数列表
    @Override
    public List<String> getArgumentDesc() {
        return desc;
    }

    //用来接收、处理用户调用函数时所传入的参数值
    @Override
    public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
        this.checkParameterCount(parameters, 0, 0);

    }

    //函数的执行主体,执行具体的业务逻辑、功能
    @Override
    public String execute(SampleResult sampleResult, Sampler sampler)  {
        IdCardGenerator idCardGenerator = new IdCardGenerator();
        return idCardGenerator.generate(); //把执行结构返回给用户
    }

    //要调用的函数名称
    @Override
    public String getReferenceKey() {
        String key = "__IdCardGenerator";
        return key ;
    }
}

打成包,放到jmeter的/lib/ext路径下

效果演示

参考的是/lib/ext路径下的

ApacheJMeter_functions.jar反编译后的文件--uuid

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

import com.google.auto.service.AutoService;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;

@AutoService({Function.class})
public class Uuid extends AbstractFunction {
   private static final List<String> desc = new ArrayList();
   private static final String KEY = "__UUID";

   public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
      return UUID.randomUUID().toString();
   }

   public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
      this.checkParameterCount(parameters, 0, 0);
   }

   public String getReferenceKey() {
      return "__UUID";
   }

   public List<String> getArgumentDesc() {
      return desc;
   }
}
相关推荐
小钱c72 小时前
Mac下安装Apache JMeter并启动
jmeter·macos·apache
古人诚不我欺6 小时前
jmeter常用配置元件介绍总结之函数助手
jmeter
川石课堂软件测试6 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
古人诚不我欺6 小时前
jmeter常用配置元件介绍总结之取样器
jmeter
十叶知秋6 小时前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
我非夏日6 小时前
JMeter基础篇
jmeter
茶馆大橘15 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
土小帽软件测试21 小时前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
土小帽软件测试1 天前
jmeter基础03_汉化jmeter界面
测试工具·jmeter·软件测试学习
紫晓宁1 天前
jmeter结合ansible分布式压测--3压测执行
分布式·jmeter·ansible