性能测试笔记
一、性能测试介绍
1.概述
性能测试时通过工具/代码模拟正常/峰值/异常的负载条件,对系统的各项性能指标进行测试和评估的过程
本阶段的学习范围是服务端的性能测试,不包括客户端性能
测试目的
- 评估当前系统能力,如:新出的手机都有人做跑分测评对比
- 如有不足,则寻找性能瓶颈,进行优化
- 评估软件能否满足未来的需求
分类
- 性能测试:验证系统性能是否满足某些用户场景,是负载测试和压力测试等的统称
此外还有并发测试/可靠性测试/容量测试等,在此不讨论
- 负载测试:加压,查看系统运行情况,甚至找出系统能承受的最大负载
- 压力测试
- 稳定性压力测试:高负载下长时间运行,找出系统稳定运行的时长
- 破坏性压力测试:高负载下继续加压,直到导致系统崩溃,关注极限负载和系统恢复能力
2.性能需求
常见性能需求
- web首页打开速度在3s以内
- 邮箱系统支持100万在线用户,美妙至少需要能处理1000个发邮件的请求
- 某系统需支持每天1000万人次的访问
- 系统需要再实际运行压力2倍的情况下,稳定运行24小时
需求来源
- 客户方提出
- 一般金融,银行,电信 ,医疗等企业,对性能有明确需求
- 内部提出
- 产品:一般会基于核心业务提出需求
- 开发:一般会基于编码实现复杂度或资源占用较高的功能提出需求
- 测试:
- 参照竞品
- 参照自己:根据历史运行数据进行分析,找出客户量,用户增长,用户频繁使用的功能
测试人员往往面对的是不太明确的需求,需要通过分析得到具体需求
一般需要进行性能测试的系统,用户量大 需要优先保证核心业务 的性能
核心测试的对象
- 单一功能【必须掌握】
- 商场:并发下单,高频下单
- 直播软件:并发看直播,高频发弹幕
- WMS:高频更新入库信息
- 混合业务【了解】更接近真实场景
性能测试场景小结
- 高并发:大量用户在同一时刻访问服务器如,
- 淘宝双十一,12306抢票,商城秒杀活动,主播开播瞬间涌入大量观众等等
- 高频率:大量用户在一个时间段内高频访问服务器,如
- 商城黄金时间段下订单,外卖软件用餐时间段点餐,上下班打卡,直播弹幕等
用户量分析
有了核心业务还不够,如已知需要对商城或wms更新入库信息这两个功能做性能测试,具体需要是什么?
可以看出如果没有用户数据,无法得出具体条件,数据的来源可以是客户/产品/开发/运营等