JMETER中文手册
9.3.1. 简介
Apache JMeter是100%纯java桌面应用程序,用于压力测试和性能测试。被设计用来测试客户端/服务器结构的软件(例如web应用程序)。它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能。
另外,JMeter能够通过让我们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。
Apache软件组织的Stefano Mazzocchi是JMeter的创始人。他编写它起初是为了测试Apache JServ的性能(一个已经被Apache Tomcat工程所替代的工程),主要针对Web的压力和性能测试。
为了能够让开发者利用它的可插入架构使JMeter的功能快速扩展。未来发展的主要目标是在没有影响JMeter的负载测试能力的情况下尽可能使JMeter成为最实用的回归测试工具,将JMeter扩展到其他测试领域。JMeter可以用于测试FTP、RPC、HTTP、JUNIT、JMS、LDAP、WebService、(Soap)Request以及Mail和JDBC(数据库压力测试)。
3.2JMeter基础应用
开始使用JMeter最容易的方法是首先下载最新版(到 JMeter官方网站:http://jmeter.apache.org/download_jmeter.cgi下载)并且安装它。这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI等测试时使用需要的所有文件。
如果你想执行JDBC测试,你当然需要从供应商得到适当的JDBC驱动。JMeter没有提供任何JDBC驱动。
你可能需要下载的其它软件:
· BeanShell - BeanShell函数和测试元件需要
· Java Activation Framework - JavaMail需要
· Java Mail - Mail可视化,Mail Reader 和 WebService(SOAP)取样器需要
· JMS - JMS 取样器需要
3.2.1 JMeter的安装与配置
从官方网站上下载后,解压之后即可使用。运行命令在%JMETER_HOME%/bin 下,对于 Windows 用户来说,命令是 jmeter.bat(同时会启动一个dos窗口显示一些日志信息)和jmeterw.cmd,建议从jmeter.bat启动要更好些,因为在Jmeter运行的过程中可以在dos窗口看到一些错误日志信息。运行前请检查JMeter 的文档,查看是否具备相关的运行条件。对于最新版(即2.11),需要JDK的版本要求是JDK 1.6以上。
3.2.2 操作系统要求
JMeter是100%纯Java应用程序并且能够正确的在任何有适当的Java实现的操作系统上运行。
JMeter 在下列环境已经被测试:
· Unix (Solaris, Linux, 等)
· Windows (98, NT, 2000, xp)
· OpenVMS Alpha 7.3+
3.2.3 安装和配置
这里推荐大多数用户运行最新版本。
要安装一个构建版本,简单解压zip/tar文件到你想安装JMeter的目录。保证一个JRE/JDK正确的安装并且设置环境变量JAVA_HOME,其它不需要做什么了。
安装目录接口应该看到的像这样一些东西(2.11版本):
jakarta-jmeter-2.11
jakarta-jmeter-2.11/bin
jakarta-jmeter-2.11/docs
jakarta-jmeter-2.11/extras
jakarta-jmeter-2.11/lib/
jakarta-jmeter-2.11/lib/ext
jakarta-jmeter-2.11/lib/junit
jakarta-jmeter-2.11/licenses
jakarta-jmeter-2.11/printable_docs
如果你想的话你可以重命名父目录(例如 jakarta-jmeter-2.11) ,但是不要改变任何子目录命。父目录路径中不能包含任何空格;如果包含,你运行客户端-服务器模式会有问题。
解压Jmeter到你指定的安装目录,然后配置环境变量,打开“系统变量”,新建“JMETER_HOME”,变量值中输入“安装目录”,在CLASSPATH变量值后面添加:“%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar;”
3.2.4 运行 JMeter
要运行JMeter, 运行 jmeter.bat (for Windows) 或者 jmeter (for Unix) 文件。那些文件在bin目录下。稍微暂停后,JMeter GUI会显示出来。
在bin目录你会发现有些附加脚本很有用。Windows脚本文件(CMD文件需要Win2K或者更新):
· jmeter.bat - 运行JMeter(默认在GUI模式)
· jmeter-n.cmd - 使用一个JMX文件运行非GUI测试
· jmeter-n-r.cmd - 使用一个JMX文件远程运行一个非GUI测试
· jmeter-t.cmd - 在GUI模式使用一个JMX文件
· jmeter-server.bat - 以服务器模式启动JMeter
注意: LAST可以在jmeter-n.cmd, jmeter-t.cmd 和 jmeter-n-r.cmd中使用,意味着最后一次测试会运行.
Unix脚本文件; 可以运行在大多 Linux/Unix 系统.
· jmeter - 运行JMeter(默认在GUI模式)
· jmeter-server - 以服务器模式启动JMeter
3.2.5JMeter Classpath简单介绍
JMeter 自动从下列目录中的jar文件发现类。
· JMETER_HOME/lib - 用来放使用的jar文件
· JMETER_HOME/lib/ext - 用来放JMeter组件和扩展
如果你开发新的JMeter组件,你可以压缩它们成jar包并拷贝到JMeter的/lib/ext目录。JMeter将会自动发现在这里的任何jar文件中的JMeter组件。支持的jar文件(类库)应该放在lib目录.如果你不想把扩展jar包放到lib/ext目录,可以在jmeter.properties中定义search_paths属性。不要使用lib/ext给那些公用的jar包;它仅仅是存放JMeter组件。其他jar包 (例如 JDBC, 和任何JMeter代码需要支持的类库)应该被代替放在lib目录 - 而不是lib/ext目录。你可以在$JAVA_HOME/jre/lib/ext安装有用的jar文件,或者(自从 2.1.1版本)你可以在jmeter.properties中设置user.classpath属性。注意设置CLASSPATH 环境变量将不起作用。这是因为JMeter 使用"java --jar"启动,并且java命令无记录忽略CLASSPATH 变量,并且当使用-jar选项时-classpath/-cp 选项也被使用。[所有的java程序都是这样,不仅仅是JMeter。]
3.3Jmeter简单的压力测试实例
如果我们要对163的首页性能进行简单测试,我们可以按照以下步骤进行。
1.在测试计划里面创建一个线程组,在这个线程组下这个线程组的线程数,也就是并发用户数,循环次数每个并发用户的请求数。参数 ramp-up period 用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。假如未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程,假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
2.在这个线程组下右键在sampler里面选择http请求,创建http请求。可以设置http请求的协议,参数,路径等,还可以设置所带上的参数信息。
3.在HTTP请求右键里面选择监听器下的聚合报告,创建一个聚合报告,可以查看这次测试的结果。
4.选择菜单运行里面的启动,启动本次测试。测试结果如果:
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。
如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Note:关于 50% 和 90% 并发用户数的含义,请参考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器,网络 或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。因此,Jmeter得到了广泛的应用。我们可以通过对Jmeter的实际应用来了解Jmeter的使用方法,从而提高我们的各类代码编程效率。
第二篇:JMETER_压力测试报告
JMETER 压力测试报告
1. 压力测试概要
测试环境
测试时间:
服务端配置:
客户端配置:
测试工具:jmeter-2.12
2. 测试说明
(1) 名词定义(时间单位ms)
Sample:本次测试场景共运行多少线程;
Average:平均响应时间;
Median:统计意义上的响应时间中值;
90% line:所有线程中90%的线程响应时间都小于xx的值;
Min:响应最小时间;
Max:响应最大时间;
Error:出错率;
Thougtput: 吞吐量;
kb-sec: 以流量做衡量的吞吐量;
(2) 安装启动JMeter,分别对以上页面进行压力测试
分别测试10,50,100,500,1000个线程,来模拟这么多用户并发访问系统,每个用户循环访问一次
3. 测试结果分析
并发200个线程聚合报告
并发1500个线程聚合报告
并发50个线程聚合报告
并发100个线程聚合报告
并发500个线程聚合报告
并发1000个线程聚合报告