性能测试分类
性能测试分为:
1. 并发测试
通过模拟并发访问,测试多用户对同一个应用、模块或数据记录时是否会发生死锁或其他性能问题。主要目的是发现系统中可能隐藏并发访问时的问题,例如内存泄露、线程锁或资源争用方面的问题。在开发的各个阶段使用工具进行测试。多个用户在同一时间对同一系统进行相同操作(狭义并发和广义并发)
- 狭义的并发:指所有的用户在同一时刻做同一件事情或操作,这种操作一般针对同一类型的业务,或所有用户进行完全一样的操作,目的是测试数据库和程序对并发操作的处理。强调对系统的操作完全相同,多适用于负载测试、压力测试、稳定性测试等场景(访问同一接口,单接口并发)
- 广义的并发:指多个用户对系统发出了请求或者进行操作,但这些请求或操作可以是不同的。对整个系统而言,仍然有很多用户同时进行操作。不限制对系统的请求操作,多适用于混合场景、稳定性测试场景(访问不同接口,系统级并发,多接口并发)
2. 负载测试
在一定软硬件环境下,通过不断加大负载(不同虚拟用户数)来确定在满足性能指标情况下能够承受的最大用户数。简单说,可以帮我们对系统进行定容定量,找出系统性能的拐点,给予生产环境规划建议。这里的性能指标包括TPS(每秒事务数)、RT(事务平均响应时间)、CPU Uing(CPU利用率)、Mem Uuing(内存使用情况)等软硬件指标。
(找到系统稳定时(或满足性能需求下)的最大吞吐量。要有响应时间,错误率限制,比如:99.9%的响应时间必须在1s之内,平均响应时间在1s之内,100%请求成功)
3. 稳定性测试(可靠性测试)
在一定软硬件环境下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定。
(以系统稳定时(或满足性能需求时)的最大吞吐量,长时间对系统进行测试,检查系统是否稳定。)
与压力测试的区别在于,负载并不强调是在极限状态下。
4. 压力测试
在一定软硬件环境下,通过高负载的手段来使服务器资源(强调服务器资源、硬件资源)处于极限状态(系统瓶颈,系统崩溃临界值,要求响应时间可以变慢,但系统不能崩溃),测试系统在极限状态下长时间运行是否稳定,确定是否稳定的指标包括TPS、RT、CPU Uing、Mem Uing等
5. 配置测试
为了合理的调配资源,提高系统运行效率,通过测试手段来获取、验证、调整配置信息的过程。通过这个过程我们可以收集到不同配置反应出来的不同性能,从而为设备选择、设备配置提供参考。通过对系统的软/硬件环境的调整,去发现不同的条件对系统的性能影响的程度,从而找到系统各项资源的最优。这种性能测试方法的主要目的是了解各种不同的因素对系统性能的影响程度,从而判断出最值得进行的调优操作。 但是这种性能测试方法一般在对系统性能状况有初步了解后进行,且用于性能调优和规划能力。
6. 失效性测试
当系统局部出现问题时,其他部分是否可以正常运行
所以我理解的测试顺序,应该是:并发->负载->稳定性(可靠性)->压力测试->配置测试