一:JMeter简介
JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。另外JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证被测程序返回的结果。为了保证最大的灵活性,JMeter允许使用正则表达式创建断言。
二:安装与目录结构
- 下载路径:http://jmeter.apache.org/
- 下载完后,放在相应的目录,解压,配置环境变量即可
目录结构:
3.1: Bin目录:可执行文件目录。
在window操作系统下,进入bin目录,运行JMeter.bat,就可以看到JMeter的GUI客户端,如图:
3.2: docs和printable_docs目录:
docs目录存放Java API文档;printable_docs的usermanual子目录下的内容是JMeter的用户手册,其中component_reference.html是最常用的核心元件的帮助文档。
3.3: Extras目录:
Extras目录的文件提供对构建工具Ant的支持,可以使用Ant来实现测试自动化,例如,批量执行脚本,产生HTML格式的报表。
3.4: Lib目录:
Lib目录下包含两个子目录,其中ext子目录存放JMeter的核心jar包,另一个junit子目录存放JUnit测试脚本。用户
拓展依赖的包,直接存放在lib目录下,非lib/ext下。
三:JMeter工作原理
JMeter可以作为Web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的响应,这样就很容易地生成性能测试脚本, 有了性能测试脚本,JMeter就可以通过线程组来模拟真实用户对Web服务器的访问压力,这与LoadRunner的工作原理基本一致。
四:JMeter常用的组件
- 线程组:
测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“Test Plan(鼠标右击) -> 添加 ->Threads(Users) -> 线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。 - 取样器(Sampler):
可以认为所有的测试任务都由取样器承担,有很多种,如:HTTP请求。 - 断言:
对取样器返回的请求结果给出判断是否正确。 - 监听器:
它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等
五:JMeter性能测试案例
- 创建web测试计划
我会模拟20个并发用户,对车童网登陆和派单页面进行访问,每个用户访问3次。 - 录制性能测试脚本
(1)Jmeter代理录制或badboy录制(采用badboy录制方便些)
安装badboy,打开应用,输入url,点击红色的圆圈,便开始录制,如图
录制登陆和派单完成后,导出badboy测试脚本,导出格式为JMX格式。
点击 File>Export to JMeter ,保存为chetong.jmx的脚本。
(2)加载测试脚本:将JMX格式的脚本,加载到JMeter中,如图:
(3)修改调试脚本:为脚本添加逻辑控制器,监听器:聚合报告,图形结果。
设置线程数为20,Ramp-up 为1,循环次数为 3
3.运行脚本
4.分析结果
(1)聚合报告:
如图所示:20个用户并发登陆,派单时,平均响应时间为283ms,错误率为0,吞吐率为92.7/sec,服务器返回数据692.4KB/sec
Label :各个模拟测试的名称
Samples :各个测试的样本总数
Average :每个请求的平均响应时间
Median :中值,即50%请求的平均响应时间
90%Line :90%请求的响应时间
Min :最小响应时间 ,Max :最大的响应时间
Error% :错误响应的概率。即无法响应的概率。
ThroughPut :吞吐量 – 默认情况下表示每秒完成的请求数(Request per Second)。
KB/Sec :每秒从服务器端接收到的数据量。
(2)图形结果:
显然当线程全部启动后,平均响应时间迅速增长。
(3)查看结果树:
响应数据中文乱码问题:
sampleresult.default.encoding=utf-8
附:可以通过apache-Ant工具生成html格式的测试报告
- 解压ant到本地,配置环境变量
进入cmd,执行ant -version,检验是否安装成功 - 将chetong.jmx脚本复制在JMeter本地目录的extras文件夹下
- 打开cmd,进入extras目录。执行 ant -Dtest=chetong,见到success说明执行成功,在extras文件夹下可以看到chetong.jtl,chetong.html
4.打开chetong.html,查看测试报告,如图