JMeter Eclipse开发环境安装、配置过程

本文版权归xmeter.net所有,欢迎转载,转载请注明出处。

简介

在对JMeter做扩展的时候,需要参考JMeter的源代码实现,如何在集成开发环境里比较方便地查看代码就非常重要了。本文以Eclipse为例,介绍如何搭建JMeter 3.2的开发环境。

准备工作

1)JDK 8,JMeter 3.2是由Java写的,需要JDK 8以上的版本,因此操作系统先安装好JDK 8。安装完成后,在命令行中敲"java -version",查看输出的内容,如果大于1.8版本就可以了;否则请设置正确的JAVA_HOME和系统PATH(加入$JAVA_HOME/bin)。

2)Eclipse,作者使用的是Eclispe 4.5版本,不要太旧的版本应该都可以

3)Apache Ant,作者使用的版本是1.9.7,读者可以到http://ant.apache.org/bindownload.cgi上下载最新的版本,解压开之后,将$ANT_HOME/bin/加到系统PATH变量,打开命令行,运行"ant -version",如果安装正确应该能看到类似于这样的输出“Apache Ant(TM) version 1.9.7 compiled on April 9 2016”。

4)Git,JMeter 3.2的源代码在github上,读者可以checkout任意版本的源代码,通过Git管理的本地代码可以清晰地告诉你哪些地方有更改,进行版本的恢复等,避免出现误改导致的本地开发环境无法运行。如果读者觉得这些都不是问题,可以不用准备Git,直接下载源代码的压缩文件包。如果安装Git,请读者自行参考网上相应的文章进行安装,本文不再赘述。

Eclipse工作空间的配置

首先下载源代码,打开网站https://github.com/apache/jmeter,JMeter缺省的代码分支为trunk,最新的代码都在此分支上,我们需要3.2版本可以从tag列表中看到,单击“Branch: trunk”按钮,在下拉列表框中选择Tags > v3_2,就能够看到v3_2版本。如下图所示,


然后选择“Clone or download”,如果想使用Git,则单击下拉对话框中显示的“复制”按钮;如果想直接下载源代码,就点击“Download ZIP”按钮。如下图所示,

使用Git,请在命令行中输入,

git clone git@github.com:apache/jmeter.git

命令行输出如下所示。

进入下载的JMeter的工作区目录,使用下面的命令切换到v3_2代码tag,执行结果如下图所示。

cd $workspace/jmeter

git checkout tags/v3_2

运行git log,检查代码历史,确信是在3.2标签上。如下图所示,当前代码的最后历史为2017年4月13日,为3.2发布的时间点。

git log


运行下列Ant命令,设置Eclipse工作空间。

ant setup-eclipse-project

运行该命令的时候,会提示要不要下载依赖的JAR包,敲入y继续。当出现下列提示的时候,设置Eclipse工作空间的步骤完成。

打开Eclipse,创建一个新的工作空间,然后点击“File → Import → Existing projects into Workspace”,如下图所示。

如果之前的步骤都正确的话,导入的项目不会有任何错误,如下图所示。


编译、打包JMeter,如下图所示,右击“Build.xml > Run As > Ant Build”,该步骤是为了编译生成JMeter的库。


在Eclipse中右击NewDriver.java > Run As > Java Application, 会报以下错误。

java.lang.Throwable: Could not access /Users/rockyjin/Documents/workspace/demo_jmeter/ws/lib

at org.apache.jmeter.NewDriver.(NewDriver.java:101)

java.lang.Throwable: Could not access /Users/rockyjin/Documents/workspace/demo_jmeter/ws/lib/ext

at org.apache.jmeter.NewDriver.(NewDriver.java:101)

java.lang.Throwable: Could not access /Users/rockyjin/Documents/workspace/demo_jmeter/ws/lib/junit

at org.apache.jmeter.NewDriver.(NewDriver.java:101)

ERROR StatusLogger Unable to access file:/Users/rockyjin/Documents/workspace/demo_jmeter/ws/bin/log4j2.xml

java.io.FileNotFoundException: /Users/rockyjin/Documents/workspace/demo_jmeter/ws/bin/log4j2.xml (No such file or directory)

at java.io.FileInputStream.open0(Native Method)

at java.io.FileInputStream.open(FileInputStream.java:195)

at java.io.FileInputStream.(FileInputStream.java:138)

at java.io.FileInputStream.(FileInputStream.java:93)

at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)

at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)

at java.net.URL.openStream(URL.java:1045)

at org.apache.logging.log4j.core.config.ConfigurationFactory.getInputFromUri(ConfigurationFactory.java:307)

at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:476)

at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:420)

at org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:265)

at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:613)

at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634)

at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229)

at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152)

at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)

at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)

at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:122)

at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)

at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)

at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)

at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)

at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)

at org.apache.jmeter.JMeter.(JMeter.java:109)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:422)

at java.lang.Class.newInstance(Class.java:442)

at org.apache.jmeter.NewDriver.main(NewDriver.java:246)

ERROR StatusLogger Reconfiguration failed: No configuration found for '659e0bfd' at 'null' in 'null'

15:17:06.067 [main] ERROR org.apache.jmeter.JMeter - An error occurred:

java.lang.RuntimeException: Could not read JMeter properties file:/Users/rockyjin/Documents/workspace/demo_jmeter/ws/bin/jmeter.properties

at org.apache.jmeter.util.JMeterUtils.loadJMeterProperties(JMeterUtils.java:203) ~[core/:?]

at org.apache.jmeter.JMeter.initializeProperties(JMeter.java:709) ~[core/:?]

at org.apache.jmeter.JMeter.start(JMeter.java:436) [core/:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_73]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_73]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_73]

at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_73]

at org.apache.jmeter.NewDriver.main(NewDriver.java:248) [core/:?]

An error occurred: Could not read JMeter properties file:/Users/rockyjin/Documents/workspace/demo_jmeter/ws/bin/jmeter.properties

打开NewDriver的Run Configuration,调整配置“Working directory”配置为“${workspace_loc:jmeter}/bin”,如下图所示。


修改完成后,点击“Run”按钮,JMeter 3.2就可以成功运行了。如果想调试,在想要调试的代码行打好断点,以调试方式启动应用,就可以对JMeter代码进行调试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容