前言
本文的重心放在了前期的分析和策略准备上,也是希望大家先思考后行动,毕竟压测本身也算是个复杂的工程。压测后的问题分析和调优,后续再找机会梳理下。
需求分析
确认性能测试的需求来源,一般有这几种:
-
- 日常迭代,性能基线摸底
-
-
- 统一指标,固定环境,主要关注关键指标的变化
-
-
- 重大活动,业务事件前的摸底测试
-
-
- 着重考察高压力情况下的服务表现
- 摸高测试,找到性能瓶颈点
- 为水平扩容提供数据依据(即在当前性能表现下,为了要满足**业务需求,我们还需要**机器)
-
-
- 功能首次上线,对系统的首次评估
-
-
- 一般会涉及到一次摸底测试,找到系统极限
- 同时记录性能基线,为后续巡检提供数据对比
-
另外针对项目类型,又区分公有云/私有化部署,需要确认部署环境。
常见的几种性能测试类型:
基准测试
基准测试是指模拟单个用户执行业务场景,监控系统的性能指标与服务器资源。严格来说,基准测试不属于性能测试的范畴,它与功能测试其实没有太大的区别。
基准测试的目的更多的是关注业务功能及验证脚本的一个准确性,然后,将基准测试时采集到的结果(各项性能指标及服务器硬件资源)作为后续并发测试性能分析的一个参考依据。
负载测试
负载测试是模拟系统在正常负载压力场景下,考察系统的各项性能指标。这里说的正常负载,主要是指用户对系统能承受的最大负载量的期望值。即预计系统最大可用支持的业务并发用户数。
通过负载测试,可以验证系统是否能满足我们预期的一个业务压力场景。通过负载测试,得到系统的性能拐点(最佳性能点),当达到这个点时,系统的极限与表现能力又是多少。负载测试也经常用于线上流量评估。
压力测试
压力测试是测试系统在多大并发压力下系统的性能会变得不可接受,或者出现性能拐点(崩溃)。在加压策略上,压力测试会对被测系统逐步加压,
在加压的过程中考察系统性能指标的走势情况,最终找出系统在出现性能拐点时的并发用户数,也就是系统支持的最大并发用户数。
压力测试主要用于测试系统或系统某些部分的极限能力。通过一直增加负载,直到应用的部分功能不能正常工作,压力测试的目的是找到被测系统的容量天花板。
负载测试和压力测试区别
负载测试是验证系统是否满足预期的业务压力场景;而压力测试是找到测试系统的容量天花板。
负载测试是模拟多个用户不同时间段内持续向系统发送请求的,而压力测试是模拟同一时间段内持续不断的向系统发送请求的。
疲劳强度测试
疲劳强度测试与负载测试testi