JMeter 扩展开发:自定义 JMeter 插件的调试

news2024/11/25 12:46:09

前言

在本系列专题之前的文章中,我们已经介绍了 JMeter 扩展开发的一些方法。但是在开发过程中还有一个需要处理的环节,是对编写的代码进行调试。一种方式是将开发的扩展与 JMeter 源码放在一起进行调试。但是这种方法的缺点是需要将整个 JMeter 的源码都放在工作空间,如果新开发的扩展只是一个小插件的话,这样做就会有点过于重量级。

本文将介绍另一种比较轻量级的方式:利用 Java 远程调试(Remote Java Application)来完成对自己开发的 JMeter 扩展的调试。

过程

我们首先回忆一下开发好的 JMeter 扩展是如何部署到 JMeter 中的:首先将扩展代码编译生成 jar 包,拷贝到 JMeter 扩展目录 $JMETER_HOME/lib/ext 下面,然后重新启动 JMeter,就会发现新加入的扩展插件。

为了支持 JMeter 的 Java 远程调试,先要修改下 JMeter 启动时的 JVM 参数。

  • 用文本编辑器打开 $JMETER_HOME/bin/jmeter.sh(如果是 Windows 操作系统的话,打开jmeter.bat);
  • 在 jmeter.sh 中定位到 JMeter 启动的位置(该位置通常在最后),并在该位置之前加入一行,在指定的端口上开启远程调试功能。下面的参考配置就是在端口 12345 上开启:
JVM_ARGS="$JVM_ARGS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12345"

重启 JMeter,如果配置正确的话,在 JMeter 启动的控制台上会打印出类似于下面的语句:

Listening for transport dt_socket at address: 12345

切换到开发 JMeter 扩展的 IDE 工作空间,以 Eclipse 为例,选中该扩展的项目,然后右键打开“调试配置(Debug Configurations)”,选中“Remote Java Application”,新建一个远程调试配置,并配置好 JMeter 运行所在的机器的 Host 和端口号,如下图所示,配置的是本地运行的 12345 端口

1

创建好配置后,点击上图对话框中的 Debug 按钮,然后在 Debug 透视图中能看到类似于如下截图的内容,表示已经成功通过端口连接到本地 JMeter 的 JVM 上。

2

在代码中需要调试的位置打好断点,在 JMeter 上进行相应操作后,即可在 Eclipse 中看到相关的调试内容,如下所示:
3

总结

利用 Java 提供的远程调试的功能对 JMeter 扩展插件进行调试,可以比较方便地掌控 JMeter 插件在实际运行过程中的状况,更好地协助开发人员完成扩展的开发。不过也需要注意的是,这种方式有个缺点:每次开发中改了代码后再次调试,需要将更新后的 JMeter 扩展重新编译、打包、部署,并重启 JMeter。如果调试过程中频繁改动代码的话,这种调试方式稍显麻烦。读者可根据自己的实际情况选择更合适的调试方式。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/custom-jmeter-plug-in

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

卫龙明日上市:募资净额9亿港元 腾讯云锋红杉高瓴或浮亏

雷递网 雷建平 12月14日卫龙食品(股票代码为:“09985”)将于明日在港交所上市,发行价为10.56港元,位于发行区间10.4到11.4港元的下端位置。卫龙食品此次募资净额为8.99亿港元;若行使超配权,则可…

GcExcel for java 6.0 简单例子 -jar has been cracked

GrapeCity Documents for Excel (简称:GcExcel)是葡萄城推出的一款基于 Java 平台的服务端高性能表格组件,可与 纯前端表格控件 SpreadJS 前后端兼容,无需依赖 Office、POI 或第三方应用软件,在前端展示电子…

关于旅游景点主题的HTML网页设计——广东名胜古迹(7页)HTML+CSS

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

Node项目文档生成工具standard-release

简介 爱美之心人皆有之。本文就介绍如何使用standadr-release自动生成好看的Git提交记录文档。 背景 作为一只程序猿,Git代码管理工具相信大家都用过,那么Git提交记录想必大家也都看过,不管是用什么工具查看,多多少少都感觉乱&…

GoC2018下册 第2课(C++画图)

慧通教育 慧通教育 709.改变身高(下册第2课) 登录 710.改变身高(下册第2课) 登录 711.改变体型(下册第2课) 登录 712.改变体型(下册第2课) 登录 713.完美身材(下册第…

类型转换和优先级

目录 一、表达式求值 二、隐式类型转换 1、整型提升的意义 2、如何进行整型提升(3个例子) 三、算术转换 四、操作符的属性 1、优先级顺序表 2、运算法则 一、表达式求值 表达式求值的顺序一部分是由操作符的优先级和结合性决定。 同样,有…

C++ Reference: Standard C++ Library reference: Containers: map: map: swap

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/swap-free/ 函数模板 <map> std::swap (map) template <class Key, class T, class Compare, class Alloc> void swap (map<Key,T,Compare,Alloc>& x, map<Key,T,Compare,Alloc…

融捷能源携手企企通,打造智能化、数字化采购平台

随着全球能源危机和环境污染问题日益突出&#xff0c;节能、环保有关行业的发展被高度重视&#xff0c;全球能源消费结构正向低碳化转型&#xff0c;加快发展可再生能源已经在全球范围内形成共识。 作为新能源产业的核心&#xff0c;锂电池技术和产业的发展也备受关注&#xff…

中断线程化

中断线程化 中断处理程序包括上半部硬件中断处理程序&#xff0c;下半部处理机制&#xff0c;包括软中断、tasklet、workqueue、中断线程化。 当一个外设中断发生后&#xff0c;内核会执行一个函数来响应该中断&#xff0c;这个函数通常被称为中断处理程序或中断服务例程。 上…

G631两级电液伺服阀控制器

G631系列两级电液伺服阀在电气液压伺服系统中作为执行元件&#xff0c;在伺服系统中液压执行机构同电气及气动执行机构相比&#xff0c;具有快速性好、单位重量输出功率大、传动平稳、抗干扰能力强等特点。另一方面&#xff0c;在伺服系统中传递信号和校正特性时多用电气元件。…

数据结构---散列表

散列表哈希函数散列表读写写读扩容总结散列表也叫作 哈希表&#xff08;hash table&#xff09;&#xff0c;这种数据结构提供了键&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;的映射关系。只要给出一个Key&#xff0c;就可以高效查找到它所匹配的Value&…

如何使用HTML制作个人网站(如何搭建个人博客)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Datawhale 202212 设计模式 | 第二章 23种设计模式

23种设计模式讲解策略模式问题&#xff1a;解决方案&#xff1a;效果&#xff1a;适用场景&#xff1a;实际应用&#xff1a;优点缺点&#xff1a;实例&#xff1a;装饰 6问题&#xff1a;解决方案&#xff1a;效果&#xff1a;代理 7问题&#xff1a;解决方案&#xff1a;效果…

(附源码)springboot球鞋文化交流论坛 毕业设计 141436

目 录 摘要 1 1 绪论 1 1.1 研究意义 1 1.2研究方法 1 1.3论文结构与章节安排 1 2 球鞋文化交流论坛分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2.1数据增加流程 3 2.3.2数据修改流程 4 2.3. 数据删除流程 4 2.3 系统功能分析 4 2.3.1 功能性分析 4 2.3.2 非功能性分析 5 …

【MySQL】说透锁机制(二)行锁 加锁规则 之 范围查询(你知道会锁表吗?)

本文会按照 聚集集索->唯一索引->普通索引 的顺序 地毯式分析 范围查询中 <、<、>、> 的行锁情况&#xff0c;锁表分析在唯一索引 章节&#xff0c;万字长文&#xff0c;力求分析全面&#xff0c;很硬核全网独一份&#xff0c;别忘了收藏&#xff01; 当然如…

中学课程辅导杂志中学课程辅导杂志社中学课程辅导编辑部2022年第34期目录

教育视点《中学课程辅导》投稿&#xff1a;cn7kantougao163.com 基于整体英语教学理念的初中英语读写课研究 徐杰; 3-5 初中语文阅读教学的有效追问策略 徐生; 6-8 初中音乐教学中融入美育的实践探讨 张静; 9-11 “让学引思”理念下的初中物理高效课堂构建 张敏…

部署Neo4j +Rasa+Rasa UI

一、前言 最近在学习kbqa&#xff0c;调研时发现gitee上有关于多轮对话系统源码&#xff0c;该仓库主要是基于rasa框架&#xff08;python语言&#xff09;实现&#xff0c;并且带有web的UI配置&#xff0c;相当于比较全面的对话平台。Rasa UI 可以基于客户已有的平台&#xf…

西电雨课堂测试大合集【导航】

文章目录基础写作 一、二科学道德与学风研究生的压力与心理健康学术规范与论文写作中国传统文化✨感谢各位博主的分享&#xff01; &#x1f4d2;我在这里只是进行了一些整理&#xff0c;方便大家查找。 ⚠️大家看完可以给博主们点点赞、收藏、关注。&#x1f601; 祝各位学业…

Linux机器安装Nginx配置并实现双向认证

Linux机器安装Nginx配置并实现双向认证 一.Nginx的安装配置 Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。 在高连接并发的情况下&#xff0c;Nginx是Apache服务器不错的…

TiDB | TiDB在5A级物流企业核心系统的应用与实践

TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最后前言 历经了近半年的测试验证和迁移准备&#xff0c;神州金库3.0核心系统 WMS 正式从 MyS…