• Jmeter自带函数不够用?不如自己动手开发一个


    在Jmeter的函数助手里,有很多内置的函数,比如Random、UUID、time等等。使用这些函数可以快速帮我们生成某些数据,进行一些逻辑处理。用起来非常的方便。

    但是在实际接口测试过程中,有很多的需求,Jmeter内置的函数可能并不能满足我们的需求。这个时候我们可以通过自己编写代码,扩展Jmeter的内置函数。

    比如现在想在Jmeter里添加一个简单的求和的函数,代码逻辑非常简单,大体代码如下:

    public int sum(int a, int b){
    return a + b;
    }
    接下来来看下如何把自定义的逻辑封装为Jmeter的内置函数。

    新建工程
    在idea中新建Java工程,然后把Jmeter的核心jar包ApacheJMeter_core.jar(在jmeter的lib/ext目录下可以找到)导入到工程中

    图片

    在src目录下新建package,需要注意的是package的名字必须包含".functions",比如"com.mtx.jmeter.functions",JMeter设计让一些核心的类可以在非UI的方式下运行的时候能被加载进来,这些类会被优先加载。加载这些类的时候是通过命名规则来实现的。所有实现function的类必需包含".functions",否则自定义的函数不会生效。

    创建自定义函数类
    新建一个类,继承Jmeter的抽象类AbstractFunction。在函数类里,需要定义以下属性和方法。

    属性

    自定义函数的参数名称列表,List类型

    自定义函数的名称,String类型

    保存用户输入数据的数组,CompoundVariable[]类型

    方法

    execute:执行函数的逻辑

    setParameters:获取用户输入的参数

    getReferenceKey:返回自定义函数的名称

    getArgumentDesc:返回自定义函数所有的参数名描述

    具体代码如下:

    图片

    将代码导出为jar包
    在idea中设置工程的归档品artifacts,然后通过build,将代码导出为jar包,然后放到Jmeter的lib/ext目录下,再启动Jmeter。

    函数助手中可以看到刚才的函数名称和参数。

    图片

    输入参数,运行函数,就可以看到计算结果。

  • 相关阅读:
    python 之生成器表达式,以及与列表推导式的区别
    Codeforces Global Round 23 A-D
    R语言——taxize(第三部分)
    maven项目运行错误:找不到或无法加载到xxx类、亦或者xml(yml、properties)等等文件
    springboot简单使用 kafka
    什么是Helm?它是如何提升云原生应用私有化部署效率的
    力扣623.在二叉树中增加一行 dfs
    k8s持久化存储PV、PVC
    Idea Maven项目打包工其他项目进行外部引用
    3ds MAX 2024版资源包下载分享 3ds Max三维建模软件资源包下载安装
  • 原文地址:https://blog.csdn.net/Testfan_zhou/article/details/125633789