让业务满意的性能测试报告模板应该是怎样的?
前言
先前在北京出差,和同事聊到了一个关于流量网关如何进行性能验证的需求,当时专门与同事进行了一番讨论,后面写了一篇相关文章。
结果没过多久同事找到我,希望我帮他们写一份给到业务团队的性能测试报告,原因是业务觉得他们之前提供的报告不够充分。
这篇文章,就来聊聊我对这个需求的分析和理解,以及如写出让业务满意的性能测试报告。
需求背景
需求背景实际上在前面中已经提到了,写性能测试报告的初衷,是目前的组织架构和业务形态决定的。
我目前在Application Infrastructure团队,负责测试开发和性能及稳定性相关工作,由于公司是纵向的独立BU式的组织架构,基础架构团队更多的是作为一个乙方的角色,
为各个事业部提供底层的通用技术组件和解决方案。这就是为什么这篇文章标题会题为‘让业务满意’的寓意了。
大多数独立BU式架构的企业,业务方往往都处在一个很强势的角色,而做底层基础建设的团队,本身的绩效和评价往往来自于业务团队影响因素较多。
聊完背景,接下来聊聊本文的重点——性能测试报告。我会尝试从报告的作用、业务团队关注的点以及报告背后的思考逻辑来阐述我的一些观点和想法。
测试报告的作用是什么?
聊到报告的作用,可以尝试从以下几个方面来理解它的作用:
流程闭环
现在企业大都讲究流程,我在前面的文章里面也谈到了流程的重要性。
在技术领域,报告一般都意味着阶段性的结束总结,如果是偏数据计算或调研方面,报告更是很好的素材和样本。
因此测试报告的作用,在流程管理方面,是很重要的一个环节和必不可少的产出。
结果量化
上面聊了流程,这里聊结果。互联网领域有个黑话叫做拿结果,结果是什么?
结果不是你写了多少代码提了多少bug,而是你在某个阶段做某件事的可量化的产出物。
报告是对这个阶段的高度总结,是对目标和结果的拉齐,更是向上向下的一个交代!
原谅我用了一些互联网黑话,因为这些黑话属于一说就透大家都懂的意思。总结一下,报告的作用如下:
- 保证流程的完整性;
- 工作的阶段性总结;
- 可量化的产出结果;
- 对业务合作方的交代;
- 达成OKR的重要手段;
- 老板向上向下管理的抓手;
- 个人绩效和年终的影响因素;
业务团队更关注哪些内容?
聊到这里,就要提到需求最核心的部分:流量网关。
一般来说,流量网关是大部分业务流量的入口,它的特点在于一方面需要承载比较高的访问流量;
另一方面要起到入口的一些特性作用,比如:限流/鉴权/防爬等。考虑到容灾可可用性等指标,一般在服务部署的时候,还需要跨可用区甚至跨机房。
因为基础架构团队负责流量网关等基础组件的研发,需要推动在不同的业务团队协助他们接入服务。
业务团队对服务的时延比较敏感,且之前部分团队已经有了类似的技术组件,这个背景下要说服业务团队接入,阻力还是不小的。
所以就有了文章开头所提到的事情。那么,类似流量网关这种基础的技术组件,业务团队会比较关注哪些内容呢?
- 低时延;
- 可用性;
- 接入成本;
- 流控和鉴权;
- 精准的可量化指标;
- 明确便捷的接入方案;
- 丰富的使用培训和答疑服务;
输出让业务满意的性能测试报告
写测试报告是很多测试同学比较头疼的问题,但很多时候报告的作用远超形式主义的为老板汇报的作用。下面是我总结的一个性能测试报告的模版,供大家参考:
PS:以流量网关接入业务为例!
| 标题 | XXX性能测试报告 |
| 结论 | 经过x轮测试验证,涉及x个场景,目前的结果已满足x业务的线上实际场景。相比于接入/优化前,接入后整体提升xxx,对x业务的优势是xxx。 |
| 背景目标 | 为了统一流量入口,做到安全防爬/统一鉴权等目的,我们选用了APISIX作为流量网关组件。 我们的目标是xxx。,业务接入后,可以解决xxx问题,带来xxx提升,避免xxx。 |
| 环境信息 | 网关配置:8C16G 集群数量:三个可用区,每可用区6个节点; 网络类型:跨可用区单独VPC调用; |
| 预期指标 | 同可用区时延<1ms,跨可用区时延<2ms |
| 验证结果 | 这里用表格或者图表将不同场景和条件下的详细数据列出来 |
| 建议方案 | 针对不同的业务类型和技术栈,我们准备了x种方案:
|
| 相关文档 | a业务接入文档 b技术栈接入文档 接入常见问题及解决方法 |
总结
报告要重点突出结论,直截了当的给业务方明确的结果;
说明验证环境信息,尽可能贴近或者匹配业务方的实际情况;
阐述项目的背景/目标和如此做的价值,价值最好切中业务实际痛点;
提供更多可选的方案,傻瓜式的接入方案比各种改造更能让业务方接受;
相关模板


文档获取方式:
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点击下方小卡片免费获取。
相关文章:
让业务满意的性能测试报告模板应该是怎样的?
前言 先前在北京出差,和同事聊到了一个关于流量网关如何进行性能验证的需求,当时专门与同事进行了一番讨论,后面写了一篇相关文章。 结果没过多久同事找到我,希望我帮他们写一份给到业务团队的性能测试报告,原因是业…...
高防IP如何保护服务器
首先我们要知道什么是高防IP~ 高防IP是指高防机房所提供的ip段,主要是针对互联网服务器遭受大流量DDoS攻击时进行的保护服务。高防IP是目前最常用的一种防御DDoS攻击的手段,用户可以通过配置DDoS高防IP,将攻击流量引流到高防IP,防…...
C++提高编程——STL:string容器、vector容器
本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…...
three.js从入门到精通系列教程004 - three.js透视相机(PerspectiveCamera)滚动浏览全景大图
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>three.js从入门到精通系列教程004 - three.js透视相机(PerspectiveCamera)滚动浏览全景大图</title><script src"js/three.js"&g…...
Gradle 笔记
Gradle依赖管理(基于Kotlin DSL) **注意:**如果不是工作原因或是编写安卓项目必须要用Gradle,建议学习Maven即可,Gradle的学习成本相比Maven高很多,而且学了有没有用还是另一回事,所以ÿ…...
flume案例
在构建数仓时,经常会用到flume接收日志数据,通常涉及到的组件为kafka,hdfs等。下面以一个flume接收指定topic数据,并存入hdfs的案例,大致了解下flume相关使用规则。 版本:1.9 Source Kafka Source就是一…...
信用评价研究MATLAB仿真代码
信用评价是各种店铺卖家分析买家信用行为的重要内容, 本文给出随机仿真代码模拟实际交易过程的信用评价. 主要研究内容有: (1)研究最大交易额和信用度的关系 (2)研究买家不评价率对信用度影响 (3)研究交易次数对信用度影响 MATLAB程序如下: 主程序main.m %% clc;close a…...
网络安全产品之认识防毒墙
在互联网发展的初期,网络结构相对简单,病毒通常利用操作系统和软件程序的漏洞发起攻击,厂商们针对这些漏洞发布补丁程序。然而,并不是所有终端都能及时更新这些补丁,随着网络安全威胁的不断升级和互联网的普及…...
android 防抖工具类,经纬度检查工具类
一:点击事件防抖工具类: public abstract class ThrottleClickListener implements View.OnClickListener {private long clickLastTimeKey 0;private final long thresholdMillis 500;//millisecondsOverridepublic void onClick(View v) {long curr…...
PgSQL - 17新特性 - 块级别增量备份
PgSQL - 17新特性 - 块级别增量备份 PgSQL可通过pg_basebackup进行全量备份。在构建复制关系时,创建备机时需要通过pg_basebackup全量拉取一个备份,形成一个mirror。但很多场景下,我们往往不需要进行全量备份/恢复,数据量特别大的…...
Vue3setup()的非语法糖和语法糖的用法
1、setup()的语法糖的用法 script标签上写setup属性,不需要export default {} setup() 都可以省 创建每个属性或方法时也不需要return 导入某个组件时也不需要注册 <script setup > // script标签上写setup属性,不需要export default {} set…...
HTTP状态信息
1xx: 信息 消息:描述:100 Continue服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。 2xx: 成功 消息:描述:200…...
CSS之边框样式
让我为大家介绍一下边框样式吧!如果大家想更进一步了解边框的使用,可以阅读这一篇文章:CSS边框border 属性描述none没有边框,即忽略所有边框的宽度(默认值)solid边框为单实线dashed边框为虚线dotted边框为点线double边框为双实线 代码演示&…...
k8s-helm
Helm: 什么是helm,在没有这个heml之前,deployment service ingress的作用就是通过打包的方式,把deployment service ingress这些打包在一块,一键式的部署服务,类似于yum 官方提供的一个类似于安全仓库的功能,可以实现…...
黑马程序员JavaWeb开发|Maven高级
一、分模块设计与开发 分模块设计: 将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。 注意:分模块开发需要先对模块功能进行设计,再进行编码。不会先将工…...
【经验分享】MAC系统安装R和Rstudio(保姆级教程)安装下载只需5min
最近换了Macbook的Air电脑,自然要换很多新软件啦,首先需要安装的就是R和Rstudio啦,网上的教程很多很繁琐,为此我特意总结了最简单实用的安装方式: 一、先R后Rstudio 二、R下载 下载网址:https://cran.r-project.org …...
探索设计模式的魅力:“感受单例模式的力量与神秘” - 掌握编程的王牌技巧
在软件开发的赛场上,单例模式以其独特的魅力长期占据着重要的地位。作为设计模式中的一员,它在整个软件工程的棋盘上扮演着关键性角色。本文将带你深入探索单例模式的神秘面纱,从历史渊源到现代应用,从基础实现到高级技巧…...
SpringCloud Aliba-Seata【上】-从入门到学废【7】
目录 🧂.Seata是什么 🌭2.Seata术语表 🥓3.处理过程 🧈4.下载 🍿5.修改相关配置 🥞6.启动seata 1.Seata是什么 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能…...
C# Cad2016二次开发选择csv导入信息(七)
//选择csv导入信息 [CommandMethod("setdata")] //本程序在AutoCAD的快捷命令是"DLLLOAD" public void setdata() {Microsoft.Win32.OpenFileDialog dlg new Microsoft.Win32.OpenFileDialog();dlg.DefaultExt ".csv";// Display OpenFileDial…...
[陇剑杯 2021]日志分析
[陇剑杯 2021]日志分析 题目做法及思路解析(个人分享) 问一:单位某应用程序被攻击,请分析日志,进行作答: 网络存在源码泄漏,源码文件名是_____________。(请提交带有文件后缀的文件名&…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
