压力测试作为性能测试一种,通过高负载的手段来使服务器资源处于极限的状态,测试该系统在极限状态长时间运行是否稳定。通过压力测试,可以评估当前系统的容量,对现有的系统进行扩容,避免流量暴涨导致系统瘫痪的情况,同时也可以在真实流量到来之前进行演练,验证应急预案的有效性。
压测目标
尽量模拟用户真实使用场景,在凌晨流量低的时间段进行压测,压测时长根据往年流量高峰持续时长进行估算,压测开始前,明确通过标准,比如:压测期间功能正常、TPS稳定、响应时间不超过多少毫秒,服务器状况,接口错误率不超过多少等。
压测流程
压测环境
出于真实性,成本问题等考虑,一般选用线上环境进行压测。
运维监控工具
压测过程中,需要借助运维监控工具来监控服务器运行状况,常用的工具如下:
压测实施
压测前
1、业务系统改造:比如调用链系统,方便快速追溯上下游接口的调用响应时间;系统降级机制;生产数据和测试数据隔离,避免压测流程影响生产环境的业务
2、压测流量构造
3、压测工具的选取
4、压测脚本的编写
压测中
1、压测预热
2、正常施压
3、服务器关键指标监控
4、紧急预案演练
压测后
1、数据清理:清理压测过程中产生的数据
2、压测报告输出与评审
3、容量评估:评估现有的容量是否满足预期,如果不满足,分析原因,进行性能优化后继续压测
4、性能优化:优化压测过程中发现的性能问题并上线生产环境。