前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JMeter 扩展开发:自定义 JMeter 插件的调试

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

原创
作者头像
EMQ映云科技
发布2022-12-15 11:27:04
7030
发布2022-12-15 11:27:04
举报
文章被收录于专栏:EMQ 物联网

前言

在本系列专题之前的文章中,我们已经介绍了 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 上开启:
代码语言:text
复制
JVM_ARGS="$JVM_ARGS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12345"

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

代码语言:text
复制
Listening for transport dt_socket at address: 12345

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

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

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

总结

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

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

原文链接:https://www.emqx.com/zh/blog/custom-jmeter-plug-in?utm_source=cloud.tencent.com&utm_medium=referral

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 过程
  • 总结
相关产品与服务
远程调试
远程调试(Remote Debugging,RD)在云端为用户提供上千台真实手机/定制机/模拟器设备,快速实现随时随地测试。运用云测技术对测试方式、操作体验进行了优化,具备多样性的测试能力,包括随时截图和记录调试日志,稳定的支持自动化测试, 设备灵活调度,用例高效执行, 快速定位产品功能和兼容性问题。云手机帮助应用、移动游戏快速发现和解决问题,节省百万硬件费用,加速敏捷研发流程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档