JMeter默认jmx脚本分发目录(路径)定制

我们在分布式执行参数化脚本时,为尽可能多的利用Slave资源,尽可能将参数文件配置为相对路径,以更好的去适配Slave环境。与此同时,每台Slave的服务jmeter -s 启动的路径可能不尽相同,同一台也可能因不同的操作人员启动时导致其 user.dir 进行了变化,从而参数文件不易管理分发。通常,我们大多采用shell脚本的形式,在固定的路径启动JMeter服务,并在执行测试前将相应的参数文件的分发至Slave对应的路径。

那么,有什么方法可以更好地解决这个问题呢?

我们可通过对JMeter进行定制来解决。

 

通过查看 JMeter 源码可知,设置路径的方法在 FileServer.java 中,其对应的构件名为:ApacheJMeter_core.jar,对应的源码路径是 apache-jmeter-3.0\src\core\org\apache\jmeter\services\FileServer.java。

对应的两个主要设置 base(路径)方法如下所示:

public synchronized void setBase(File jmxBase)

 

public synchronized void setBasedir(String basedir)

通过修改如上两个方法,将 base 重新修改为自己定制的路径(例如获取系统 JMETER_HOME 的路径,或者读取配置文件配置的路径)即可。

 

具体操作步骤如下所示:

1、解压 ApacheJMeter_core.jar 至 ApacheJMeter_core 目录

2、修改 FileServer.java,定制所需路径

3、编译 FileServer.java,生成字节码文件(各构件与 FileServer.java 放在同一目录)

     javac -classpath ApacheJMeter_core.jar;commons-collections-3.2.2.jar;jorphan.jar;logkit-2.0.jar FileServer.java

4、将生成的字节码文件拷贝至目录 ApacheJMeter_core\org\apache\jmeter\services\ 下覆盖源文件

5、重新打包 ApacheJMeter_core.jar

    ApacheJMeter_core>jar -cvf ApacheJMeter_core.jar *

6、将新打包的 core 构件放到 JMETER_HOME\lib\ext\ 目录下,覆盖原文件即可

7、重新执行命令 jmeter -s 启动 JMeter 服务

 

 

转自:范丰平

posted @ 2017-08-02 14:37  HkGov  阅读(1464)  评论(0编辑  收藏  举报