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 服务

转自:范丰平

优质内容筛选与推荐>>
1、javascript Array数组详解 各种方法
2、jquery实现简单轮播
3、LeetCode 349. 两个数组的交集(C++)
4、opengl投影变换与逆变换
5、hashCode


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号