[TOC]
性能测试流程
如何做性能测试
0.前期准备
- 尽量参与业务需求评审,可以对业务有更深刻的了解
- 了解哪些是核心业务,哪些可能存在并发请求
- 在了解后,可以在业务评审时给出性能需求意见
1.性能需求分析、评审
- 明确性能测试的范围,包含哪些业务接口(使用多的核心业务)
- 性能测试的目标是多少(TPS、响应时间rt、成功率或者+其它的技术指标),性能需求要项目组一起来商量一起来出,如果出不来就由性能测试人员来引导出这个性能测试目标
-
关于需求来源:迭代项目/新项目
-
迭代项目:
- 范围:新增的、修改的、受影响的
- 目标:不能低于之前版本的性能、未来所需的容量的预估
- 业务比例:业务请求的比例(单接口),通过类似ELK之类的日志平台来统计
-
新项目:
- 范围:核心业务功能
- 目标:参考竞品、经验值(寻求产品经理确认)
- 业务比例:项目组讨论、项目试运行后统计、要测试出最大容量TPS,为上线后限流提供参考
-
2.制定性能测试方案
-
项目背景:
- 背景描述
- 系统架构
- 压测目的
-
术语说明:为了避免理解存在偏差
- TPS、响应时间RT、并发、业务比例、单场景、容量场景(混合场景)、稳定性场景
-
性能测试需求:测试范围、目标
- 要压测的接口清单,以及业务比例
- 各个场景的目标:TPS、RT、成功率
-
测试资源
- 人力资源:项目经理、性能测试工程师、开发工程师、运维工程师
- 压测工具(压力端):Jmeter、压力机(win/Linux)
- 压测环境:硬件、软件、部署
-
压测设计
-
数据:
- 参数化数据:数据量根据业务来
唯一性:tps500,压测时间600s,至少需要300000数据量,乘以20% 非唯一性:tps500,也是压测时间600s,至少覆盖线上实际被使用到的
- 数据库存量(基础数据):数据量和生产量级保持一致
-
场景:
-
单场景:单个业务接口,可以发现明显的性能BUG(目标TPS要比容量场景对应接口的目标TPS要高)
-
容量场景(混合场景):结合业务比例模拟线上真实业务场景(因为:线上环境,每个接口的调用次数不一样)
-
稳定性场景:
- 明确压测时间设置多少?
- jmeter中,tps=总请求数/并发时间,并发时间=总请求数/tps,例如:5000万业务量/800的TPS=62500s,建议时间*120%
- 目标业务量/最大容量tps,最好比这个时间更多(*1.2)
-
加压方式:
- 秒杀、抢购:瞬间产生压力
- 非秒杀、抢购:逐步阶梯加压
-
-
监控:根据压测接口的链路涉及的技术栈,选择合适的监控工具
- 比如:链路监控工具是微服务的标配(JAV项目)
-
-
测试计划
- 里程碑节点计划,详细的项目性能计划
-
风险评估
- 根据当前情况,预估可能的风险以及措施
-
测试准则/参考资料
3.性能测试方案评审
- 评审通过后,方案发送给项目成员,如若后续未再反馈其它问题,表示认可方案通过
4.申请性能测试环境
- 简单架构:nginx + Tomcat + mysql
- 比如1个tomcat:tps100
- 2个tomcat:tps180(存在20tps损耗,根据损耗率预估-生产上可以达到多少tps)
- 复杂架构
- 新项目的话,可以直接在线上环境进行压测
5.性能测试用例及评审
6.搭建测试环境
- 根据压测环境的部署去搭建应用和监控
7.准备测试脚本、测试数据
- 脚本:开发提供压测环境调通的postman或者jmeter脚本;或者根据接口文档写
- 场景设计
- 准备数据
- 参数化数据
- 代码生成
- 从数据库导出
- 数据库存量数据
- 复杂表关系:jmeter跑业务接口【推荐】
- 单表:代码、数据库存储过程(多个sql集合,循环添加)
- 参数化数据
8.环境确认测试
- 静态测试:确认配置
- 非静态测试:确认环境是否可用
9.执行压测并监控
- 不要一次性打开所有监控,每一步需要哪个监控就开哪个监控
10.分析定位
- 简单架构:可以看资源消耗进行分析
- 复杂架构:服务太多,通过分解时间的方式
- 举例:场景比对--怀疑是xx服务资源不足,增加节点
- 可能功能时间都差不多,进行功能隔离
11.性能优化
- 如果有自己的优化方案,可以发给项目组进行抛砖引玉,如果有更好的优化方案,就可以进行应用
- 没有方案,寻求项目组协助
12.性能回归
13.编写性能报告
- 核心内容
- ==测试过程详情及分析==:每个场景的执行结果(截图),并分析结果
- ==测试总结及建议(重点)==:测试结果是多少?测试是否通过?发现什么问题?原因是什么?优化方案是什么?优化后系统性能提升了多少倍?
- ==问题汇总==:罗列发现的所有问题,包含问题现象(比如日志截图)、监控截图。
- ==风险评估==:遗留风险问题 (虽然测试达标了,但是因为外围系统做了挡板、压测环境配置和生产比比较低等因素,可能存在一些风险,给出建议)
- ==优化清单==
- THE END -
最后修改:2025年8月1日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.qian777.cn/47.html
共有 0 条评论