Jmeter二次开发函数之入门
背景:Jmeter不能满足我们的参数需求,如生成手机号码、身份证号码等业务,固对jmeter进行二次函数开发。
jmeter提供了接口供用户进行二次开发,我们只需引入包进行编辑。从jmeter规范上,我们建package包的命名必须functions结尾,并且建class的时候需引入jmeter的AbstractFunction类。

1、jmeter函数助手下拉框中现在没有helloword函数的,此文章将会实现在jmeter函数助手新增一个函数helloword,实现调用函数helloword则输出“hello,word!”的功能

2、我使用的java开发工具是eclipse,在eclipse新建一个 Java project命名为“newtest”


新建的“newtest”项目会自带一个src文件

在“newtest”项目右键Build Path->Configure Build Path->Libraries

点击“Add External JARs”添加jmeter目录下的jar依赖包 \apache-jmeter-5.5\lib\ext\ApacheJMeter_core.jar、ApacheJMeter_functions.jar

添加成功

3、在src文件下新建一个package命名为“org.apache.jmeter.functions”【注意package命名必须functions结尾】


4、在package “org.apache.jmeter.functions”下面新增class命名为“HelloWordFunction”并继承jmeter自带的AbstractFunction


搜索添加jmeter自带的abstractFunction

保存class

5、新建class成功HelloWordFunction.java,新class继承jmeter的AbstractFunction带出4个方法,函数开发就是在这4个方法上改造

4个方法分别在jmeter函数助手对应位置,最重要的部分是“execute”逻辑处理功能

6、进行一个简单函数编译,在HelloWordFunction.java初始代码上编辑这3行(逻辑为:命名一个key="__helloword",调用函数返回结果为"hello,word!")
package org.apache.jmeter.functions; import java.util.Collection;
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 HelloWordFunction extends AbstractFunction {
//jmeter函数的名称必须要以“__”两个下滑杠开头
private final static String key="__helloword"; //用来定义函数的参数列表
@Override
public List<String> getArgumentDesc() {
// TODO Auto-generated method stub
return null;
} //函数的结果由该方法来返回
@Override
public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {
// TODO Auto-generated method stub
return "hello,word!";
} //函数的参数名称
@Override
public String getReferenceKey() {
// TODO Auto-generated method stub
return key;
} //用来接收和处理用户传入的参数值
@Override
public void setParameters(Collection<CompoundVariable> arg0) throws InvalidVariableException {
// TODO Auto-generated method stub } }
7、将HelloWordFunction.java代码保存,右键导出

选择java->JAR file,点击next

保存jar包到本地

8、将jar包拷贝到jmeter安装目录下的文件下\apache-jmeter-5.5\lib\ext\

9、重启jmeter,即可在函数助手下拉框中看到函数helloword

调用调函返回结果hello,word!

Jmeter二次开发函数之入门的更多相关文章
- JMeter 源码二次开发函数示例
JMeter 源码二次开发函数示例 一.JMeter 5.0 版本 实际测试中,依靠jmeter自带的函数已经无法满足我们需求,这个时候就需要二次开发.本次导入的是jmeter 5.0的源码进行实际的 ...
- Jmeter二次开发——自定义函数
在之前的博文中,Jmeter二次开发--基于Java请求,已介绍了Jmeter二次开发的基础情况,上次分享的是java请求开发,今天来分享下Jmeter中的函数开发.聊到Jmeter的函数,知道Jme ...
- JMeter二次开发(2)-编写 JSON Assertion 插件
本篇文章主要介绍如何对JMeter进行二次开发,添加自己所需的功能.这里以Json验证为例进行说明.在web接口测试过程中,JSON的应用已经非常普遍,但原声的JMeter并没有提供Json及Json ...
- Jmeter二次开发实现自定义functions函数(九)
在Jmeter->选项->函数助手对话框中我们可以看到Jmeter内置的一些常用函数,但考虑到测试过程中的实际情况,我们经常需要在脚本引用或者实现自定义的函数.那么如何在"函数助 ...
- jmeter 二次开发---实现自定义函数插件
1.前提: 有时候,Jmeter自带的函数,可能不能满足于业务的需求,这时候,我们可以自己写一个函数插件: 2.创建maven工程 一直next,输入GroupID,ArtifactId->fi ...
- JMeter二次开发(1)-eclipse环境配置及源码编译
1.下载src并解压 http://jmeter.apache.org/download_jmeter.cgi 2.获取所需jar包,编译 ant download_jars ant instal ...
- 性能测试基础---jmeter二次开发
·Jmeter的二次开发,常见的有以下几种类型: ·扩展.修改Jmeter已有的组件(源代码) ·扩展.修改Jmeter已有的函数. ·完全自主开发一个新的组件(依赖于Jmeter提供的框架). ·扩 ...
- jmeter 二次开发
基于jmeter的java请求的二次开发 常用的方法: ①.addArgument("name", "value") 定义参数 ②.sampleStart ...
- Jmeter二次开发——基于Java请求
简述 这近几年,越来越多非http的协议需要进行性能测试,包括不仅限于各类rpc.mq.缓存等.对于这些协议,市面上可能没有现成的工具可以直接使用,这个时候,我们可以自己动手,通过编写相应的JavaS ...
- JMeter二次开发环境配置
本文主要介绍如何在Eclipse中配置JMeter开发环境. 一.下载JMeter源码 1.在JMeter官网下载二进制包和源码包: 解压备用: 二进制解压后文件夹名称为“jmeter_release ...
随机推荐
- FastJson转Java对像字段不区分大小写
昨天遇到参数key大小写不一致导致校验签名失败的问题,查了很长时间才找到原因.看了一下FastJson源码,发现JSON.toObject中转换成对象的时候会忽略大小写. 所以,当使用了JSON.to ...
- wordpress博客系统
wordpress博客系统 LNMP:Linux+nginx+mysql+php 一个操作系统+web网站+一个数据库存放数据+后端编程语言 基于红帽操作系统来搭建 1.需要一个本地yum仓库 [ro ...
- Apache 服务搭建
Apache 一.了解apache Apache(或httpd)是Internet上使用最多的Web服务器技术之一,使用的传输协议是http(Hypertext Transfer Protocol), ...
- 《python核心编程《第二版》》笔记章节索引
本文章作为我的其它一系列关于<python核心编程<第二版>>的笔记的文章索引. 第一章:Python-快速入门:https://www.cnblogs.com/mrlayfo ...
- DBEAVER 23.0.2 调整SQL编辑器字体大小 ver:20240112
DBEAVER 23.0.2 调整SQL编辑器字体大小 ver:20240112 版本是:23.0.2. 菜单-窗口-首选项.用户界面-外观-颜色和字体.展开 DBeaver Font."M ...
- leetcode | 103. 二叉树的锯齿形层序遍历 | JavaScript实现
题目 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 .(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 思路 按照正常的层序遍历,然后再对下标为奇数的数组进 ...
- Java服务发起HTTPS请求报错:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
Java服务发起HTTPS请求报错:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcept ...
- LangChain转换链:让数据处理更精准
上篇文章<5分钟了解LangChain的路由链>里主要介绍了路由链,核心类是LLMRouterChain和MultiPromptChain.本文介绍LangChain里的另外1个重要的链: ...
- 大模型重塑软件开发,华为云AI原生应用架构设计与实践分享
在ArchSummit全球架构师峰会2024上,华为云aPaaS平台首席架构师马会彬受邀出席,和技术爱好者分享AI原生应用引擎的架构与实践. AI大模型与AI重塑软件的大趋势下,软件会发生哪些本质的变 ...
- python重拾第十三天-那就做个堡垒机吧
本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功 ...