最近有些同学找我咨询关于性能测试计划相关的问题,原因是他们公司要做性能测试,Leader要求写一份性能测试计划,苦于之前没做过相关工作,无从下手。
这篇博客,结合我个人的一些经验和总结,聊聊如何制定一份较为全面的性能测试计划。。。
一、测试背景
首先要阐述本次性能测试的背景,即被测系统类型,面向哪些用户,具备什么特点,为什么要进行性能测试,预期的一些指标等等。
比如:为了保证“双十一”大促期间,系统能稳定运行且保障业务的高可用,进行性能测试。
核心:评估系统性能、分析性能变化趋势、定位系统瓶颈风险、协助规划系统容量。
二、测试目的
测试的目的要根据测试背景来分析设定,比如:
1、线上服务由于流量过高某部分应用挂了,那测试目的就是:定位瓶颈、分析调优验证;
2、运营做了拉新和新的渠道拓展,那测试目的就是:评估系统性能是否满足新的线上业务;
3、系统架构由集群技改为微服务,那测试目的就是:验证稳定性、可用性、单实例容量,为线上服务扩容提供容量规划数据;
三、测试范围
通过需求调研,分析用户使用场景,对业务数据量增长变化趋势及峰值活跃用户等数据做定量分析,确定被测系统的应用范围,比如订单+购物车+商品+支付服务。
业务归属模块 | 业务涉及场景 |
订单 | 创建订单 |
取消订单 | |
购物车 | 添加购物车 |
删除购物车 | |
商品 | 商品列表 |
商品详情 | |
支付 | 余额支付 |
支付宝支付 | |
微信支付 |
四、术语约定
这里的术语指的是:涉及本次性能测试相关的一些专业术语说明,目的是统一口径,做解释说明,便于参与本次性能测试的相关人员理解。常见术语如下:
术语名称 | 术语释义 |
并发 | 单位时间内(S)模拟客户端发起的请求数量 |
稳定性 | 验证系统在长时间(24h/48h)负载情况下的性能表现 |
高可用 | 验证系统在一部分服务宕机后能否正常提供服务以及服务恢复速率 |
TPS | 每秒事务数,即系统单位时间内(S)的请求处理能力 |
RT | 响应时间,及系统处理一笔请求所耗费的时间 |
请求成功率 | 在测试过程中,系统成功处理请求占总请求数的百分比 |
PS:术语约定以实际情况为准,还要考虑性能测试计划的受众对于性能测试的了解程度,本约定旨在统一描述的口径,降低沟通成本。
五、环境说明
一般来说,进行性能测试的环境都是在UAT或者独立的性能测试环境,但为了准确描述环境类型和配置,以及测试环境和生产环境的区别,建议对生产环境和测试环境进行对比说明。
1、生产环境
①、系统架构
PS:上图只是一个简略的微服务类型系统架构,只做示意,理解即可。