JMeter 二次开发之环境准备

embedded/2024/12/26 0:35:34/

通过JMeter二次开发,可以充分发挥JMeter的潜力,定制化和扩展工具的能力以满足具体需求。无论是开发自定义插件、函数二次开发还是定制UI,深入学习和掌握JMeter的二次开发技术,将为接口功能测试/接口性能测试工作带来更多的便利和效益。

大家都知道接口测试在保证软件质量方面的重要性。Apache JMeter作为一款功能强大的开源性能测试工具备受测试人员的喜爱,不仅可以用做接口功能测试,还可以用做接口性能测试。然而,即使在其强大的基础功能之上,JMeter仍然提供了许多可定制和扩展的能力,通过二次开发,我们可以进一步定制JMeter满足特定具体需求。

JMeter二次开发的应用场景

定制采样器:根据业务需求创建自定义的采样器,以模拟特定的业务场景或协议,例如WebSocket、gRPC等

自定义监听器:开发自定义的监听器,用于收集和分析测试结果,并根据需要生成自定义报告或图表。

函数开发:丰富JMeter通用的函数库,方便用例设计中的功能实现,如加密/解密、签名生成、随机生成身份证号码等

完全基于JMeter源码开发:JMeter本身产品结构、执行流程相对稳定,并且代码量大,逻辑也相对复杂,直接对源码进行二次开发投入时间长,收益低,一般不这么做,,但参考其代码有利于插件开发

而JMeter二次开发过程中,大多数都需要拿到JMeter源码自己进行修改->编译->打包,所以要想做JMeter二开,前提条件是掌握如何拿到JMeter源码进行编译打包。

JMeter源码开发环境配置

前置环境准备:

安装JDK,配置JDK环境变量

安装intellij IDEA

安装Gradle、配置Gradle环境变量

在JMeter 5.2版本开始,源码编译由Gradle代替了ANT

关于JDK与intellij IDEA安装及配置可以在社区里面搜索相关的文章,这里不再赘述

Gradle配置

打开官网下载页面:https://gradle.org/releases/,这里我选择是的v7.6版本,点击complete进行下载:

图片

将下载的压缩包解压到任意路径下,复制对应路径:

图片

打开系统环境变量配置页面,新增GRADLE_HOME变量名,变量值即为上面复制过来的路径:

图片

之后双击Path,在里面追加%GRADLE_HOME%\bin即可:

图片

最好输入gradle -v检测:

图片

JMeter源码配置

1、下载JMeter源码

进入JMeter官方网站,找到源码下载链接:

Index of /dist/jmeter/source

下载对应压缩包并解压:

图片

2、启动intellij IDEA,选择File - open,选择JMeter源码目录中的build.gradle.kts文件

图片

3、选择Open as Project:

图片

4、之后Gradle会自动下载JMeter中的依赖组件,等待它执行结束

5、进入到IDEA的Termial命令行模式,输入gradlew runGui 编译源码,等待一会儿即可看到JMeter GUI页面

图片

至此JMeter的源码环境就已经搭建好了。


http://www.ppmy.cn/embedded/148752.html

相关文章

Python中所有子图标签Legend显示详解

在数据可视化中,图例(legend)是一个非常重要的元素,它能够帮助读者理解图表中不同元素的含义。特别是在使用Python进行可视化时,matplotlib库是一个非常强大的工具,能够轻松创建包含多个子图的图表&#xf…

MVCC了解

MVCC(多版本并发控制)学习指南及代码示例 一、学习MVCC前先了解什么 1. MVCC的定义和作用 MVCC是一种并发控制机制,用于解决并发事务访问数据库时可能出现的问题,如脏读、不可重复读和幻读。它通过为每个数据行维护多个版本来实…

uniapp开发微信小程序实现获取“我的位置”

1. 创建GetLocation项目 使用HBuilder X创建一个项目GetLocation,使用Vue3。 2. 在腾讯地图开放平台中创建应用 要获取位置,在小程序中需要使用腾讯地图或是高德地图。下面以腾讯地图为例。 (1)打开腾讯地图开放平台官方网址:腾讯位置服务 - 立足生态,连接未来 (2)注册…

开源模型应用落地-LlamaIndex学习之旅-Agents-用自然语言构建Agent(一)

一、前言 在当今这个信息爆炸的时代,数据如同浩瀚宇宙中的繁星,海量且繁杂。从企业的海量业务数据到学术研究的丰富文献,从互联网上的碎片化信息到个人电脑中的各类文档,数据无处不在,但如何从中高效地获取有价值的信息并加以利用,却成为了摆在人们面前的巨大挑战 。 与此…

链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景

Chainbase AVS 主网的正式上线,正在将 Chainbase 不同的层进行深入的串联,为 Chainbase 数据网络带来了验证和处理方面的应用与拓展的能力,并成为数据体系全面启动的新契机。 在 12 月 4 日,链原生的 Web3 AI 数据网络 Chainbase …

#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍11基于XML的SQL注入(XML-Based SQL Injection)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

谷歌开发者工具 - 控制台篇

Chrome DevTools - Console控制台篇 一、官网二、主要用途三、控制台篇1.JavaScript/浏览器消息记录(1)演示效果 / 两种记录状态(2)显示导致调用的堆栈轨迹 2.过滤消息(1)按日志级别过滤(2&…

nginx—rewrite功能

目录 Rewrite相关指令 set指令 if指令 ①布尔值 ​编辑 ②相等 ​编辑 ③正则匹配 ④判断文件 ⑤其他 break指令 ​编辑 return指令 rewrite指令 rewrite_log指令 Rewrite应用场景 域名跳转 ​编辑 独立域名 Rewrite相关指令 rewrite指令是用于基于正则表达式…