1.1 JMeter安装
JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试.
在ubuntu系统安装:
(1)打开文件/etc/apt/sources.list
,命令:sudo gedit /etc/apt/sources.list
(2)看看这个文件有没有这句话:deb http://us.archive.ubuntu.com/ubuntu precise main universe,没有就添上去,添上去后执行sudo apt-get update
(3)安装JMeter: sudo apt-get install jmeter
在其他系统的安装教程(待补充)
1.2 JMeter基本使用方法
http://www.ltesting.net/ceshi/open/kyxncsgj/jmeter/2013/0812/206566.html
使用过程中出现一个问题,用聚合报告生成的表格只显示error的数目百分比,没有error的详细信息
解决办法:添加监听器->查看结果树,在里面勾上仅显示日志错误,再次运行就可以在这里看到详细信息了
1.3 JMeter报告
1.3.1 报告形式
1)聚合报告
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间Median:中位数,也就是 50% 用户的响应时间(ms)
90% Line:90%用户的响应时间(ms)
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second)
KB/Sec:每秒从服务器端接收到的数据量
2)观察树结果
作用是可以看到每一个请求的回应
1.3.2 报告分析
生成的报告里的测试数据未必是有效的,实际测试中,机器性能、网络堵塞等都会污染报告的数据,以下面几个测试为例:
(1)测试查询绑定信息,查询的账号返回的绑定数据有117K,这里测试的吞吐量约为13/sec;
(2)测试增加账户接口,这个接口后来的返回数据出了问题,返回的数据有20K,于是测试的吞吐量为70/sec;
(3)测试百度网址,吞吐量为18/sec
之前的测试中,一直以百度作为参考,但是实际上对于同一个IP短时间内发送大量的请求,百度做有限制,所以不能以百度作为参考。对于(1)(2)测试,作 猜想,这里测出的吞吐量是和返回数据有关。于是再做测试,同样是查询绑定信息,查询的账号下挂两个三级账户,返回数据是847B,测出的吞吐量约为 560/sec,和预期相符。这里测试吞吐量是受到了本地带宽限制,而在以后作性能测试时,要分析自己测试的环境是否对测试有影响。
总结(从网上摘抄的):
按如下步骤进行分析结果:
(1)分析在整个性能测试期间,测试环境是否稳定正常;如CPU占用率是否过高,网络是否延迟,
(2)检查JMeter参数设置是否合理,运行模式是否合理,测试使用的数据是否不合理(如该次测试的账号信息过长);
(3)检查测试结果是否暴露了系统瓶颈; 还需要考虑待测系统是否有机制屏蔽掉大部分压力(如百度)
1.4 扩展使用
1.4.1 断言
对于有一些接口,我们需要看它是否返回正确的结果,那么可以添加断言进行判断
方法:添加->断言->选择需要的断言
JMeter提供了多种断言方式,可以根据自己需要选择,以响应断言为例,例如我们需要判断是否返回OK来确定返回结果正误,那么可以如图这样设置:
运行的时候,对于每一个返回值都会进行判断,在观察结果树的监听器,对于未返回正确结果的,有error提示和信息,在聚合报告里,断言是否正确会记入到error的百分比里
1.4.2 配置元件
(1)http请求默认值
有时候我们测试的几个接口会具有同样的IP 端口,这时候我们可以在这些接口的同一层级里添加http请求默认值,在这里填上公共的信息后,在其他的sample里就无须再填这些信息了