栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-09-30

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-09-30

Jmeter自定义函数开发
二次开发背景:

在Jmeter的函数助手里,有很多内置的函数,比如Random、UUID、time等等。使用这些函数可以快速帮我们生成某些数据,进行一些逻辑处理。用起来非常的方便。但是在实际接口测试过程中,有很多的需求,Jmeter内置的函数可能并不能满足我们的需求。这个时候我们可以通过自己编写代码,扩展Jmeter的内置函数。

接下来,主要讲解如何用Java语言,配合idea 二次开发Jmeter 函数

简单将步骤过程: 创建maven项目 —> pom依赖配置—>注意实现规则—>代码实现—>打jar包—>放到jmeter目录(lib/ext)—>玩耍

1.首先,使用idea,新建maven工程,如下图,创建出一个maven工程

2.配置pom.xml依赖,配置以后,会有报错,不要着急(复制注意版本,下方截图有说明)


    
        org.apache.jmeter
        ApacheJMeter_core
        5.1.1
    
    
        org.apache.jmeter
        ApacheJMeter_java
        5.1.1
    

3.配置项目的maven版本以及指定setting文件,和本地maven仓库
3.1 点击 file–Settings–输入框搜索maven,如下图看到这个页面,最后点击ok

3.2 配置好了以后,下载maven依赖

4.创建package,实现扩展jmeterfunction,主要有两点:

4.1.实现function的类的package声明必须包含".functions"

4.2.需要继承org.apache.jmeter.functions.AbstractFunction,并且实现相应的方法

4.3 代码说明(代码都有写注释每个步骤和属性以及方法,可以进行参考,按实际自己的需要进行改动):

属性:
自定义函数的参数名称列表,List类型
自定义函数的名称,String类型
保存用户输入数据的数组,CompoundVariable[]类型

方法:
execute:执行函数的逻辑
getArgumentDesc:返回自定义函数所有的参数名描述
setParameters:获取用户输入的参数
getReferenceKey:返回自定义函数的名称
package com.randomstr.jmeter.functions;
 
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.Collection;
import java.util.linkedList;
import java.util.List;
import java.util.Random;
 
public class RandomStrFunction extends AbstractFunction {
    // 函数助手展示出来的参数说明
    private static final List param = new linkedList<>();
     
    // 在函数助手中展示出来的名字,你定义的是什么,最终就从函数助手中找这个名字
    private static final String KEY = "__randomStr";
     
    // 定义数组接收jmeter函数助手输入的参数
    private CompoundVariable[] values;
    static {
        param.add("输入指定字母");
    }
 
    
    @Override
    public String execute(SampleResult sampleResult, Sampler sampler) throws InvalidVariableException {
        // 接收参数中的作为字符串前缀,使用random进行拼接字符串后,进行返回
        String startWith = values[0].execute().trim();
        Random rand = new Random();
        int ranInt = rand.nextInt(1000000);
        return startWith + ranInt;
    }
 
    
    @Override
    public void setParameters(Collection collection) throws InvalidVariableException {
 
        // 检查用户输入的参数是否正确, 从入参判断 长度最长1  最小也是1 也就是只能是一个参数,如果多参数这里要改一下
        checkParameterCount(collection, 1, 1);
        this.values = collection.toArray(new CompoundVariable[collection.size()]);
    }
 
    
    @Override
    public String getReferenceKey() {
        return KEY;
    }
 
    
    @Override
    public List getArgumentDesc() {
        return param;
    }
}

5.我们编写了代码后,需要把代码打成jar包,然后放到jmeter的 lib/ext目录下,最后重启jmeter,去函数助手中就可以找到了
5.1 使用maven,打jar包,如下

5.2 粘贴jar到指定目录 lib/ext, 如下

5.3 jmeter操作,好了完成,愉快的玩耍吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号