一、 什么是jmeter
Jmeter是免费开源的性能测试工具(同时也可以用作功能测试,http协议debug工具).在如今越来越注重知识产权的今天, 公司越来越不愿意冒着巨大的风险去使用盗版的商业性能测试工具. 但如果不使用盗版, 昂贵的License费用也不是每一个中小型公司,甚至是大型公司愿意投入的. 所以很多公司甚至还在铤而走险的买少量的license,然后大范围的使用.jmeter这个免费且好用的性能测试工具, 有足够的理由成为是我们不二的选择。
Jmeter是java语言编写,开放源代码。有了源代码,使得我们可以更深入的分析一些问题。(比如响应时间等),这样有助于我们更深刻理解性能测试,可以学习如何才能更精确的计量时间。商业软件就没有这个优点, 你想知道的东西,只能去看他们提供的文档,但文档并没有代码更能说服人。
二、 Jmeter对比LoadRunner
描述 | LoadRunner | Jmeter |
---|---|---|
协议 | 支持HTTP、RTSP、SIP、Socket、JAVA自定义、媒体质量分析等 | Web - HTTP, HTTPS ,SOAP / REST,FTP,Database via JDBC,LDAP,Message-oriented middleware (MOM) via JMS,Mail - SMTP(S), POP3(S) and IMAP(S),Native commands or shell scripts,TCP |
脚本录制 | 支持,不支持读取cap抓包文件直接转换为业务脚本;场景如机顶盒业务 | 支持代理录制,但不支持HTTPS;支持badboy录制产生脚本 |
UI界面 | 支持,脚本录制与编辑、场景控制,结果分析都界面化 | 支持,但不完善,功能少,不够美观 |
资源占用 | 资源占用率高 | 资源占用较高 |
分布式测试 | 支持由单一控制器管理多个负载生成器 | 支持 |
并发模型 | 支持多种并发模型 | 并发模型单一 |
报告与分析 | 完善,支持生成HTML、Word报告 | 简单图表 |
资源监控 | 完善,支持SNMP收集资源指标 | 不支持 |
虚拟IP | 支持系统虚拟IP | 不支持 |
网速模拟 | 支持 | 不支持 |
扩展性 | 完善,附加的TSL或者C函数库 | 开源,用户可根据需求修改源代码 |
三、 Jmeter的安装及启动
jmeter官网:http://jmeter.apache.org/
可以下载jmeter编译好的压缩包,windows下可以下载zip包,最新版本是jmeter3.0,要求java版本为7或更高版本,也可以下载老版本以支持较低版本的java,不过会无法体验到新功能。
windows下解压zip包,双击运行解压缩目录下\bin\jmeter.bat,则会启动jmeter gui界面,如果不希望启动gui界面可以指定参数。
linux下运行jmeter.sh可以启动jmeter
以上方式是在jmeter目录下运行,如果想全局运行可以配置环境变量,配置方法:
桌面上 右键选中计算机—>属性—>高级系统设置—>环境变量设置:
在“系统变量”—>“新建”, 在变量名中输入:JMETER_HOME,变量值中输入:jmeter解压路径 ,再修改CLASSPATH变量,变量值中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;% JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar; 然后确定即可
四、 建立http测试
这里创建一个简单的http测试,来熟悉jmeter如何进行http的性能测试
启动jmeter
添加线程组
添加http请求采样器
创建一个访问bing的http请求
添加一个响应断言,验证请求是否正确
添加一个监听器,查看请求和相应结果
保存测试脚本
启动测试,验证结果
可以看到我们的请求和相应结果
重新设置一下相应断言,再看一下响应结果
可以看到断言失败,因为我们的请求是成功的,而我们用断言来判断一个异常的响应状态
五、 脚本录制
实际的测试场景中,如果手动添加每一个web(http/https)请求,费时又费力,而且有可能最后手动编写的和实际发出的请求有出入。幸好jmeter自身可以录制脚本,或者通过其他工具生成jmeter脚本,下面就介绍一下如何进行脚本录制。
录制方法1:
通过jmeter自身设置就可以实现脚本录制:
创建一个线程组
创建http代理服务器:
设置代理服务器
设置IE浏览器:
注意端口号要与jmeter上的端口号一致
单击jmeter上的”启动”按钮,打开浏览器输入要测试的网址,jmeter就会记录你的操作:
启动过程中会出现如下提示:
进行测试操作jmeter就会自动生成脚本:
录制方法2:
使用badboy进行录制,首先要下载badboy安装包:
badboy官网:http://www.badboy.com.au/
下载badboy并进行安装
启动badboy
点击红色按钮开始录制,然后在地址栏中输入被测网址
录制完成后点击黑色按钮停止录制
导出生成jmeter脚本
使用jmeter打开刚刚录制的脚本
至此badboy的脚本录制已完成