jmeter性能测试方案

性能测试方案

性能测试概述
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项指标进行测试。
测试前期准备
1、 测试需求 :
1-1、 需要将开发给定的需求(前端页面的智能问答接口性能)转为吞吐量和响应时间;
1-2、 根据测试目的,细化需求。
2、 测试准备:
测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备
3、 测试执行:
测试的执行中,需要监控测试客户端和服务器性能,监控服务器端应用情况:
1-3、 1.客户端的系统资源(cpu、io、memory)情况
1-4、 2.服务端的系统资源(cpu、io、memory)情况
1-5、 3.服务器的jvm运行情况
1-6、 4.服务端的应用情况,看是否有异常
1-7、 5.响应时间、吞吐量等指标
1-8、 6.系统资源监控,linux下可以采用的工具有:vmstat、top、meminfo等。
1-9、 7.JVM的监控,可以用jprofiler工具,linux下面的jmap、jhat等。
1-10、 8.响应时间、吞吐量等,由grinder提供

测试方案
4、 使用Jmeter进行参数化压力测试,逐步增加并发量,直至能够明显看出性能瓶颈为止;
5、 注意事项:
1-11、 用jmeter测试时使用BeanShell脚本获取随机参数值,会导致请求时间过长,TPS过低。应改为使用csv读取参数值,记录的TPS会更加准确。 注:进行性能测试时,应注意会影响请求时间的操作,尽量避免因为测试方法不当影响测试结果。
1-12、 进行稳定性测试前,尽量对Jmeter进行减负,避免运行时间过长,导致Jmeter卡死。
性能指标分析
1、聚合报告各项性能指标
Label 每个JMeter的element(例如 HTTP Request)都有一个Name属性,这里显示的就是Name属性的值
Samples 请求次数(=线程数*循环次数)
Average 平均响应时间
Median 中位数,也就是50%用户的响应时间
90% Line 90%用户的响应时间
95% Line 95%用户的响应时间
Min 最小响应时间
Max 最大响应时间
Error% 本次测试中出现错误的请求的数量/请求的总数
Throughput 吞吐量——默认情况下表示每秒完成的请求数(Request per Second)
KB/Sec 每秒从服务器端接收到的数据量

2、接口性能测试指标一般通过标准:
需满足的并发数
(举例:每天8W用户访问,平均在线时长10分钟,1天用户24小时内使用系统)
C = 80000 * 0.166/24=553
注:0.166为10/60得出 C = nL/T
C^= C + 3根号C
其中C为平均并发用户数,n为login session的数量,L是login session的平均长度,T是值考察的时间长度
C^为并发用户数峰值
需要满足的TPS
TPS = (80000
80%)/(20%86060)=11/sec 根据二八原则:
20%常用时间,满足80%业务量
TPS = n
80%/(20%活跃时间60*60)
注:活跃时间一般为8小时
响应时间 根据在并发情况下的响应时间2/5/10原则,最长不能超过10s
错误率 具体系统具体要求,一般小于万分之一
缓存命中率 具体系统具体要求,一般大于85%通过
CPU占用率 70% 好,85% 坏,90%+ 很差
内存使用率 一般小于80%通过

附性能指标行业内要求
1 、响应时间
在一般情况下,弱交互类接口平均响应时间不超过1秒,强交互类接口平均响应时间不超过200毫秒。
2 、成功率
在一般情况下,接口响应成功率需达到99.99%以上。
3、 系统资源
若为最佳负载,则系统CPU及内存使用率建议区间[50%,80%],否则建议不超过50%。
4、处理能力
立项申请书明确要求:在XX压力下(并发数)TPS需达到XX或 接口系统可支撑XX万实时在线访问。
5、稳定性
在实际系统运行压力情况下,可稳定运行N*24(一般 N >= 7 )小时。 在高于实际系统运行压力1倍的情况下,可稳定运行12小时。

上一篇:TPS和QPS的区别和理解


下一篇:科普NA公链(Nirvana):NAC公链采用基于NIO的Netty,实现链上应用百万级TPS并发