什么是性能测试
性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。
性能测试指标:
性能测试需要指标,应该有:时间指标、容量指标、资源利用率指标。这些指标还会细分,后续讲解。
注意:“没有指标,压死为止”也是一种性能测试指标。
性能测试模型:
测试模型是真实场景的抽象,可以确定业务模型的样子。
比如有多少种业务,那种业务有并发量,那个业务的并发数多,哪个业务的并发数少,基于实际业务模型确定比例得到测试模型。从生产环境中的数据统计得到业务模型所需要的数据。
有些行业直接在线上导流做性能测试,有些行业需要在测试环境中用业务模型来模拟出生产的流量。
性能测试要选择适合自己系统业务逻辑的方式,用最低的成本、最快的时间来做事情。
性能测试方案:
方案应该至少包括以下几点:测试环境、测试数据、测试模型、性能指标、压力策略、准入准出和进度风险。
性能测试中的监控:
性能测试预置条件:
硬件环境、测试数据、测试执行策略、压力补偿等。
性能测试场景:
在既定的环境下,既定的数据变化,既定的执行策略和既定的监控之下执行性能测试脚本同时观察各层级的性能状态参数,并实时判断分析场景是否符合预期。
基准性能场景:也可以称为单交易的容量测试。每一个业务都压到最大TPS,从而为后续场景做数据对比。
容量性能场景:也可以称为混合容量性能场景测试。将所有业务根据比例加到一个场景中,在数据,软硬件环境,监控等配合之下,分析瓶颈并调优的过程。
稳定性性能场景:最核心的元素是时间,业务模型已经在容量场景中确定了。时间的设置来自于运维周期,而不是来自于产品和架构等人的心理安全感。在长时间的运行之下,观察系统的性能表现,分析瓶颈并调优的过程。
异常性能场景:在压力流量之下,模拟异常。常用的手段是宕机、宕网卡、宕应用。实际的场景中要模拟什么样的异常一定是根据系统的业务架构和部署架构分析而来的,不是看到什么都要宕一下。
性能调优
如何判断是否需要调优:
新系统性能测试类:要求测试出系统的最大容量;
旧系统新版本性能测试:一般都是和旧版本对比,只要性能不下降就可以,根据历史数据推算容量。
新系统性能测试优化类:不仅要测试出最大容量,还要调优到最好。
性能测试一定要有结果报告
场景结果整理,监控结果整理,性能整体分析,性能结论,优化建议,运维建议等。
大部分老板或者上司关心的是测试的结果,而不是用了多少人,花了多少时间这些没有意义的数字。我们更应该在报告中写上调优前后的 TPS、响应时间以及资源对比图。