性能测试之性能测试策略

作为性能测试基础篇最后一节,今天不聊别的,主要看下性能测试常用的策略有哪些,有哪些是你已经在工作中运用到了的。

常用性能测试策略:

1、基准测试
单用户测试,目的是为其他测试提供参考依据;
建议单用户循环多次得到的数据,避免单独请求一次的结果(这有偶然性)

2、并发测试
模拟客户端请求,在单位时间内(S)同时发起一定量的请求,验证系统是否具有并发性的问题。

3、负载测试
不断增加请求压力,直到服务器某个资源项达到饱和(比如CPU使用率达到90%+)或某个指标达到安全临界值(比如运维的监控告警阈值or拐点);
负载测试(也叫阶梯式压测)一般主要用来寻找性能的拐点,验证系统在既有测试环境不同的请求压力下能否正常运行。

4、容量测试
采用负载测试策略,验证在现有测试环境下被测系统的最大性能表现(可接受的最大性能表现,不一定是最优性能表现)。

5、极限测试
在既有测试环境下,不考虑资源占用率的极限情况(CPU使用率达到95%以上或IO异常繁忙或Load值较高),在系统不宕机的情况下的最大处理能力。
PS:由于被测系统的业务场景各不相同,这种策略,采用率相对较少。

6、配置测试
不断调整系统各方面的配置(软硬件、参数配置等),验证在性能达到最优时(最优的性能一定是权衡各方面因素找到的平衡点)的最佳配置。

7、浪涌测试
验证系统在某段时间内并发突增或请求量波动较大的情况下,系统能否正常稳定的提供服务。
PS:这种测试策略使用的也相对较少,主要针对不确定性的短期的峰值流量涌入场景(比如某微博的离婚、恋爱、分手话题)。

8、稳定性测试
以恒定的并发数(根据负载测试的结果,CPU使用率在70%时对应的并发数),验证系统在混合场景下的性能表现。

9、批处理测试
验证待测系统在既有环境下,系统的批处理(一般都是一个crontab或者触发式的job)业务能力能否满足生产的业务需求指标。

10、高可用测试
在集群多节点或分布式的情况下,破坏其中一个或多个集群节点,验证系统能否及时恢复服务能力。

11、容错恢复测试
验证系统能否在出现故障的情况下仍能保持正常提供服务的能力或出现故障后的自我恢复能力。

施压策略建议:

不了解性能测试人员或者刚入门的性能人员,比如研发或者产品,在实际的工作中,可能习惯性的高并发的去压,单台机器压测2000并发的也有见到过,这是不可取的。我们是为了找到系统最大处理瓶颈,这个需要一点点的并发往上加的,防止服务器太脆弱直接导致压跪掉是很有必要的。

通过很多性能测试案例,发现不需要用上万的用户并发去进行测试,只要系统处理业务时间足够快,几百个用户甚至几十个用户就可以达到目的。跟业界一些性能测试专家交流,接触的性能测试项目,基本都没有超过5000用户并发。

因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000用户并发就足够了;对于中小型系统,1000用户并发就足够了。

在做负载测试的时候,一般都是按照梯度施压的方式去增加虚拟用户数,而不是在没有预估的情况下,一次加几万个用户,交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内,这样做没有多大的意义。



留言