编译jmeter5.0源码

Posted t-ae

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译jmeter5.0源码相关的知识,希望对你有一定的参考价值。

 

 

jmeter5.0使用过程中,遇到request或者response乱码的情况,想要一次性解决这个问题,需要编译ApacheJMeter_http.jar这个包(libext文件下)里的RequestViewHTTP.class文件把encoding默认值修改成UTF-8

由于不懂java本想网上下载编译好的ApacheJMeter_http.jar,有同学应用可以 但是我这边还是不可以,还有http录制的时候录制到的中文也是乱码 所以还得编译DefaultSamplerCreator.class文件但是网上下载的ApacheJMeter_http.jar只编译了的RequestViewHTTP.class,所以决定自己编译jmeter5.0源码

1、jmeter5.0源码下载地址:http://jmeter.apache.org/download_jmeter.cgi,windows系统选择Source目录下的zip包;解压到任何文件夹

2、eclipse IDE下载地址:https://www.eclipse.org/downloads/,默认安装就可以

3、打开eclipse 选择file-new-java project(jmeter是java写的),配置如图,点击next

技术分享图片

技术分享图片

2、选择建立的项目myjmeter右键选择import。。。按下面的步骤导入jmeter5.0的源代码

技术分享图片

技术分享图片

Browse...选择解压后的jmeter5.0

技术分享图片

3、build.xml用ant editor打开(build.xml右键选择open with-ant editor)

技术分享图片

4、用ant运行download_jars,在build.xml列表里找到download_jars双击运行,下载依赖的jar包,或者选中download_jars,点击运行按钮

技术分享图片

 

技术分享图片技术分享图片

技术分享图片

5、打开navigator( Windows-Show View-Navigator)双击打开.classpath 和 eclipse.classpath,复制eclipse.classpath内容到.classpath

  同样的步骤复制eclipse.project内容到.project,重启eclipse(重启后如果myjmeter项目和下载的包提示红色X,先不用管,因为还没有导入他们依赖的包)

技术分享图片

 

 

 

6、myjmeter右键-Build Path-Configure Build Path...去除带红色X号的jar包(remove),添加myjmeter-lib和其子文件夹下的所有jar包

 

技术分享图片

 技术分享图片

技术分享图片

7、添加完成以后,打开RequestViewHttp.java和PostWrite.java修改默认编码为uft-8,

技术分享图片

技术分享图片

 

8、 DefaultSamplerCreator.java 中encoding调用的PostWrite.java的编码可以不用修改也可以直接修改成"utf-8"技术分享图片

 

 技术分享图片

9、复制jmeter5.0源码中的 jmeter.properties和log4j2.xml到myjmeter项目bin目录下,

技术分享图片

10、修改完后,ant editor列表中运行install,运行完成后myjmeter项目和jar包不在现实红色X提示

技术分享图片

技术分享图片

11、双击myjmeter文件夹bin目录下的ApacheJMeter.jar,jmeter运行成功

技术分享图片

12、jd-gui打开myjmeter-lib-ext-ApacheJMeter_http.jar检查之前修改的有没有生效

技术分享图片

技术分享图片

技术分享图片

到此编译成功,大家可以拿编译好的ApacheJMeter_http.jar包替换jmeter安装版本里的这个包就可以了

 

以上是关于编译jmeter5.0源码的主要内容,如果未能解决你的问题,请参考以下文章

JMeter5.0核心源码浅析

性能工具之JMeter5.0核心类StandardJMeterEngine源码分析

Jmeter5.0之 dubbo插件安装

Jmeter5.0之 dubbo插件安装

基础测试jmeter5.0+badboy(从小白到入门)

jmeter分布式测试