JMeter插件的调试

概述

本文介绍了如何在JMeter中调试插件,以方便在开发过程中了解代码的执行过程,提高开发效率。

问题描述

JMeter插件的开发过程中可能需要对写的代码进行调试,一种调试方法是跟JMeter的源代码放在一起进行调试(如果读者想设置JMeter的开发环境,可以参考xmeter君写的这篇文章),但是这种方法的缺点是需要将整个JMeter的源代码都放在工作空间,这对于有的时候只是开发一个小的插件过程来说非常重。这里xmeter君将为大家介绍利用Java远程调试的方法来调试自己写的插件,这么做的好处是避免跟整个JMeter的源代码放在一起,保持在开发插件过程中使用比较轻量的方式来开发、调试JMeter插件(关于开发JMeter插件,可以参考xmeter君的这篇文章)。

过程

插件的源代码在集成开发环境中写好之后,将其编译成二进制JAR文件,放入$JMETER_HOME/lib/ext目录下,然后启动JMeter之后就会发现新开发的插件。为了能够支持JMeter的远程调试,我们先需要改一下启动JMeter的JVM参数。

1)用一个文本编辑器打开$JMETER_HOME/bin/jmeter.sh (或者jmeter.bat)。

2)在文件jmeter.sh中加入一行(注意:该行必须在执行JMeter的JAR之前),该配置的意思是在端口2345上开启了远程调试的功能

JVM_ARGS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=2345”

3)重启JMeter,如果配置得对的话,在JMeter启动的控制台上会打印出类似于下列的语句。

Listening for transport dt_socket at address: 2345

4)切换到Eclipse的工作空间,选中开发插件的那个项目,然后打开“调试配置(Debug Configuration)”,选中“Remote Java Application” > 右击 > New,新建一个远程调试配置,如下图所示,配置好JMeter运行所在的机器的IP地址和端口号,如下填的是本地的2345端口


5)配置好之后,点击上图对话框中的Debug按钮,然后在Debug透视图中能看到类似于如下截图的内容,表明端口上attach已经成功。


6)在要调试的代码中打好断点,运行JMeter之后就可以看到相关的调试信息,如下所示。


总结

利用Java提供的远程调试的功能对Meter插件进行调试,比较方便地掌握JMeter插件在实际运行过程中的状况,更好地帮助开发人员完成插件的开发。但是这种方式有个缺点是在开发过程中,需要不断地将JMeter插件打包,复制和重启JMeter,重启JMeter完成后,还需要重新attach Eclipse的调试进程,如果调试过程中频繁改动代码的话,这种方式稍显麻烦。读者可以根据自己的实际情况酌情处理。

推荐阅读更多精彩内容