JMeter 二次开发之环境准备
通过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文件

添加图片注释,不超过 140 字(可选)
3、选择Open as Project:

4、之后Gradle会自动下载JMeter中的依赖组件,等待它执行结束
5、进入到IDEA的Termial命令行模式,输入gradlew runGui 编译源码,等待一会儿即可看到JMeter GUI页面

至此JMeter的源码环境就已经搭建好了。
相关文章:
JMeter 二次开发之环境准备
通过JMeter二次开发,可以充分发挥JMeter的潜力,定制化和扩展工具的能力以满足具体需求。无论是开发自定义插件、函数二次开发还是定制UI,深入学习和掌握JMeter的二次开发技术,将为接口功能测试/接口性能测试工作带来更多的便利和效…...
Laravel Class ‘Facade\Ignition\IgnitionServiceProvider‘ not found 解决
Laravel Class Facade\Ignition\IgnitionServiceProvider not found 问题解决 问题 在使用laravel 更新本地依赖环境时,出现报错,如下: 解决 这时候需要更新本地的composer,然后在更新本地依赖环境。 命令如下: co…...
DNS 技巧与窍门
简介 在本文中,您将学习三种可以使用 DNS 完成的技巧。如果您曾经进行过任何与 DNS 配置相关的工作,这些小技巧可能会帮助您更快地完成工作流程。您将学习一些在终端中使用的命令和处理 DNS 数据的方法,比如如何检查当前的域名服务器。完成后…...
第2章 信息技术基础
本章学习要点 全面了解医院信息系统建设所涉及的主要信息技术以及这些技术的应用情况。 计算机与网络、信息技术与信息系统、数字媒体与数据存储技术、条形码(二维码)、RFID技术、云计算、APP技术 1.XML 可扩展标记语言与Access,Oracle和SQL Server等数据库不同…...
uniapp 微信小程序和h5处理文件(pdf)下载+保存到本地+预览功能
uniapp实现微信小程序下载资源功能和h5有很大的不同,后台需返回blob文件流 1.微信小程序实现下载资源功能 步骤1:下载文件 uni.downloadFile({url:url,//调接口返回urlsuccess:(res)>{uni.hideLoading();if(res.statusCode200){var tempFilePath …...
Linux从0到1——Linux第一个小程序:进度条
Linux从0到1——Linux第一个小程序:进度条 1. 输出缓冲区2. 回车和换行的本质3. 实现进度条3.1 简单原理版本3.2 实际工程版本 1. 输出缓冲区 1. 小实验: 编写一个test.c文件,: #include <stdio.h> #include <unistd.h…...
软件工程师,是时候了解下Rust编程语言了
背景 2024年年初,美国政府发布了一份网络安全报告,呼吁软件开发人员停止使用容易出现内存安全漏洞的编程语言,比如:C和C,转而使用内存安全的编程语言。这份报告由美国网络空间总监办公室 (ONCD) 发布,旨在落…...
SSL---VPN
文章目录 目录 一.SSL-VPN概述 优点 二.SSL协议的工作原理 三.虚拟网关技术 用户认证方式 本地认证 服务器认证: 证书匿名认证 Web代理 Web-link和Web改写 端口转发 网络扩展(允许UDP协议) 总结 一.SSL-VPN概述 SLL VPN是一种基于HTTPS&am…...
Chrome 跨域问题CORS 分析
先叠个甲,有错误,望沟通指正! 文章目录 1.什么是跨域报错2.为什么postman可以,浏览器访问就不行?根本原因是什么?2.1浏览器是依据什么来报错跨域的? 3.常规解决方案的分析方案1.通过代理解决方案2.被请求的B域的服务端开启Access-Control-Allow-Origin返回头的支持方案3.通…...
GPU性能测试中的张量和矩阵运算
正文共:888 字 7 图,预估阅读时间:1 分钟 前面我们使用PyTorch将Tesla M4跑起来之后(成了!Tesla M4Windows 10AnacondaCUDA 11.8cuDNNPython 3.11),一直有个问题,那就是显存容量的问…...
Linux运维_Bash脚本_编译安装FreeRDP-3.3.0
Linux运维_Bash脚本_编译安装FreeRDP-3.3.0 Bash (Bourne Again Shell) 是一个解释器,负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件,并于 1989 年发布的免费软件,作为 Sh (Bourne Shell) 的替代品。 您可以在 Linux…...
CMake官方教程4--使用表达式生成器
1. 使用表达式生成器产生警告 CMakeList.txt cmake_minimum_required(VERSION 3.15)project(Tutorial VERSION 1.0)add_library(tutorial_compiler_flags INTERFACE) target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)set(gcc_like_cxx "$<COM…...
git for windows
记录,git svn混用,检出代码时出错及解决方案, 执行命令: git svn clone svn_project_url 报错: certificate problem.(R)eject,accept (t)emporarily or accept (p)ermanently 解决: 在弹框中 输入P …...
C++实验 面向对象编程
一、实验目的: 掌握类中静态成员的定义方法,初始化方法,使用方法; 掌握类的友元说明方法,理解友元的使用特点 二、实验内容: 1、编写程序,统计某旅馆住宿客人的总数,要求输入客人…...
VC++ 设置网卡接口MTU大小
在 Windows C/C 之中一共有三种方法可以设置网卡的MTU大小。 方法一: SetIpInterfaceEntry 法 static bool SetInterfaceMtu2(int interface_index, int mtu) noexcept{PIP_ADAPTER_ADDRESSES pAddresses NULL;ULONG ulBufLen 0;GetAdaptersAddresses(AF_UNSPEC…...
dpdk-19.11 对向量指令的使用情况分析
不同向量指令识别关键字 __m128i sse uint64x2_t neon __m256i avx2 __m512i avx512 vector altivec dpdk 向量收发包函数 支持 arm neno 向量收发包函数的 pmd 驱动 bnxt hns3 i40e ixgbe mlx5 virtio 支持 sse 向量收发包函数的 pmd 驱动 axgbe hinic fm10k bnxt i40e …...
使用CIP采集欧姆龙EtherNet/IP从入门到精通
本文将会从以下几个方面介绍 1.CIP是什么 2.EtherNet/IP通信是什么 3.CIP通信报文解析 4.使用CIP常用的方法和功能介绍(UCMM) 5.自己封装了一个类,只要知道标签名称,和数据类型即可读写数据 6.demo展示 1.CIP是什么 CIP通信…...
企业如何高效管理微信里的客户?
对于企业来说,懂得高效管理微信列表的客户是非常重要的一件事,只有把客户管理好了,才能更好地提高客户的满意度和忠诚度,我们的销售业务才能顺利进行。 那么,应该怎样管理才能算是高效管理呢?下面就给大家…...
怎么在windows系统上查看kylinos的md5、sha1、sha256值
背景 当前信创行业正如火如荼进行中,当下载kylinos镜像到windows系统下,如何核对镜像是否有损坏,确保文件不被篡改,需要使用工具计算md5、sha1、sha256、sha512值,并与出库邮件中的md5比对。 QuickHash GUI软件简介 QuickHash GUI是一款开源代码的哈希工具,注意哈希能够…...
Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库
Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库 在Windows中使用C#连接Mysql数据库比较简单,可以直接使用MySql.Data库,目前最新版本为:8.3.0。 当然也可以结合MySql.Data和Dapper库一起使用,目前Dapper的最新版本为&a…...
国产半导体测试设备公司领军者,杭州加速科技引领产业自主可控新征程
在半导体产业国产化全面推进的背景下,国产半导体测试设备公司成为突破产业链瓶颈、保障中国芯安全的核心力量。半导体测试设备作为芯片制造关键装备,长期依赖进口,制约国内半导体产业发展。经过多年技术攻坚,一批优质国产半导体测…...
3步解锁B站4K视频:bilibili-downloader零基础使用指南
3步解锁B站4K视频:bilibili-downloader零基础使用指南 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法保存B站4…...
告别‘塑料感’渲染:IBGS如何用‘颜色残差’让3D高斯重建的物体更真实?
告别‘塑料感’渲染:IBGS如何用‘颜色残差’让3D高斯重建的物体更真实? 当你在虚拟场景中看到一个金属茶壶时,是否总觉得它像玩具一样缺乏真实感?这就是当前3D高斯溅射(3DGS)技术面临的"塑料感"困…...
黑客为什么不攻击微信钱包?
黑客为什么不攻击微信钱包? 现在人人手机里都装着微信和支付宝,里面都或多或少存了些钱。怎么从来没听说谁的钱被技术牛逼黑客惦记走? 是黑客没攻击过?还是黑客不敢攻击?其实都不是。阿里巴巴首席风险官郑俊芳就说过&…...
Ray Optics:面向未来的光学仿真平台——从零开始的光学建模实践
Ray Optics:面向未来的光学仿真平台——从零开始的光学建模实践 【免费下载链接】ray-optics A web app for creating and simulating 2D geometric optical scenes, with a gallery of (interactive) demos. 项目地址: https://gitcode.com/gh_mirrors/ra/ray-op…...
Clawdbot惊艳效果:Qwen3-32B在医疗问诊摘要与术语标准化输出实测
Clawdbot惊艳效果:Qwen3-32B在医疗问诊摘要与术语标准化输出实测 1. 测试背景与平台介绍 Clawdbot是一个统一的AI代理网关与管理平台,为开发者提供直观的界面来构建、部署和监控自主AI代理。这个平台集成了聊天界面、多模型支持和强大的扩展系统&#…...
ShardingSphere-Proxy 5.2 容器化部署与开发调试实战指南
1. 为什么选择ShardingSphere-Proxy 5.2作为开发调试工具 在分库分表场景下开发应用时,最让人头疼的就是数据查询和调试问题。想象一下,你的订单数据被分散在4个库的8张表中,每次测试时想确认数据是否正确写入,都得手动连接不同数…...
降低AI检测率哪个工具好?10款免费工具2026亲测,亲测有用
很多同学在写论文时都会遇到同一个难题:用AI辅助写完的内容,一查AIGC率高到离谱,被导师打回要求整改。后台最近也收到不少私信问:怎么才能有效降低AI检测率?有没有靠谱的免费降AI率工具推荐? 我自己当初也踩…...
【HALCON实战】set_window_param:解锁图形窗口高级定制与性能调优
1. 为什么你需要掌握set_window_param? 在机器视觉项目开发中,图形窗口就像工程师的眼睛。我见过太多同行把90%的精力花在算法优化上,却忽视了窗口显示这个"最后一公里"问题。直到某次在客户现场演示时,程序因为频繁刷新…...
鸿蒙3.1实测:UART调试日志去Root全流程(含init.cfg避坑指南)
鸿蒙3.1 UART调试权限管理实战:从Root到Shell的无缝切换 当你在深夜的实验室里盯着串口终端上刺眼的#符号时,是否曾思考过这个Root权限带来的安全隐患?鸿蒙系统作为新一代分布式操作系统,其权限管理机制与Android有着本质区别。本…...
