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

简介: 本期JMeter拓展开发系列文章将介绍一种比较轻量级的编写代码调试方式:利用Java远程调试(Remote Java Application)来完成对自己开发的JMeter扩展的调试。

前言

在本系列专题之前的文章中,我们已经介绍了 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 端口

Remote Java Application 图1.png

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

Debug 透视图 图2.png

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

查看调试内容 图3.png

总结

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

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

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

目录
相关文章
|
18天前
|
编解码 NoSQL 测试技术
性能工具之Jmeter HLS 插件(入门篇)
【2月更文挑战第28天】JMeter Redis 数据集 vs CSV 数据集性能对比
103 1
性能工具之Jmeter HLS 插件(入门篇)
|
13天前
|
消息中间件 Java 测试技术
性能工具之Jmeter扩展函数及压测ActiveMQ实践
【5月更文挑战第18天】性能工具之Jmeter扩展函数及压测ActiveMQ实践
45 5
|
18天前
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
43 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
10天前
|
IDE Java Maven
性能工具之Jmeter扩展配置元件插件
【5月更文挑战第20天】性能工具之Jmeter扩展配置元件插件
26 1
|
18天前
|
消息中间件 测试技术
百度搜索:蓝易云【使用JMeter安装RabbitMQ测试插件的步骤】
以上是安装RabbitMQ测试插件的基本步骤。根据您的具体需求和JMeter版本,可能会有一些细微的差异,但总体流程应该是相似的。
66 1
|
Java 关系型数据库 MySQL
Jmeter之第三方插件安装
jmeter-plugins-manager-1.6.jar sqlite-jdbc-3.31.1.jar mysql-connector-java-8.0.20.jar
|
测试技术
JMeter http(s)请求插件jmeter-plugin-httpBinaryFileUpload.jar
JMeter http(s)请求插件jmeter-plugin-httpBinaryFileUpload.jar
91 0
|
Dubbo Java 应用服务中间件
JMeter Dubbo请求插件jmeter-plugin-dubbo.jar
JMeter Dubbo请求插件jmeter-plugin-dubbo.jar
200 0
|
测试技术
JMeter 线程组之Stepping Thread Group插件介绍
JMeter 线程组之Stepping Thread Group插件介绍
571 0
|
监控 Java 测试技术
JMeter 扩展JMeter插件获取更多监听器
JMeter 扩展JMeter插件获取更多监听器
121 0