【转】JMeter试用手记

JMeter是一款性能测试工具。个人认为与其说他是一个工具,不如说他是一个框架。因为JMeter的支持范围非常广,目前常见的需要进行性能测试的应用几乎都能应用(如:files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers)。JMeter的一大好处就是它内部已经有实现好的线程机制,用户不用写任何关于并发的东西,只需做简单配置即可。同时他页提供了一些类似插件的东西,用于线程运行时的控制;其次,JMeter对测试结果能都产生相应的统计报表,简单、直观,对一般性能测试应该足够。

QuickStart

下载下来的JMeter有以下几个目录 bin? docs? extras? lib? printable_docs。bin 自不用说了,运行下面的jmeter.bat就可以看见JMeter的GUI客户端了,可以对测试进行所有的配置。docs下面的是JMeter的所有用户手册,还算详细,一般需要的都能查到。可惜没有中文的,英文需要多花点时间。extras下为JMeter对Ant的一些支持。太具体的不是很清楚,不过生产报表这部分必不可少。运行测试时,可以把测试的所有数据记录下来,JMeter自动生成一个.jtl的文件。把此文件放到extras下,运行 ant -Dtest=文件名 report,即可生成测试统计报表。lib目录下还有两个目录,一个是ext,此目录存放用户对JMeter进行扩展的测试应用,一个是junit目录,此目录没用到,不是很清楚。安装文档中的说法,ext目录存放对JMeter的扩展,用户的扩展所依赖的包则要直接放在lib下(不是lib/ext 下)。

主要插件

线程组为JMeter的主要插件,其内部实现好了多现在,用户只要添加、配置即可。
       
        以下为线程组的配置界面:

        如同所示,可以配置线程数,前一个线程与后一个线程启动间隔,以及线程的循环次数。

配置元件为所有JMeter可以使用的应用,JMeter提供了一些基础配置。如图:
              

监听器为测试过程中收集数据的。而且可以根据数据生成相应的报表(文字、图形等)

        逻辑控制器用于对线程的运行逻辑进行控制.
         

Sample

这里我用到主要JMeter的线程和报表,扩展了他的“Java请求”这个应用类别。要扩展此应用,要用到lib/ext/ApacheJMeter_java.jar,他封装此应用。

首先,需要继承ApacheJMeter_java.jar中的抽象类AbstractJavaSamplerClient,它提供了四个抽象方法: void setupTest(JavaSamplerContext arg0),SampleResult runTest(JavaSamplerContext arg0), void teardownTest(JavaSamplerContext arg0), Arguments getDefaultParameters()。setupTest和teardownTest与JUnit中的类似,分别在测试的开始和结束时执行。 runTest为主要测试方法,所有测试程序都在这里完成,JavaSamplerContext参数封装测试中需要的所有外界数据(如配置信息等)。其 SampleResult封装了所有测试结果(如:测试是否成功?程序执行时间等),getDefaultParameters用于把测试的一些默认数据在程序运行前显示到JMeter客户端,这个可以和runTest配合使用,实现数据的呈现和配置。

下面为程序:

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult; 
import com.ebupt.wv.client.WVClient;

public class Login2 extends AbstractJavaSamplerClient {

private static String label = "userLogin"
private String name;
private String address;

public void setupTest(JavaSamplerContext arg0) {
     System.out.println("setupTest");
}

public SampleResult runTest(JavaSamplerContext arg0) {
     name = arg0.getParameter("name");
     address = arg0.getParameter("address");
     SampleResult sr;
     sr = new SampleResult();
     sr.setSampleLabel(label);
     try{
          sr.sampleStart();? //记录程序执行时间,以及执行结果
          sr.setSuccessful(true);
          System.out.println("send over!");
     }catch(Throwable e){
          sr.setSuccessful(false);
     }finally{
          sr.sampleEnd();
     }
     return sr;
}

public void teardownTest(JavaSamplerContext arg0) {
}

public Arguments getDefaultParameters() {
     Arguments params = new Arguments();
     params.addArgument("name", "JMeter");
     params.addArgument("address", "localhost");
     return params;
}

}

其次,把写好的应用打包,放到lib/ext下,JMeter运行时即可找到。同时还要把用户自己编写的应用所依赖的包放在lib下。运行JMeter。界面打开后,右键“测试计划”,添加线程组;右键“线程组”-添加-Sampler-Java请求,在类名称处选择刚才写好的类。
        如图:
?

这里,可以同时添加多个线程组、多个java请求、同时可以添加监听器用于输出不同的的测试结果图形、报表,各个请求之间可以用逻辑控制器进行执行流程的控制。如图:
?

最后,点击运行-启动,保存相应的项目,即可开始运行。运行时的数据,可以通过监听器写入文件以便需要时生成报表。

ant使用

在运行JMeter项目前,会让用户保存项目,保存为.jmx文件,把此文件放到extras目录下,即可使用ant实现测试的自动化。ant有以下几个命令:
        ant -Dtest=项目名称??? 运行项目并生成报表。
        ant -Dtest=项目名称 run??? 只运行项目。
        ant -Dtest=项目名称 report? 只生成报表(这个需要把测试时记录下来的.jtl文件放到ant目录下)

报表如下:

时间: 2024-09-30 15:32:32

【转】JMeter试用手记的相关文章

项目管理工具 Redmine 安装试用手记

项目管理工具 Redmine 安装试用手记 分类: Redmine2009-06-01 10:12 996人阅读 评论(1) 收藏 举报 项目管理工具sqliterubyrails数据库 昨晚闲逛ROR社区,无意间Redmine这款开源的项目管理工具映入我的眼帘,听说集合了Trac和BaseCamp的优点,安装下来试用一下,果然界面清新,功能简单但又齐全,相当适合用于小型团队开发,下面是我安装试用手记 :) 1.安装导向(官网)http://www.redmine.org/wiki/redmin

Microsoft Azure试用手记(一)

公司和微软签了VLSC,有此附赠培训微软的人介绍Azure(读作啊说儿,不是啊祖儿),各种脑洞大开的功能介绍完之后来了一句--现在大陆用不了,大伙就@#¥@#¥¥%!你懂的. 偶然机会我关注了微软科技的微信号 mstech2014 一天无聊看订阅号推送,发现Azure放号,就赶紧点进去,填了各种信息,提交后提示等待管理员审核.过了两天我把这事儿给忘了,又是偶尔check垃圾邮件收件箱,发现邀请码静静的躺在里边...废话不多说,有图有真相. 一.激活信     激活信的内容很简单,无非就是注册地址

Web软件开发工具WebBuilder试用手记

最近公司在使用WebBuilder做项目开发,感觉很不错. 官方主页在这里:http://www.putdb.com/ 可以看到,这货不仅能使用可视化的方式拖拽出界面,还能直接在页面上完成数据库相关的操作.对于企业级的应用来说,一般会涉及到非常复杂的表单布局,以及大量的数据库交互.使用WebBuilder则只要打开一个浏览器就可以了,plsql神马的,一般的开发就无需打开了. Amdocs也有一款类似的在线动态表单设计器,不过整体使用手感不如WebBuilder这么流畅,另外这款工具前端部分是基

IntelliJ IDEA 13试用手记(附详细截图)[转载]

从去年开始转java以来,一直在寻找一款趁手的兵器,eclipse虽然是很多java程序员的首选,但是我发现一旦安装了一些插件,workspace中的项目达到数10个以后,经常崩溃,实在影响编程的心情. 今天试用了近年获得众多好评的IntelliJ IDEA 13,感觉焕然一新,记录如下: 一.下载安装 http://www.jetbrains.com/idea/download/ 这是官网的下载地址,支持mac/windows/linux三大主流平台,我今天试用的是mac版本 说明:Intel

Docker运维必备:监控宝Docker监控试用手记

本文由肖远昊深度实践docker监控的报告   非常荣幸得到监控宝的邀请,试用了他们最近推出的新产品--Docker监控. 9月7日,中国APM厂商云智慧CloudWise正式发布上线Docker监控,该产品从部署到使用,整个过程都非常的简单.不仅能够实时监控宿主机和Docker容器的性能信息(包括CPU.Mem.磁盘.Net In/Out),还可以自定义相应的告警策略.以下将从部署.监控信息.告警这几个方面聊聊试用体会.大家可以[注册]监控宝,免费使用Docker监控. 部署流程 阅读了Doc

[转发]RTH试用手记之“外场应用”

年初,罗德与施瓦茨公司(Rohde & Schwarz)推出了第一款的手持示波器,从指标上看,该示波器打破了传统手持器功能简单.指标水平低.结构粗糙的印象,取而代之达到了主流台式数字示波器的性能,在使用方式和功能上,将手持示波器的发展到了一个新的水平.华睿集成有幸较早的获得了RTH试用的资格,我们通过实际的测试和比较,看看这一款新定义的手持示波器到底能给客户带来多大的惊喜. 作为一款手持示波器,会经常应用在外场环境,这就要求设备在设计和定义中,要全面考虑外场的环境和条件,那RTH针对外场环境有哪

linux下的powershell,pash试用手记

------1 概述------ 1.1 简单来说linux,unix是非常依赖脚本的,而win不是.win中有很多图形程序+c库,效率不比脚本差.点几下鼠标照样能完成需求.当 然,图形和字符是两码事,不能完全替代. 1.2 win中的bat和linux中的bash都是老脚本语言,纵横沙场几十年,功勋卓著.但由于太老,有很多限制和缺陷.用起来比python和powershell差 很多,麻烦很多.一般来讲玩python和powershell的不乐意用.总之新的大有替代老的之势. 1.3 简单来讲

(转)JProfiler试用手记

JProfiler是一款Java的性能监控工具.可以查看当前应用的对象.对象引用.内存.CPU使用情况.线程.线程运行情况(阻塞.等待等),同时可以查找应用内存使用得热点,这里提供有几篇文章供参考:获取.介绍,简单入门,使用JProfiler解决实际问题.这几篇文章基本介绍了常见东西了,下面说点心得. AD:51CTO学院:IT精品课程在线看! 所谓“工欲善其事,必先利其器”,好的工具确能起到事半工倍的作用.我用到的最多的就两个JConsole 和JProfiler .JConsole监控系统内

visual studio 2013的C++开发环境不错--vs2013安装试用手记

原文:http://blog.csdn.net/haoyujie/article/details/24370189 从visual studio 体系,最后一次对C++实现了大的改进,那还是vs 7.1 ,那次微软终于大大地改进了编辑器. 而vs 2003事实上是vs 2002的升级. vs 2002的C++开发环境,事实上存在非常严重的BUG,根本就不能用. 从此以后,微软的vs 2005 , 2008 ,2010 ,2011 ,2012 都是要打SP1才能用于C++编程. 可以肯定,阿三们,