一、性能测试注意点
1. 用jmeter测试时使用BeanShell脚本获取随机参数值,会导致请求时间过长,TPS过低。应改为使用csv读取参数值,记录的TPS会更加准确。
注:进行性能测试时,应注意会影响请求时间的操作,尽量避免因为测试方法不当影响测试结果。
2. 进行稳定性测试前,尽量对Jmeter进行减负,避免运行时间过长,导致Jmeter卡死。
减负方式:
(1)参数写死或者直接读取csv的数值,减少程序负荷
(2)并发线程不要设置太高,设置200以下
(3)“察看结果树”勾选“仅日志错误”,尽可能减少jvm内存使用
(4)可添加“Simple Data Writer”且保存为csv格式数据
(5)其他监听组件可以都禁掉,通过保存的数据线下生成图标报告
3. 注意如果服务重启后,PID会发生变化,通过命令行方式收集CPU、内存使用数据时,要使用最新的PID进行采集:
ps -ef | grep test 查询进程号,test为服务名关键字
top -b -d 1 -p 34012 > 1117_log 其中34012为PID,1117_log为需要记录的日志名(不存在会自动新建文档)
4. 如果勾选了CPU等监听组件,需要先启动代理服务:
cd ../tmp/ServerAgent-2.2.3
执行./startAgent.sh
5.使用jp@gc - PerfMon Metrics Collector性能测试工具时,要在运行压力测试前开启性能监控,否则可能会造成压力测试期间的性能测试数据缺失而造成性能分析不准确。
6. 进行压力测试时,逐步增加并发量,直至能够明显看出性能瓶颈为止
二、性能指标分析
聚合报告各项性能指标
聚合报告常用指标
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
每秒从服务器端接收到的数据量
接口性能测试指标一般通过标准:
性能测试指标通过标准
需满足的并发数
(举例:每天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%*8*60*60)=11/sec
根据二八原则:
20%常用时间,满足80%业务量
TPS = n*80%/(20%*活跃时间*60*60)
注:活跃时间一般为8小时
响应时间
根据在并发情况下的响应时间2/5/10原则,最长不能超过10s
错误率
具体系统具体要求,一般小于万分之一
缓存命中率
具体系统具体要求,一般大于85%通过
CPU占用率
70% 好,85% 坏,90%+ 很差
内存使用率
一般小于80%通过
感谢每一个认真阅读我文章的人!!!
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。
文档获取方式:点击右边链接领取:软件测试全套资料分享