JMeter介绍
JMeter是Apache下一个类似LoadRunner的开源性能测试项目,可用用来对静态的和动态的资源(如:files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers)的性能进行测试.
可对以下类型服务进行性能测试:
Web - HTTP, HTTPS
SOAP
Database via JDBC
LDAP
JMS
Mail - POP3(S) and IMAP(S)
官方网站http://jmeter.apache.org/
基本概念
测试计划:
使用JMeter进行测试的起点,是其它JMeter测试元件的容器
线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。
取样器(Sampler):模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等.
监听器:负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。
断言: 用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于测试的有效性非常有用.
定时器:
负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。
逻逻辑控控制器:
允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列.
配置元件:
维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容.
前置处理器/后置处理器:
负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
构建测试
QuickStart
下载解压后即可打开GUI界面,建立一个简单的JMeter测试计划
首先建立测试线程组,然后添加Sample,这里选择HTTP请求
配置服务器名称为www.meituan.com,方法设置为GET(其它如POST,PUT,DELETE均支持)
这里我们添加监听器-查看结果树方便查看发送的请求内容及返回结果,运行测试,通过查看结果树即可看到发送请求及响应数据,其它常用的处理结果的监听器有图形结果,聚合报告,Aggregate Graph等。
参数化
实际的测试场景往往不是上述这么简单,比如GET,POST,PUT,DELETE时往往会带有不少参数,而在进行性能测试时我们希望这些参数在指定的范围内或为我们指定的值,这时候就需要对请求进行参数化,下面是一些常用的参数化方法。
数据文件
通过添加配置元件-CSV Data Set Config从外部文件中导入参数
filename可直接只填名字,默认位置为测试计划配置文件(jmx)所在路径
Encoding:有中文时需要填,一般不用
Vaiable Names:文件中各列所表示的参数项;各参数项之间利用逗号分隔;参数项的名称应该与HTTP Request中的参数项一致
Delimiter:如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t
Recycle on EOF:True=当读取文件到结尾时,再重头读取文件 False=当读取文件到结尾时,停止读取文件
Stop thread on EOF: 当Recycle on EOF一项为False时起效;True=当读取文件到结尾时,停止进程
配置好上述csv之后即可在请求中直接引用
可配置多个csv文件,也可在一个csv文件中配置多项
利用函数
Jmeter中可以产生值的函数有:
Random( , , ),threadNum,CSVRead( , ),_StringFromFile( , , , ) 等,利用上述函数可用很方便的产生随机参数
【说明】关于Jmeter的函数使用,可以用Jmeter的函数助手对话框:点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的下拉框中选择你所要是有的函数,在函数参数列表的“值”这一栏,填写好相应的参数值,点击按钮【生成】,就可以拷贝生成的函数字符串进行使用了。
利用函数的使用方式与上述方式相同,将value替换为该生成的函数字符串即可,如图
关联
在需要获得数据的请求上右击添加一个后置处理器,并设置引用名称即可,如图现在有如下两个请求add,update,我们希望第二个请求能update刚才添加的数据,add请求执行成功后会返回id,则可以給add请求添加后置处理器获取该值然后在update请求中直接引用
{"data":{"id":2078585},"paging":null}
在之后的请求中直接通过${id}即可引用该值。
脚本录制
通过上述GUI配置方式得到的测试方案会以jmx文件的方式进行保存,实际测试时只需要该jmx文件即可,如果需要测试很多功能,采用手动配置方式就显得不太方便,通过利用Badboy进行脚本录制可以很方便的得到jmx文件,然后调整修改加入参数化内容即可得到我们最终需要的测试方案。
Badboy是用来录制操作过程的,它录制的结果是被jmeter做并发测试的素材使用。
Badboy官方网站
http://www.badboy.com.au
查看结果
如下图为通过Aggregate Graph看到的测试结果,可以根据情况选用多种监听器来获取测试结果
自动化
JMeter也可以用命令行的方式执行,并纪录执行结果到文件,然后再进行处理导出性能数据及图表。
JMETER_HOME=apache-jmeter-2.6
JMETER_JAR=$JMETER_HOME/bin/ApacheJMeter.jar
java -jar $JMETER_JAR -n -t poi.jmx -l poi.jtl
-n 制定JMeter运行在non-gui模式下
-t 包含测试计划的JMX文件的名称
-l 用于记录简单结果的JTL文件名称
预先设置好JMeter测试运行环境之后,可以方便的通过脚本自动执行性能测试,并将执行结果纪录到jtl文件,经过处理后得到性能数据及图表并进行展示。
运行测试,纪录结果到JTL_FILE.jtl文件
java -jar $JMETER_JAR -n -t $PLAN_JMX -l $JTL_FILE.jtl
利用perl脚本对结果进行处理并绘制性能数据图
perl $JMETER_GRAPH_PL -alllb $JTL_FILE.jtl
JMETER_GRAPH_PL日志处理脚本,来源于官网社区
http://dl.iteye.com/topics/download/58263d68-ea27-393c-b2e7-6dc595d44595
响应时间范围分布图,x轴为请求数量,颜色区分不同时间范围,比如小于20ms的显示为绿色
具体请求的响应时间及每分钟流量
其它
JMeter功能强大的前置,后置处理器,也许可以用来实现对接口/功能的白盒自动化测试,预先录制好脚本,同时根据测试需求添加好前置,后置处理器如正则表达式对响应结果进行验证,再通过脚本对测试结果进行分析,输出接口/功能的验证结果,集成到CruiseControl中进行展示。
- 大小: 58.5 KB
- 大小: 57.9 KB
- 大小: 33.1 KB
- 大小: 31.8 KB
- 大小: 31.6 KB
- 大小: 27.1 KB
- 大小: 38.6 KB
- 大小: 7.1 KB
- 大小: 44.9 KB
分享到:
相关推荐
Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP...
Apache JMeter是一款强大的、开源的压力测试工具,专为评估应用程序的性能和稳定性而设计。它最初是为了测试Web应用,但随着时间的发展,其功能已经扩展到支持多种协议和服务,包括HTTP、FTP、SMTP、JDBC、SOAP、RMI...
总之,"apache-jmeter-5.2.tgz"是一个包含JMeter 5.2版本的Linux压力测试工具包,它能帮助测试团队在Linux环境中有效地进行性能测试,解决Windows端口回收慢的问题,以及进行大规模的分布式测试。掌握JMeter的使用,...
Apache JMeter (apache-jmeter-5.5.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter...
总结,"apache-jmeter-5.3.tgz.7z"文件提供了强大的性能测试工具Apache JMeter的5.3版本,涵盖了压力测试、负载测试、分布式测试等多个方面,对于评估和优化Web应用的性能非常有用。在Linux环境下,遵循上述步骤即可...
源代码可以使用Java编译器进行编译,并可以通过构建工具如Maven或Gradle进行构建。此外,源代码也便于开发者进行错误排查和修复,以及贡献代码给JMeter项目。 **JMeter 3.0的关键特性**: - **多线程测试框架**:...
它最初设计为HTTP服务器的负载测试工具,但随着时间的发展,现在已经能够处理各种各样的协议,包括FTP、SMTP、POP3、JMS、Java对象、数据库以及更多。JMeter 5.1.1是其一个稳定版本,提供了许多新功能和改进。 首先...
Apache JMeter是一款强大的性能测试工具,专为评估和分析服务器、网络或对象的性能而设计。这个"apache-jmeter-5.2.1"压缩包包含JMeter的5.2.1版本,这是一个稳定且功能丰富的发布,适用于各种性能测试场景。 ...
3. 配置 jmeter 环境变量:JMETER_HOME=D:\apache-jmeter-3.3\apache-jmeter-3.3,CLASSPATH=%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar; jmeter 启动 双击 jmeter bin 目录下的...
**JMeter软件测试工具——jakarta-jmeter-2.3** Apache JMeter是一款强大的、开源的测试工具,专为评估应用程序的性能和功能而设计。它最初被开发用于Web应用测试,但随着时间的推移,它的功能已经扩展到支持多种...
### Web性能测试工具-JMeter详解 #### 一、概述 **Apache JMeter** 是由Apache组织开发的一款开源、免费的性能测试工具,...未来的学习中,还需加强对测试工具的理解和使用技巧,以便更好地应对实际工作中的挑战。
Apache JMeter (apache-jmeter-5.5.tgz)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter...
Apache JMeter是一款强大的开源性能测试工具,主要用于模拟大量并发用户对服务器、网络或者数据库进行压力测试,以评估其在高负载下的性能和稳定性。在"apache-jmeter-3.2"这个版本中,用户可以体验到JMeter的诸多...
总的来说,"apache-jmeter-5.0压力测试安装包"是一个全面且强大的性能测试工具,无论你是想测试接口的稳定性还是Web服务的并发能力,都可以借助这个工具得到详尽的数据和分析。只要根据自身的测试需求进行适当的配置...
它最初设计用来测试Web应用,但随着时间的发展,JMeter的功能已经扩展到支持各种类型的接口测试,包括HTTP、FTP、TCP、JDBC等,使其成为了一款多用途的性能测试工具。 JMeter的工作原理是模拟多个并发用户执行特定...
Apache JMeter是一款强大的性能测试工具,专为评估和分析服务器、网络或对象的性能而设计。这个最新的Windows版本,"apache-jmeter-5.4.zip",提供了许多增强的功能和改进,使得性能测试过程更加高效和精确。 1. **...
JMeter是一款开源的Java应用程序,用于执行各种负载测试、功能测试、性能测试和压力测试任务。JMeter主要是针对Web应用程序,但它也可以用于测试其他类型的客户端/服务器系统。JMeter使用Java编写,具有跨平台性,...
Apache JMeter 是一款开源的、跨平台的性能测试工具,主要设计用于测试Web应用程序的负载和性能。在“apache-jmeter-5.1.tgz”这个压缩包中,包含了JMeter 5.1版本的所有组件和资源,适用于Windows、mac等不同操作...
而Apache JMeter则是一款功能强大的性能测试工具,常用于模拟大量用户并发访问Web应用,以评估系统的负载能力和稳定性。 ant-jmeter-1.0.9.jar是这个压缩包的核心,它是一个库文件,允许Apache Ant与Apache JMeter...
Apache JMeter是一款强大的性能测试工具,专用于模拟和度量应用程序、服务器、网络或数据库的负载和性能。在“apache-jmeter-5.3.zip”这个压缩包中,包含了JMeter 5.3版本的所有必要文件,解压后即可直接使用,这...