阿里测开的性能测试技术笔记:如何快速上手压测工作

2023-11-11

新年第一个工作日,继续整理之前的技术笔记。

前面通过三篇的内容,将自动化测试相关的技术笔记做了整理汇总。

这篇内容,主要是我刚开始做性能测试时的一些记录,对新手或者刚进入一个新项目的同学,应该有所帮助。

一般我们在刚介入一个项目时,我认为可以从如下几个方面来快速的上手压测工作。

熟悉业务特性

无论是做什么类型的测试工作,都脱离不了业务。

我们的被测对象,也是基于系统架构的用代码实现的高度具象的业务系统。

如果是专职做性能测试,或者刚介入一个全新的系统进行压测,想要短时间内了解业务细节是几乎不可能的。

但为了更好的快速开展工作,我个人的经验是快速熟悉业务特性,结合自己的经验对系统有个大致的了解。

什么是业务特性呢?可以参照下面几个例子:

  1. 电商下单业务:典型的先读后写类型,要考虑库存、事务的一致性,还有响应时间的范围;
  2. 大数据&报表业务:典型的读场景,可能会涉及到缓存或者消息队列,甚至是批处理;
  3. 金融风控信审业务:这种业务对响应时间没有太高的要求,但业务链路较长,不同系统间的交互要考虑;
  4. 语音识别搜索业务:涉及到语音文字的识别转换、准确率和命中率,计算密集型业务要更关注内存资源;

上述几个例子只是参考,其实最核心的思路在于:了解业务有什么特点,对响应时间、事务一致性的要求,可能的技术实现方式是什么,用到了什么技术组件,压测时要关注哪些指标

了解系统架构

聊完业务特性后,被测系统的系统架构是一定要了解的。

因为我们的工作对象是具体的系统,而且压测要关注技术指标,关注请求处理的过程以及耗时等情况。

一般来说要了解被测系统的系统架构,可以通过如下几种方式:

  1. 系统架构图&网络拓扑图;
  2. 模拟几个请求,借助链路追踪工具来绘制请求链路;
  3. 如果都没有,通过监控观察请求的变化,挨个摸底;
  4. 看业务需求的prd,了解业务之间的关系,然后映射到具体的服务和接口;

上述几种方式是我常用的几种方式,在具体工作中要灵活变通,而且这种对系统架构摸底和请求链路的了解过程,也是个人快速学习和成长的过程。

下面是一个请求被处理的过程,也是一个较为完整的常见微服务架构,供参考。

团队工作方式

团队工作方式,不仅限于性能测试团队或者测试团队,而是从需求到发布整个软件研发过程各个团队是如何协同配合的。

刚进入一个新的团队或者介入一个新项目时,可以从下面几个方面去熟悉,主要包括:

  1. 流程:包含需求评审、提测、UAT、灰度和生产发布等主要流程以及时间节点;
  2. 环境:开发环境、测试环境、UAT环境以及生产环境,主要涉及域名、权限、负责人等;
  3. 基础工具:配置中心、注册中心、需求&缺陷管理平台、CICD流水线工具、监控分析工具等;
  4. 测试工具:包含压测工具、抓包工具、造数工具、mock工具、文档管理工具、协作办公沟通工具等;
  5. 测试方法:之前怎么做压测?对指标有没有标准或定义?测试方案测试报告的撰写要求等;
  6. 协作人员:不同业务域或者业务系统的研发/运维/DBA是谁,跨团队的沟通协作方式等;

以上几点是我个人看来比较重要的一些点,快速了解这些之后,也会有助于工作更好的开展。

以上内容来源于我之前做性能测试工作时的笔记内容,稍加提炼和修改。

下一篇我会聊聊做性能测试前期的一些准备工作如何开展。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励,也方便你下次能够快速查找,感谢。

如果你想获取该文章配套的视频视频教程以及练手的接口。请狠狠点击下方链接,

并把所需的资料的文章链接发给我即可领取

如果你想获取简历模板+面试技术宝典+求职视频+上千份测试真题,也请狠狠点击下方链接,

并把所需的资料的文章链接发给我即可领取

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里测开的性能测试技术笔记:如何快速上手压测工作 的相关文章

  • docker mysql镜像忽略表名大小写

    1 安装mysql镜像 docker pull mysql 2 运行mysql docker run net host restart always privileged true v usr docker dat mysql data v
  • Linux基础学习笔记(五)——文件的ACL权限

    Linux基础学习笔记 五 文件的ACL权限 文章目录 Linux基础学习笔记 五 文件的ACL权限 前言 什么是ACL控制 setfacl getfacl mask 最大有效ACL权限 默认的ACL权限和递归的ACL权限 小结 前言 这一
  • Action行动算子 及相应的举例

    7 Action行动算子 转换算子 起始就是记录了数据的一个操作流程 RDD1 gt RDD2 gt RDD3 gt RDD4 流式运算现象 RDD1 到 RDD4 之间维护血缘关系 操作行为 RDD的转换算子是lazy加载 不执行行动算子
  • angular : 自定义组件双向绑定 [(ngModel)]

    NG VALUE ACCESSOR 用于为表单控件提供 ControlValueAccessor interface ControlValueAccessor writeValue obj any void registerOnChange
  • Java进阶9--多线程

    Java进阶9 多线程 文章目录 Java进阶9 多线程 概述 一个线程的生命周期 线程的优先级 创建一个线程 通过实现 Runnable 接口来创建线程 通过继承Thread来创建线程 Thread 方法 实例 通过 Callable 和

随机推荐

  • next.js 源码解析 - getStaticProps、getStaticPaths 篇

    好久前写了关于 getStaticProps 和 getStaticPaths 的内容 然而半年过去了源码解析就一直忘记了 不久前有人提醒才想起来 补下坑 本文主要是解读下 getStaticProps getStaticPaths 相关的
  • 基于主成分分析(PCA)的人脸识别算法

    本次实战的所有数据 文献 代码及输出均在以下百度云链接 链接 https pan baidu com s 1tR3VCyHxL7EZx su 3mxNg 提取码 siso 1 要求 实战的数据及要求如下 用到的数据库为XM2VTS中的前20
  • 二进制转换为三进制 ——C++实现

    二进制转换为三进制 题目 输入一个2进制的数 要求输出该2进制数的3进制表示 在3进制的表示中 只有0 1 2三种符号 Input 第1行是测试数据的组数n 后面跟着n行输入 每组测试数据占1行 包括一个以0和1组成的字符串 字符串长度至少
  • 简单的用Python采集招聘数据内容,并做可视化分析!

    哈喽大家好 现在刚毕业 很多小伙伴因为找不到工作或者找了很多也不喜欢 再有懒一点的 太热了根本不想出门到处找 所以今天给大家分享使用Python批量采集招聘数据 进行可视化分析 轻松找到心仪工作 话不多说 我们直接开始 准备工作 软件工具
  • linux 卸载 rtx,在Ubuntu 18.04系统中安装RTX 2080Ti显卡驱动的方法

    在Ubuntu 18 04操作系统中使用GeForce RTX 2080Ti显卡 但是系统内置的驱动与PPA安装都不行 需要安装NVidia官方的驱动才能运行起来 下面是实现的方法 1 先禁用Ubuntu 18 04系统默认显卡驱动 打开系
  • ECM麦克风电路元器件计算

    ECM麦克风电路元器件设计 一 计算Micbias 偏置电阻R R 偏置电压 micbias电压 静态电流 1 偏置电阻计算案例 供电2V ECM麦克风电流500uA 偏置电阻取值 设置合适的偏置电阻 麦克风实现最大输出 需麦克风两端电压是
  • Multisim14基本介绍(上)

    Multisim14是一种专门用于电路仿真和设计的软件之一 是NI公司下属的ElectroNIcs Workbench Group推出的以Windows为基础的仿真工具 是目前最为流行的EDA软件之一 该软件基于PC平台 采用图形操作界面虚
  • ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

    笔者在使用LogisticRegression模型进行预测时 报错 Traceback most recent call last File D 软件 学习 Python MachineLearing taitannike train py
  • Linux Docker容器 镜像的详解与创建

    一 什么是docker 镜像 就是把业务代码 可运行环境进行整体的打包 二 如何创建docker镜像 现在docker官方共有仓库里面有大量的镜像 所以最基础的镜像 我们可以在公有仓库直接拉取 因为这些镜像都是原厂维护 可以得到即使的更新和
  • 响应式原理

    vue响应式原理 vue2 vue2中使用了ES5里面的Object defineProperty方法 给对应data中的数据的每个值添加了set和get方法 当值被修改时 就会触发对应的set方法 set方法里会通知独影的watcher
  • Python循环结构——for

    for循环是循环结构中的另外一种 基本使用方法 for 变量名 in 目标对象 用于循环的子代码 在for循环中 必定存在一个变量作为游标 且变量会在每次循环开始时自动发生变化 如果没有特别设定变化的值 则默认为 1 当目标对象为列表 字典
  • redis学习:redisKey的基本命令

    Redis是一个开源 BSD许可 内存存储的数据结构服务器 可用作数据库 高速缓存和消息队列代理 它支持字符串 哈希表 列表 集合 有序集合 位图 hyperloglogs等数据类型 内置复制 Lua脚本 LRU收回 事务以及不同级别磁盘持
  • 激光雕刻机:废旧光驱的涅槃之路

    激光雕刻机 废旧光驱的涅槃之路 从 FeedzShare 1天最热 有超过 100 人喜欢此条目 来自 www guokr com FeedzShare 发布时间 2011年04月20日 已有 5 人推荐 DIYer zieak 制作时间
  • ROS 安装详细教程 —— Ubuntu20.04 LTS 安装

    ROS 安装详细教程 Ubuntu20 04 LTS 安装 ROS 简介 官方文档对 ROS 的介绍如下 The Robot Operating System ROS is a set of software libraries and t
  • 网站优化搜索引擎与关键词

    网站优化搜索引擎与关键词 人们不应该高估搜索引擎的智商 这不利于seo的研究 事实上 搜索引擎是非常愚蠢的 让我们举一个非常简单的例子 你在搜索引擎中输入 教师 这个词 搜索引擎就会给出一个准确的搜索列表 我们不会给出 教师 一词的检索信息
  • 使用Docker部署前后端分离项目

    目录 引言 部署需要用到的镜像汇总 1 Redis部署 1 搜索Redis镜像 2 拉取Redis镜像 3 创建Redis容器 2 MySQL部署 1 拉取MySQL镜像 2 查看镜像 3 启动MySQL容器 4 使用本地Navicat测试
  • 报错(内存溢出):Exception in thread "Thread-8" java.lang.OutOfMemoryError: PermGen space

    Exception in thread Thread 8 java lang OutOfMemoryError PermGen space 解决办法 能正常使用 但是偶尔会报下面这个错误 从偶尔这个说法来看 是你热部署次数太多了 导致JVM
  • http协议访问网址的流程

    http协议 http协议可以说是由三个部分组成的 超文本 URL Http 超文本 网页中的信息 如文字 图片 视频 URL 统一资源定位符 由三个部分组成 协议 主机端口 文件名及路径 使用http协议的访问流程 例如我们想访问百度 则
  • C# => Lambda表达式理解

    本文参考网上的博客和找到的资料加上个人理解编写的 主要的代码借鉴 http www cnblogs com knowledgesea p 3163725 html 百度百科 希望能够帮助理解lambda表达式 定义 Lambda表达式 是一
  • 阿里测开的性能测试技术笔记:如何快速上手压测工作

    新年第一个工作日 继续整理之前的技术笔记 前面通过三篇的内容 将自动化测试相关的技术笔记做了整理汇总 这篇内容 主要是我刚开始做性能测试时的一些记录 对新手或者刚进入一个新项目的同学 应该有所帮助 一般我们在刚介入一个项目时 我认为可以从如