Apache JMeter2.8的源码集成到Eclipse开辟情状中

Ps:折腾了很久,网上很多的步骤都是错的或者已经不适合最新版本的jmeter了,现在将折腾的结果记录下来。

  由于JMeter纯Java开发,界面也是基于Swing或AWT搞出来的,所以想更深层次的去了解这款工具或对于想了解JMeter插件开发或二次开发的童鞋们来说,读读JMeter的源码是必不可少的。所以首先就得把源码整合起来,方便后面的Debug和二次开发,下面整理了关于JMeter源码整合到Eclipse中的一个过程,希望对大家有一定的帮助。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。

本资源由 伯乐在线 –
黄余粮 整理

准备工作:在

  1. 首先下载源文件:http://jmeter.apache.org/download\_jmeter.cgi

    图片 1

    image.png

  2. 解压下载的源码文件到本地路径。

  3. 打开Eclipse,建立一个JavaProject:

图片 2

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。

1、在eclipse中新建javaproject,名为apache-jmeter-2.8,在下一步中选择”Allowoutput
folders for source
folders”,防止导入源码时把bin目录做为输出目录给清理掉;

![](https://upload-images.jianshu.io/upload_images/6536777-86f3410169914e05.png)

image.png



![](https://upload-images.jianshu.io/upload_images/6536777-12a43d7854d9b4bd.png)

image.png

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

图片 3

2、选择从文件系统导入apache-jmeter-2.8源码;(即右键apache-jmeter-2.8点击import,选择General-FileSystem然后导入源码)

  1. 选择创建的Java项目,右键选择Import,然后选择“File System”:

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for
Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。
2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。
2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

3、在project目录下把eclipse.classpath中的内容复制到.classpath文件中;

![](https://upload-images.jianshu.io/upload_images/6536777-8441f384a8b86815.png)

image.png

Eclipse的基础是富客户机平台(Rich Client Platform, 即RCP)。RCP包括下列组件:

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for
Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse
Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。
2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。

4、在project目录下执行antdownload_jars,或在这之前就先把安装好的jmeter的lib目录下文件都拷贝过来;(此步可以通过拷贝apache-jmeter-2.8-release包中的lib文件过来),在lib目录下面新建api文件,并将bcmail-jdk15-1.45.jar和bcprov-jdk15-1.45.jar考入api目录中

  1. 定位到解压到本地路劲下的JMeter源码文件下,选择全部导入:
  • 核心平台(启动Eclipse,运行插件)
  • OSGi(标准集束框架)
  • SWT(可移植构件工具包)
  • JFace(文件缓冲,文本处理,文本编辑器)
  • Eclipse工作台(即Workbench
    ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))

Eclipse的基础是富客户机平台(Rich Client Platform,
即RCP)。RCP包括下列组件

5、在project目录下执行antpackage;(可跳过其实这步就是ant
–fbuild.xml的意思)

![](https://upload-images.jianshu.io/upload_images/6536777-6f625e3100c43883.png)

image.png

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。

  • 核心平台(启动Eclipse,运行插件)
  • OSGi(标准集束框架)
  • SWT(可移植构件工具包)
  • JFace(文件缓冲,文本处理,文本编辑器)
  • Eclipse工作台(即Workbench
    ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))
  • Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。
  • Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语
    言。
    已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到
    现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

6、打开eclipse,刷新lib目录后重新加载所有lib目录,即可编译通过。Ps此处需要jdk1.5进行编译;

  1. 导入完成后,查看项目,会发现全部是红色的X,出现错误的原因是没有导入对应的jar包:

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语
言。
已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到
现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API
(SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。

7、run asjava application,选择”NewDriver”,第一遍会运行失败;

![](https://upload-images.jianshu.io/upload_images/6536777-1f25e87a650776f5.png)

image.png

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API
(SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。

Eclipse由各种不同的计划组成。以下列出了部分计划。

8、从apache-jmeter-2.8-release包中拷贝jmeter.properties到bin目录下面,同时拷贝到/apache-jmeter-2.8/src/core/org/apache/jmeter/jmeter.properties

  1. 我们可以利用Ant下载项目所需要的jar文件,操作步骤如下:
    Eclipse –> Window –> Show View –> Ant,
    将ant加入Eclipse的控制面板上,
    然后选择Ant面板上的添加Buildfiles:

Eclipse由各种不同的计划组成。以下列出了部分计划。

  • Eclipse计划:本身包括Eclipse平台,Eclipse富客户端平台(RCP)和Java开发工具(JDT)。
  • Eclipse测试和性能工具平台(TPTP):提供一个允许软件开发者构建诸如测试调试、概况分析、基准评测等测试和性能工具的平台。
  • Eclipse Web工具平台计划
    (WTP):用Java企业版Web应用程序开发工具来扩展Eclipse平台。它由以下部分组成:HTML、JavaScript、CSS、JSP、SQL、XML、DTD、XSD和WSDL的
    源代码编辑器;XSD和WSDL的图形界面编辑器;Java企业版的“项目性质”(project
    nature)、建构器(builder)和模型(model),与一个Java企业版的导航(navigator);一个Web服务(Web
    service)向导和浏览器,还有一个WS-I测试工具;最后是数据库访问查询的工具与模型。
  • Eclipse商业智能和报表工具计划(BIRT):提供Web应用程序(特别是基于Java企业版的)的报表开发工具。
  • Eclipse可视化界面编辑器计划(VEP):一个Eclipse下创建图形用户界面代码生成器的框架。
  • Eclipse建模框架(EMF):依据使用XMI描述的建模规格,生成结构化数据模型的工具和其他应用程序的代码。
  • 图形化编辑器框架(GEF):能让开发者采用一个现成的应用程序模型来轻松地创建富图形化编辑器。
  • UML2:Eclipse平台下的一个UML
    2.0元模型的实现,用以支持建模工具的开发。
  • AspectJ:一种针对Java的面向侧面语言扩展。
  • Eclipse通讯框架(ECF):专注于在Eclipse平台上创建通讯应用程序的工作。
  • Eclipse数据工具平台计划(DTP)
  • Eclipse设备驱动软件开发计划(DSDP)
  • C/C++开发工具计划(CDT):努力为Eclipse平台提供一个全功能C和C++的集成开发环境(IDE),它使用GCC作为编译器。
  • Eclipse平台COBOL集成开发环境子计划(COBOL):将构建一个Eclipse平台上的全功能COBOL集成开发环境。
  • 并行工具平台(PTP):将开发一个对并行计算机架构下的一组工具进行集成的平行工具平台,而且这个平台是可移植的,可伸缩的并基于标准的。
  • 嵌入式富客户端平台(eRCP):计划将Eclipse富客户端平台扩展到嵌入式设备上。这个平台主要是一个富客户端平台(RCP)组件子集的集合。它能让桌面环境下的应用程序模型能够大致同样地能运用在嵌入式设备上。

9、修改NewDriver.java中的代码74行,

![](https://upload-images.jianshu.io/upload_images/6536777-6af4aec45534c59a.png)

image.png
  • Eclipse计划:本身包括Eclipse平台,Eclipse富客户端平台(RCP)和Java开发工具(JDT)。
  • Eclipse测试和性能工具平台(TPTP):提供一个允许软件开发者构建诸如测试调试、概况分析、基准评测等测试和性能工具的平台。
  • Eclipse Web工具平台计划 (WTP):用Java企业版Web应用程序开发工具来扩展Eclipse平台。它由以下部分组成:HTML、JavaScript、CSS、JSP、SQL、XML、DTD、XSD和WSDL的
    源代码编辑器;XSD和WSDL的图形界面编辑器;Java企业版的“项目性质”(project
    nature)、建构器(builder)和模型(model),与一个Java企业版的导航(navigator);一个Web服务(Web
    service)向导和浏览器,还有一个WS-I测试工具;最后是数据库访问查询的工具与模型。
  • Eclipse商业智能和报表工具计划(BIRT):提供Web应用程序(特别是基于Java企业版的)的报表开发工具。
  • Eclipse可视化界面编辑器计划(VEP):一个Eclipse下创建图形用户界面代码生成器的框架。
  • Eclipse建模框架(EMF):依据使用XMI描述的建模规格,生成结构化数据模型的工具和其他应用程序的代码。
  • 图形化编辑器框架(GEF):能让开发者采用一个现成的应用程序模型来轻松地创建富图形化编辑器。
  • UML2:Eclipse平台下的一个UML 2.0元模型的实现,用以支持建模工具的开发。
  • AspectJ:一种针对Java的面向侧面语言扩展。
  • Eclipse通讯框架(ECF):专注于在Eclipse平台上创建通讯应用程序的工作。
  • Eclipse数据工具平台计划(DTP)
  • Eclipse设备驱动软件开发计划(DSDP)
  • C/C++开发工具计划(CDT):努力为Eclipse平台提供一个全功能C和C++的集成开发环境(IDE),它使用GCC作为编译器。
  • Eclipse平台COBOL集成开发环境子计划(COBOL):将构建一个Eclipse平台上的全功能COBOL集成开发环境。
  • 并行工具平台(PTP):将开发一个对并行计算机架构下的一组工具进行集成的平行工具平台,而且这个平台是可移植的,可伸缩的并基于标准的。
  • 嵌入式富客户端平台(eRCP):计划将Eclipse富客户端平台扩展到嵌入式设备上。这个平台主要是一个富客户端平台(RCP)组件子集的集合。它能让桌面环境下的应用程序模型能够大致同样地能运用在嵌入式设备上。

官方网站:www.eclipse.org
开源地址:

原来为:tmpDir =userDir.getAbsoluteFile().getParent();

  1. 选择该项目下的ant的构建文件“build.xml”:

图片 4

修改为:tmpDir =userDir.getAbsoluteFile().getPath();

![](https://upload-images.jianshu.io/upload_images/6536777-b47674c432a04bdb.png)

image.png

Ps:非常奇怪,本步骤视情况而定,我在几次不同导入项目后运行时,根据debug发现tmpDir定位的目录有时候就直接是工程目录下的bin目录,有时候却是工程的父目录,故而需要依据现实情况进行修改,若启动时出现找不到Jmeter.properties文件的异常,则执行此步修改

  1. 双击刚刚添加的Buildfiles中的“download_jars”,这个时候ant运行自动下载缺省的jar文件到项目下指定的路劲下,直到显示Build
    Success(这个过程中可能出现一些问题,由于网络受限,部分jar包无法下载,可能需要翻墙,如果不想麻烦的,可以直接在网上找到需要的jar包丢到lib下):

10、打开rundialog,选择工作目录为“${workspace_loc:jmeter/bin}”,即可运行jmeter了。

![](https://upload-images.jianshu.io/upload_images/6536777-1c8eba266a247ed8.png)

image.png



![](https://upload-images.jianshu.io/upload_images/6536777-6185a82b8c41d347.png)

image.png

11、若出现jmeter无法保存测试计划和导入测试计划,则需要去从release包中将service.properties文件拷贝到bin目录中去,为了以防其他可能出现的问题,将system.properties、upgrade.properties、user.properties三个文件一并拷贝到bin目录中。

  1. jar包下载完或直接将jar包已经复制到Lib文件夹下以后,右键选择项目
    Build Path –> configure build path,然后选择“Add External
    JARs…”,将lib下面所有的jar包都导入到项目中,jar包在lib下面的目录结构如下图所示,这个不能错(如果是用ant下载的,创建的目录结构就是这样的,如果自己下载jar包导入的,一定要注意lib下面的目录结构):

JMeter 的详细介绍:请点这里
JMeter 的下载地址:请点这里

![](https://upload-images.jianshu.io/upload_images/6536777-7dc6e0f5a3208396.png)

image.png



![](https://upload-images.jianshu.io/upload_images/6536777-694575d64aa3682e.png)

image.png

Windows 下 JMeter 安装手记

  1. 关闭Eclipse,
    进入到该Java项目的本地文件夹下,需要删除原有的“.classpath”,将“eclipse.classpath”重命名为“.classpath”,由于Windows本身的限制,所以需要进入到CMD下面进行对应的操作,如下图所示:

使用JMeter进行基本压力测试

![](https://upload-images.jianshu.io/upload_images/6536777-3ed5120f46cb6f02.png)

image.png



删除命令为:del .classpath  
重命名命令为:ren eclispse.classpath .classpath



![](https://upload-images.jianshu.io/upload_images/6536777-e2298906560af15e.png)

image.png

JMeter中断言的使用方法

  1. 上述操作完成后,重新打开Eclipse,就可以看到万恶的红X都没有了:

准备工作:在…

![](https://upload-images.jianshu.io/upload_images/6536777-ec7a0d6e55d8a94b.png)

image.png
  1. 找到项目的入口,main方法,/jmeter3.3/src/core/org/apache/jmeter/NewDriver.java
    运行该项目发现还是报错,如下图所示:
![](https://upload-images.jianshu.io/upload_images/6536777-8326016390aed7da.png)

image.png



其实错误的原因说的非常明确,就是bin下面缺少“jmeter.properties”,万万没想到啊,完整的项目导入为什么就没有将该配置文件导入呢?只要到源码文件中的bin目录下将该配置文件复制到项目的bin目录下,就解决了这个问题一大步了,操作如下图所示:



![](https://upload-images.jianshu.io/upload_images/6536777-591900da41b5fac2.png)

image.png



![](https://upload-images.jianshu.io/upload_images/6536777-a8df2828057d9ede.png)

image.png
  1. 另外还需要将源码bin目录下的log4j2.xml文件拷贝到项目bin下,否则运行时也会报错:
![](https://upload-images.jianshu.io/upload_images/6536777-92f6755562acf4ca.png)

image.png
  1. 上述操作完成以后记得先刷新(Refresh)项目,再次选择该项目,右键选择NewDriver这个main类,
    选择 Run As –> Run Configuration,
    按照下面的操作,就完美的解决了上面的报错。
![](https://upload-images.jianshu.io/upload_images/6536777-69502696d52a9ccc.png)

image.png
  1. 完成上面所有的操作以后,在进行如下操作:
![](https://upload-images.jianshu.io/upload_images/6536777-4766d4359738f450.png)

image.png



![](https://upload-images.jianshu.io/upload_images/6536777-72aca61b5f7e54c3.png)

image.png
  1. 最后再右键选择NewDriver这个main类, 选择 Run As –> Run
    Configuration :
![](https://upload-images.jianshu.io/upload_images/6536777-5db99caf32dce94c.png)

image.png

大功告成!!!

相关文章