随着各企业的业务发展、用户量以及数据量的不断增加,系统承载的压力也会随之增加,服务系统的性能好坏又严重影响企业的利益。因此,性能测试重要性与需求越来越强烈。
什么是性能测试,性能测试的目的是什么、解决什么问题,性能测试都有哪些类型,相关指标有哪几类?如何开展性能测试?本文一一揭晓。
常见的性能测试目的
性能测试是确定系统在特定工作负载下的响应能力和稳定性。在进行性能测试之前,首先是要明确性能测试的目的,目的不同,对应的解决方案会有很大差异,最常见的性能测试目的(或契机)有三种:
- 评测当前系统性能
通过性能测试了解系统当前的性能是否达到预期。例如:新系统上线前、技术升级后,都会进行性能测试,确保系统在线上稳定可告靠地运行。 - 寻找瓶颈,优化性能
系统已知有性能问题,进行测试寻找瓶颈,以便优化其性能。例如:
用户提出业务操作响应时间长,需要定位问题,调整性能;
系统运行一段时间后,速度变慢,寻找瓶颈,进而优化 - 预测系统未来的性能、可扩展性
通过性能测试预测系统在未来达到一定负载量的情况下,系统的性能表现。为的是提前预防并降低风险。扩展能力非常好的系统,性能是随资源扩展呈线性或接近线性提升。
性能测试的不同类型
- 基准测试
基准测试:系统较低压力时,查看系统的运行状况并记录相关数做为基础参考。 - 负载测试
负载测试是通过逐渐增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统能承受的最大负载量的测试。
目标:确定系统的性能容量(如系统在保证一定响应时间情况下能够允许多少并发用户的访问),系统各项指标,如吞吐量、响应时间、CPU负载、内存使用等如何决定系统的性能。 - 压力测试
压力测试通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
目标:压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。 - 并发性能测试
负载测试和压力测试通常被合称为并发性能测试。
即大并发场景下的系统性能,多用户同时访问时,检测系统是否能够稳定运行。平均并发用户数 C = nL/T
n:平均每天访问用户数(login session的数量);
L:一天内用户从登录到退出的平均时间(login session的平均长度);
T:考察的时间段长度(