一、背景
性能测试是软件开发过程中非常重要的一环,它可以帮助开发人员和质量保障人员评估软件在不同负载下的表现,找出瓶颈并优化性能,从而提高用户的满意度。而一份专业的性能测试报告,则是评估软件性能的重要成果之一。因此今天我们将分享一份完整的性能测试报告应该包含哪些内容,看完你也会编写一份专业的性能测试报告啦~
二、报告大纲
一份完整的性能测试报告需要包含以下模块:
- 文档介绍
- 测试范围
- 测试时间
- 测试环境
- 测试场景
- 测试过程及分析记录
- 测试结论和建议
三、具体内容解析
1、文档介绍
主要说明测试的目的,让读者能够快速了解报告的背景和内容,比如:为了保证系统在高并发场景下能稳定提供服务,对系统核心接口进行性能测试,获取接口在高负载压力下的相关性能指标,优化接口性能以满足需要。
2、测试范围
主要说明要测试哪些接口,是否需要混合压测,全链路压测等,以及制定性能测试的目标值。
压测通常为两类场景服务,一类是为大促考虑,另一类是为日常业务需求性能考虑。系统有非常多的接口,那么哪些接口需要做压测呢?有没有什么通用的选择标准呢?答案是:当然有!
618/双11大促接口选择标准:
- 核心链路上涉及的系统接口必须压测;
- 接口近期改动较大,接口原有性能可能受影响;
- 接口业务量增长较快致流量增长迅猛;
- 接口调用方明确有更高的性能要求;
- 接口业务逻辑会频繁操作数据库或者redis多次
- Redis可能产生大key或hot key的接口
日常需求涉及到以下场景的接口:
- 大流量场景:大用户量场景 ,大数据量场景
- 核心链路场景
- 未来业务量预估有压测需要的场景
选好了要压测的接口,下一步就是为具体的每个接口设定性能目标值,怎么设定呢?是否有一些通用的参考标准?答案是:当然有!
对于系统已有的老接口:
- 历史大促峰值3-5倍;
- 上游调用方给出的明确的性能指标;
对于系统新增的新接口:
- 参考相同业务场景的其他接口目标制定;
- 业务流量预估值
- 是否需要探测接口能支持的性能;
3、测试时间
主要说明测试计划的时间,包括以下阶段的时间:
- 环境准备(比如:2-3天)
- 测试数据准备(比如:1-2天)
- 测试脚本准备(比如:2-3天)
- 执行测试(比如:一周)
- 性能优化(比如:一周)
- 编写测试报告(比如:2-3天)
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a7ce30a25a24098adc4aca1d16e843b.png)
基于以上的阶段,通常时间规划为:
大促压测:大促前1-2个月开始,各系统注意错开时间,避免时间重叠互相影响压测结果;
日常需求压测:日常需求上线的排期里面,要考虑接口压测的时间;
4、测试环境
主要说明服务器配置信息、接口调用流程图、压测数据准备情况。
- 服务器配置信息:包括云服务器实例个数、配置、数据库、缓存配置
![在这里插入图片描述](https://img-blog.csdnimg.cn/91765fa16c6a4018b15c71c34988fc38.png)
- 接口调用流程图:说明接口调用过程中涉及的系统,明确影响范围
![在这里插入图片描述](https://img-blog.csdnimg.cn/95d0d29602c74ee0bd9ae0cac0c2e7df.png)
- 压测数据准备情况:说明本次压测的数据情况,判断数据准备是否充分合理
![在这里插入图片描述](https://img-blog.csdnimg.cn/9a31fe6e60814bfe87e295180366310d.png)
5、测试场景
主要说明将如何执行压测,相当于性能测试的case
![在这里插入图片描述](https://img-blog.csdnimg.cn/04081746397a45d3be392f9cf274fa3e.png)
6、测试过程及分析记录
主要记录测试过程中的服务器资源指标、数据库资源指标、接口调用量、接口响应时间、调用链性能分解情况等。
![在这里插入图片描述](https://img-blog.csdnimg.cn/233955a83b3a4799923eb2ea4b6e084a.png)
7、测试结论和建议
主要描述测试的结论,性能测试是否通过,失败的接口性能问题描述、风险以及优化建议等。
![在这里插入图片描述](https://img-blog.csdnimg.cn/46c33f6a3d3a469f8b56480ee89b6c6e.png)
性能测试结束后,注意以下事项:
- 确认接口压测是否停止,性能曲线是否回归正常
- 压测产生的数据是否需要清除
- 压测过程中修改过的配置是否已全部还原
回归业务功能是否正常,确保压测没有影响到业务功能的正常使用。
=================================================================================================
以上就是本次的全部内容,如果对你有帮助,麻烦点个赞+收藏+关注,一键三连啦~
欢迎关注下方我的公众号:程序员杨叔,各类文章、框架Demo源码都会在上面发布,持续分享各类测试开发知识干货,你的支持就是作者更新最大的动力。