性能测试:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。本文章介绍性能测试的基本概念。
Quick Guide
性能要求
- 用户
- 响应速度
- 稳定性
- 开发
- 架构是否合理
- 数据库设计
- 代码
- 系统管理员
- 资源利用率(合适的比例)
- 可扩展性
- 系统容量(可容纳的用户请求)
- 稳定性
性能测试应用场景
- 能力验证 关注在给定的软硬件条件下,系统能否具有预期的能力表现
- 规划能力 关注如何使系统具有我们要求的性能能力
- 性能调优 主要用于对系统性能进行调优
- 缺陷发现 发现缺陷或问题重现、定位手段
- 性能基准比较 比较每次迭代中的性能表现变化,判断迭代是否达到了目标
性能测试类型
- 基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考。
- 并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
- 负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等。
- 压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
- 稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
性能测试基本概念
- 并发数
- 并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
- 在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
- 系统用户数:系统注册的总用户数据
- 吞吐量(TPS) : 单位时间内系统处理的客户端请求的数量(完成一个业务事务的过程)
- 响应时间 :从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间
- 资源利用率 :指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
- CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制
- 内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。
- 磁盘IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使用这些数据。
- 网络:
结论
模拟用户的真实、峰值和异常的请求量(单位时间的请求数量*单位请求内容大小)去访问系统,监控其性能情况(TPS、响应时间和资源利用率)并获取。