一、什么样的系统需要做性能测试?
用户多,用户事件模型、电商等
二、什么是软件性能测试?
响应时间/服务器的处理能力。
a点到b点之间的性能测试,指:以系统预期性能指标为前提,对系统不断增加压力,已验证系统能否达到预期性能。
软件性能的关注是多个层面的,用户关注的性能:系统的响应时间。
响应时间=(网络时间(N1+N2+N3+N4)+服务器处理时间(A1+A2+A3))
做性能测试硬件前提准备:
1.千兆交换机
如果不是千兆交换机,网络容易丢包,压力达不到服务器,网络会被全部跑满,服务器没有压力,响应时间很长,压测没有效果,无法发现代码问题。还有一点主意的 是:要在局域网进行性能测试,不受带宽影响。
2.服务器
在日志里面打印代码的处理时间,选择8G内存 16C(核CPU)的服务器。
3.数据库
打开慢查询,看我们的执行计划。最直接的表现:CPU一般会很高,用户态CPU很高(单表数据要达到20-40万才能体现慢查询)
三、管理人员的性能关注点
1.应用服务器,数据库服务器 资源利用率
2.支持多少用户 系统容量
3.最大的并发用户
4.是不是可以更换硬件提高性能 可扩展性
5. 能不能支持7X24小时处理业务 稳定性 (遵循4个9原则:成功率99.99%)
四、开发人员的性能关注点
1.架构设计是否合理 系统架构
2.数据库设计是否合理
3.代码逻辑 代码
4.线程
五、测试人员性能关注点
测试人员除了关注以上管理人员和开发人员关注的点之外,还需要关注
数据流向,进过哪几层服务,有哪些服务器,网络的瓶颈,服务器的瓶颈以及中间件。
六、性能测试的目的
1.验证系统的处理能力
2.识别系统的性能瓶颈
3.验证系统的稳定性和可靠性(一般会压12个小时就够)
4.系统调优(如购票系统:分流(分地区),时间段出票(分时间),排队系统机制,全程票(减少查询数据库的次数))
七、性能测试方法
a.性能期望值
b.高于期望器,系统资源处于临界点
c.高于期望值,拐点
d.超过最大负载,系统崩溃。