一.分类
1.负载测试
两种情况:
1. 侧重于确定当前测试中的系统或者应用软件在工作负载条件下,或者在实际运行阶段加载预期的容量时,系统或应用所具备的相关性能特性。(预期产品会有五万的用户并发数,那就加压五万看各项性能指标的表现)
2.通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标下,系统所能承受的最大负载量。(看响应时间在0.5s内时允许的最大用户数)
负载测试是通过逐步加压的方式来确定系统的处理能力,确定系统能够承受的各项阀值。
2.压力测试(没有预期的性能指标)
确定系统或者应用软件在某些超过实际运行i阶段所预期的条件下所具备的性能特性。
通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么条件下系统性能处于失效状态,并获得系统能提供最大的服务基本。
压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效的测试。
压力测试的目的是发现在什么条件下系统的性能变得不可接受,并通过对应用程序施加越来越大的负载,直到发现应用程序性能下降的拐点。
3.容量测试
在满足性能目标的前提下,系统能够最大处理的最大会话能力,确定系统可处理同时在线的最大用户数。
容量测试确定了服务器的极限失效点,同时监控在各种不同负载和流量模式水平下的性能结果。
4.配置测试
通过对被测试软件的软硬件配置的测试,找到系统各项资源的最优分配原则。
5.并发测试
测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及到一些并发测试。
6.可靠性测试
通过给系统加载一定的业务压力的情况下,运行一段时间,检查系统是否稳定。
通常可以测试出系统是否有内存泄漏等问题。
7.稳定性测试
在复杂多变的环境下系统所能提供的总可靠性、健壮性、功能和数据完整性、有效性以及响应的连续性。
(需要长时间运行,一般会进行所谓的7*24小时的稳定性测试)
二.应用场景
- 能力验证
- 规划能力
- 性能基准比较
- 缺陷发现
- 性能调优
主要用途 | 典型场景 | 特点 | 常用性能 测试方法 | |
能力验证 | 关注在给定的软硬件条件下,系统能否具有预期的能力表现 | 在要求平均响应时间小于2秒的前提下,如何判断系统是否能够支持50万用户/天的访问量? | a)要求在已确定的环境下运行 b)需要根据典型场景设计测试方案和用例,包括操作序列和并发用户量,需要明确的性能目标。 | a)负载测试 b)压力测试 c)稳定性能测试 |
规划能力 | 关注如何使系统具有我们要求的性能能力 | 某某系统计划在一年内获客量在到xxx万,系统到时候是否能支持这么多用户量?如果不能需要如何调整系统的配置? | a) 它是一种探索性的测试 b) 常用于了解系统性能和获得扩展性能的方法 | a) 负载测试 b) 压力测试 c) 配置测试 |
性能调优 | 主要用于对系统性能进行调优 | 某某系统上线运行一段时间后响应速度越来越慢,此时应该如何办? | 每次只改变一个配置,切忌无 休止的调优 | a) 并发测试 b) 压力测试 c) 配置测试 |
缺陷发现 | 发现缺陷或问题重现、定位手段 | 某些缺陷只有在高负载的情况下才能暴露出来,如线程锁、资源竞争或内存泄露。 | 做为系统测试的补充,用来发现并发问题,或是对系统已经出现的问题进行重现和定位 | a) 并发测试 b) 压力测试 |