性能测试从0到1实战,超详细性能测试计划编写汇总...

news2025/6/22 10:11:01

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、测试背景

首先要阐述本次性能测试的背景,即被测系统类型,面向哪些用户,具备什么特点,为什么要进行性能测试,预期的一些指标等等。

比如:为了保证“双十一”大促期间,系统能稳定运行且保障业务的高可用,进行性能测试。

核心:评估系统性能、分析性能变化趋势、定位系统瓶颈风险、协助规划系统容量。

2、测试目的

测试的目的要根据测试背景来分析设定,比如:

线上服务由于流量过高某部分应用挂了,那测试目的就是:定位瓶颈、分析调优验证;

运营做了拉新和新的渠道拓展,那测试目的就是:评估系统性能是否满足新的线上业务;

系统架构由集群技改为微服务,那测试目的就是:验证稳定性、可用性、单实例容量,为线上服务扩容提供容量规划数据;

3、测试范围

通过需求调研,分析用户使用场景,对业务数据量增长变化趋势及峰值活跃用户等数据做定量分析,确定被测系统的应用范围,比如订单+购物车+商品+支付服务。

业务归属模块业务涉及场景
订单创建订单,取消订单
购物车添加购物车,删除购物车
商品商品列表,商品详情
支付余额支付,支付宝支付,微信支付

4、术语约定

这里的术语指的是:涉及本次性能测试相关的一些专业术语说明,目的是统一口径,做解释说明,便于参与本次性能测试的相关人员理解。

常见术语如下:

术语名称术语释义
并发单位时间内(S)模拟客户端发起的请求数量
稳定性验证系统在长时间(24h/48h)负载情况下的性能表现
高可用验证系统在一部分服务宕机后能否正常提供服务以及服务恢复速率
TPS每秒事务数,即系统单位时间内(S)的请求处理能力
RT响应时间,及系统处理一笔请求所耗费的时间
请求成功率在测试过程中,系统成功处理请求占总请求数的百分比

PS:术语约定以实际情况为准,还要考虑性能测试计划的受众对于性能测试的了解程度,本约定旨在统一描述的口径,降低沟通成本。

5、环境说明

一般来说,进行性能测试的环境都是在UAT或者独立的性能测试环境,但为了准确描述环境类型和配置,以及测试环境和生产环境的区别,建议对生产环境和测试环境进行对比说明。

生产环境
①系统架构

请添加图片描述

PS:上图只是一个简略的微服务类型系统架构,只做示意,理解即可。

②服务配置

服务名称数量配置备注
gateway server102C3G网关服务,身份验证和请求转发
web server32C3G
app server52C3G
Redis34G哨兵模式,一主两从
DB28C16G一主一从

测试环境
①系统架构

请添加图片描述

②服务配置

服务名称数量配置备注
gateway server52C3G网关服务,身份验证和请求转发
web server22C3G
app server22C3G
Redis24G哨兵模式,一主一从
DB28C16G一主一从

负载机配置
负载机(machine)即模拟客户端发送请求的机器,一般情况下,说明负载机的硬件配置,数量,IP,发压策略即可。

网络
即负载机和性能测试环境的网络状况,比如国内公网/同一VPC内网,防火墙策略等。

6、需求分析

需求分析一般有这几个阶段:需求接入→需求收集→需求分析,主要内容如下:

业务模型
如下是一个典型的电商平台核心业务链路图,涉及到登录、首页、商品、购物车、支付、分享等模块。

请添加图片描述

性能指标
这里的性能指标包含如下两项:
①业务性能指标
即预期的TPS、RT、请求成功率(一般默认请求成功率≥99.99%)。

②硬件性能指标
即服务端资源耗用指标,常规的资源监控指标有:CPU使用率、Memory使用率、系统IO、网络IO等。

7、测试策略

本次性能测试所采用的测试策略。

比如:
探测系统性能拐点,需要阶梯式压测;
探测系统在可接受的性能指标下最大的处理能力,需要采用负载、容量测试策略;
验证系统的稳定性和高可用,需要采用稳定性、高可用测试策略;
验证系统在不同配置下的性能表现,一般采用配置测试策略;

测试策略及场景
①容量测试

场景名称执行时间业务配比测试策略测试目的
01_登录10min100%容量测试不断增加负载,验证系统单节点的最大性能表现
02_首页10min100%容量测试不断增加负载,验证系统单节点的最大性能表现

②稳定性测试

场景名称执行时间业务配比测试策略测试目的
混合场景24h按生产业务配比,等比缩放稳定性测试验证系统长期运行的稳定性以及是否存在OOM之类的问题

PS:如上表格描述,依然作为一个示例来说明,主要内容包括:场景编号、测试类型、涉及业务场景、业务配比、执行时间、测试目的。

测试监控策略

监控对象指标范围监控工具
CPU≤90%nmon、zabbix
Memory≤70%nmon、zabbix
网络IO无明显IO瓶颈nmon、zabbix
JVM无频繁FGC情况jmap、jstat

8、准备工作

准备工作主要包含如下几项:

准备事项准备内容责任人预计完成时间
工具准备负载工具、监控工具、分析工具测试/运维0.5工作日
脚本准备测试脚本测试0.5工作日
环境准备机器配置、服务部署联调、脚本调试运维/开发1工作日
数据准备铺底数据、测试数据、参数化数据、缓存数据DBA/开发/测试1工作日

9、组织架构

组织架构即本次性能测试涉及到的团队各角色成员,主要包含这些:PM角色、测试、开发、运维、DBA、网络、基础架构。示例:

请添加图片描述

10、风险分析

罗列开始执行前会影响本次性能测试工作开展的风险项以及应对方案,比如:

风险类型风险描述风险级别应对方案
交付风险UAT阶段发现较严重的功能缺陷测试时间顺延,或增加对应人员
变更风险临时需求变更、新增需求需求评审是否加入本次测试范围,阶段性交付
数据风险数据脱敏耗时较长、测试数据不可用重新拟定数据准备方案,小范围数据验证
环境风险部署出现问题,联调进度缓慢、网络带宽瓶颈更换环境、增加资源配置、扩展带宽

11、交付清单

在性能测试计划中,需要说明本次性能测试各阶段的交付物,主要包含这几项:性能测试计划&方案、测试脚本、性能缺陷统计、轮次小节、性能测试报告。

12、阶段进度

这里主要指的是从需求阶段到结束,各个阶段的工作进展以及资源安排,建议采用看板的方式,及时更新进度,方便推进工作的开展。
示例如下:

阶段事项开始时间结束时间状态责任人
需求阶段需求评审完成多方参与
需求阶段系统架构图完成开发
需求阶段需求调研完成性能测试人员
准备阶段环境交付完成运维、开发
准备阶段应用部署完成运维、开发
准备阶段数据准备完成开发、DBA、测试
准备阶段脚本开发完成性能测试人员
实施阶段执行压测未完成性能测试人员
实施阶段服务监控未完成运维、测试
实施阶段数据收集未完成性能测试人员
结束报告评审未完成多方评审

如上,就是一个较为完整的性能测试计划内容,当然,完成性能测试计划并评审通过后,就可以进入测试执行阶段了。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在人生的道路上,不要害怕迎接挑战,因为只有经历了困难才能赢得更多的成长和收获。相信自己的能力,坚持不懈地追求自己的理想和目标,每一步都是向前的力量,让我们勇往直前、不断奋斗!

只有不停地努力和坚持,才能实现自己的梦想。面对任何挑战,都要勇往直前,永远不要放弃。只有这样,你才能成为你想成为的那个人。

只有不断奋斗,才能让自己变得更加优秀和出色。无论遇到多大的挫折和困难,都要坚定信心,勇往直前,相信自己一定能够战胜所有的困难,迎来属于自己的辉煌成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/631590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

yt-dlp 使用教程

参考:yt-dlp 使用教程 下载yt-dlp.exe,地址:Releases yt-dlp/yt-dlp GitHub windows下载.exe版本,放到指定路径下,我的是C:\Users\bellychang\Downloads 查看视频所有分辨率 yt-dlp.exe --proxy socks5://127.0.0.…

github action 基于个人项目实践

前言: DevOps 和 Jenkins 作为一名开发,虽然也没有经常听到 Devops (研发和运维一体化)这个概念,但日常工作中已经无处不在地用着 DevOps 工具。自研也好,基于开源项目改造也好,互联网公司基本都会有自已的…

强化学习Q-learning实践

1. 引言 前篇文章介绍了强化学习系统红的基本概念和重要组成部分,并解释了Q-learning算法相关的理论知识。本文的目标是在Python3中实现该算法,并将其应用于实际的实验中。 闲话少说,我们直接开始吧! 2. Taxi-v3 Env 为了使本文…

一文讲完Java常用设计模式(23种)

介绍 设计模式的起源可以追溯到20世纪80年代,当时面向对象编程开始流行。在这个时期,一些软件开发者开始注意到他们在不同的项目中遇到了相同的问题,并且他们开始寻找可重用的解决方案。这些解决方案被称为设计模式。最早提出设计模式的人是…

centos7的docker安装与简单介绍

docker的基本组成(三要素) 镜像容器仓库 理解:镜像可以理解成一个类,容器就是用这个类new出来的对象,仓库就是放镜像文件的。docker本身是容器运行载体或管理引擎 安装 安装gcc yum -y install gcc安装需要的软件…

Vcpkg介绍及使用

Vcpkg用于在Windows、Linux、Mac上管理C和C库,极大简化了第三方库的安装,它由微软开源,源码地址:https://github.com/Microsoft/vcpkg,最新发布版本为2023.04.15 Release,它的license为MIT。 在windows上安…

[解决方案]springboot怎么接受encode后的参数(参数通过=拼接)

springboot怎么接受encode后的参数(拼接& springboot怎么接受encode后的参数(拼接&)问题出现原因发送encode后的值在postman里面的情况这个时候该如何接受呢(encode后的值接受)controller层的代码用到的工具类CRequest springboot怎么接受encode…

软考A计划-系统架构师-官方考试指定教程-(14/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

数组删除元素使用remove最优的方法

Array.prototype.remove function(from, to) { var rest this.slice((to || from) 1 || this.length); this.length from < 0 ? this.length from : from; return this.push.apply(this, rest); };

Anaconda安装及入门教程(Windows、Ubuntu)

文章目录 安装Anaconda3UbuntuWindows 使用换源设置不自动启用conda环境显示环境创建环境激活环境查找某个包的版本安装某个版本的包 虚拟环境中安装包删除虚拟环境删除特定的包复制环境设置代理UbuntuWindows 使用 conda-pack 离线导入、导出环境安装conda-pack导出导入 安装A…

简单使用nacos、openFeign和Sentinel(建议看源码和截图一起看)

1、Nacos 1、下载nacos&#xff0c;可以从结尾获取压缩包和源码 2、下方图例是两个服务程序注册成功到注册中心&#xff0c;并且配置从配置中心拉取&#xff0c;成功访问数据库 3、nacos中配置项里的内容 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driv…

在linux上做移动开发必须知道这五个

导读随着越来越多的人依靠手机进行各种业务&#xff0c;移动应用开发的重要性也在不断增加。虽然他们与桌面应用程序有很多相似之处&#xff0c;但移动应用程序本身也具有一系列挑战和特殊性。因此&#xff0c;希望在当前市场找到有利就业的程序员将需要利用和发展当前需求的技…

第五章 结构化设计

结构化设计的概念 1. 设计的定义 一种软件开发活动&#xff0c;定义实现需求规约所需的软件结构。 结构化设计分为&#xff1a; (1)总体设计&#xff1a;确定系统的整体模块结构&#xff0c;即系统实现所需要的软件模块以及这些模块之间的调用关系。 (2)详细设计&#xff1a;…

从Referer到XMLHttpRequest:探究Web安全中的重要知识点

目录 Referer 概念 Referrer-policy&#xff08;可以一定程度上防御CSRF攻击&#xff09; 同源 iframe sandbox(沙箱): cookie的原理&#xff1a; 如何设置Referrer&#xff1f; 盗链 盗链的工作原理 三种情况下可以引用图片&#xff1a; XMLHTTPRequest AJAX&…

初出茅庐的小李博客之STM32F103实现CAN通信

CAN通信基础知识 参考上一篇博客 https://editor.csdn.net/md/?articleId131026450 原理图 转换芯片是 TJA1050 代码实现思路 发送思路&#xff1a;定时发送 按键测试发送 接收思路&#xff1a;中断接收 CAN代码实现 第一步 定义了两个全局变量TxMessage和RxMessage&am…

Unity如何实现Microphone判断录入音频的频率是低音还是高音

前言 Unity中使用Microphone可以通过麦克风录制AudioClip音频,我们可以通过它实现录音功能,然后可以通过录入的音频数据对音频进行分析,比如音量大小,频率高低,等等。 我们今天就来分析一下音频的高音低音。 如何判断高音低音 科普:一般人们习惯将音响划分一定的频段…

参数估计(点估计和区间估计)

参数估计&#xff08;点估计和区间估计&#xff09; 1.1 点估计 点估计的理解示意图 下图中样本均值就是对总体均值的点估计 1.1.1 矩估计 关于什么是矩&#xff1f;可以参考马同学。传送门&#xff1a;如何理解概率论中的“矩”&#xff1f; 根据大数定律&#xff0c;样本…

007: vue中修改el-select选中颜色不生效的办法

第007个 查看专栏目录: 按照VUE知识点 ------ 按照element UI知识点 echarts&#xff0c;openlayers&#xff0c;cesium&#xff0c;leaflet&#xff0c;mapbox&#xff0c;d3&#xff0c;canvas 免费交流社区 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏…

apm装机教程(一):无人车

文章目录 前言一、下载固件二、设置参数 前言 APM4.2.3 差速小车 pix2.4.8 MP地面站 一、下载固件 pix2.4.8使用的是fmuv3的固件&#xff0c;可以在官网上下载 https://firmware.ardupilot.org/Rover/stable-4.2.3/fmuv3/ 或者从我的网盘下载 链接&#xff1a;https://pan.b…

【算法题】面试题 01.01. 判定字符是否唯一

题目来源&#xff1a;《程序员面试金典&#xff08;第 6 版&#xff09;》 1、Problem: 面试题 01.01. 判定字符是否唯一 文章目录 面试题 01.01. 判定字符是否唯一一、题目描述二、解决方案&#xff08;一&#xff09;方案一1、解题思路2、解题方法3、复杂度4、代码实现 &…