说到性能测试,想必大家都会有种种困惑,对于性能测试的概念也模糊得很,那么今天就和大家聊一聊什么是性能测试?性能测试其实是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。通俗地说,性能测试就是要在特定的运行条件下验证系统的能力状态。
从用户视角来讲,关注点主要就是在前台界面的请求、事件的响应时间,操作页面是否有超时等待、体验不好、流畅度不够的地方;站在开发视角来说,就是改善设计、代码、系统设置来调优、修复多用户导致的故障和崩溃;负责系统运维的后台管理员,会比较重点关注系统配置的服务器占用和资源消耗,就是硬件上的系统容量、瓶颈、可扩展性、稳定性、可靠性、资源消耗。那性能测试其实就是兼顾前台界面、软件代码和硬件配置来保障系统性能,提供良好的用户体验,尽可能找出系统性能薄弱的环节,帮助进行性能优化。
软件性能如何来评估?性能是表明软件系统或构件对于其及时性要求的符合程度,一般可以用响应时间或吞吐量来衡量。对于交互系统而言,响应时间是对请求作出响应所需要的时间,是用户视角的软件性能的主要体现。
对于单个请求,指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。吞吐量也是快速识别性能瓶颈的重点测试指标,RBI(基于风险评估的设备检验技术—Risk Based Inspection)指出:80%的系统性能瓶颈由吞吐量造成,吞吐量常用TPS来描述。
性能测试通俗来讲是为了描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试。它主要通过自动化的性能测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项指标进行测试。今天带大家来了解一下性能测试的不同类型,以及每种性能测试类型都测试哪些方面。
性能测试大致分为以下六种:
第一种是Benchmark(标杆测试)又叫基准测试,主要是测试一些基础数据,给进一步建立性能模型提供依据,一般测试人员按照并发用户来执行脚本,校验脚本正确与否,为之后的压力测试和负载测试做准备;
第二种是Load(负载测试),对照预定的负载级别测试,不断升高级别,测试出系统的瓶颈,一般测试人员会根据实际情况对系统进行逐增逐减阶梯加压,依此观察系统的承载能力;
第三种是Stress(压力测试),也叫极限和峰值测试,持续在比较高的负载水平下测试,寻找系统无法承受的点,一般把这个点叫做性能拐点,拐点预示着资源耗尽或出现瓶颈,此后TPS将不再上升;
第四种是Endurance(耐久性测试),也叫稳定性测试,在长时间大压力环境下测试,测试系统性能的可靠性,一般会取峰值并发的80%进行N*24小时的验证,判端系统性能的可靠程度;
第五种是Scalability(可扩展性测试),也叫配置测试,对系统不同的横向扩展配置进行测试,测试出单位服务节点带来的性能增量,验证软件的横向扩展性;
最后一种就是Failover(失效恢复测试),针对有冗余备份和负载均衡的系统,检验发生局部故障时系统是否仍然能够正常工作。