性能测试技术笔记:如何设计一个压测平台 ?

news2025/1/21 12:13:30

目录

为什么需要压测平台?

压测平台功能设计思路

压测平台技术实现方案

总结


为什么需要压测平台?

从实际工作场景出发,如果只有一两个人做性能测试工作,那其实没必要开发专门的压测平台,原因如下:

  • 成本问题:开发压测平台,前期需要投入至少1-2个专门的人力,且需要长期维护;
  • 效率问题:人数少,基本相当于压测任务并不太多,脚本管理数据管理这些可以通过本地上传到服务器,服务器只需要按照业务域和压测节点,建立对应的文件目录,然后有个crontab的定时任务来清理即可;
  • 协作问题:人数少其实不太需要平台来解决规范和流程问题,协作的事情几句话口头就可以沟通解决;

对于压测平台,或者说各种测试平台,其实很多同学有个误区就是:平台各种高大上牛逼,但往往忽略了开发和维护以及学习使用平台本身的成本。

测试平台的目的是:通过平台提供标准化操作,将不同个体差异通过流程化的方式约束起来,减少重复造轮子和轮子之间差异导致的排查和解决问题的成本,进一步提高人效

毕竟工作最终是结果导向的,如果没有更高效的解决问题,那平台最终会成为沉没成本

假设现在你想拥有一个压测平台,那我个人觉得最起码需要满足如下几个条件:

  1. 业务线多,版本迭代快(需求驱动);
  2. 测试团队个体间的技术差异比较大(技术驱动);
  3. 性能需求较多,线上稳定性问题频发(问题驱动);
  4. 技术团队达到一定规模,做压测的人比较多(效率驱动);

               

 

压测平台功能设计思路

聊完了关于压测平台是否必须以及要解决的问题,这部分聊聊一个可用的压测平台要满足哪些条件。

  1. 简单易用:平台学习和使用成本低,操作简单快捷;
  2. 数据持久化:测试脚本&测试数据&测试结果持久化,便于追溯历史记录;
  3. 维护成本低:满足开箱即用,和外部系统可以交互,出问题也有高效的技术支持;
  4. 支持多人协同:可以满足不同团队的人使用,快速开展压测工作且不会交叉影响;
  5. 便于配置管理:对压测集群、压测组件和一些配置项的管理便捷高效,不用手敲太多命令;
  6. 完善的施压支持:支持一定的高并发能力,压测集群可扩展,支持多协议和基本的自定义扩展能力;

看完上述条件,我们对压测平台的功能模块,就有了比较明确的要求。

  1. 用例管理:一个压测项目可以创建多个压测任务,任务=用例,用例包含压测脚本、压测数据和插件;
  2. 压测执行:支持手动和定时执行压测,可以配置运行参数、可以选择多个压测节点、支持同时运行多个压测任务;
  3. 实时监控:压测过程中实时展示TPS、RT、请求数、错误率等核心指标,并支持按时间段选择和计算;
  4. 压测结果:压测结束后整个任务的压测结果可以进行详细的展示,比如TPS、ART、90/95/99RT、成功/失败请求数、错误日志等;
  5. 配置管理:比如压测节点参数变更、绑定host、插件上传更新等;
  6. 扩展功能:比如支持mock、openAPI、造数工具、三方库兼容等;

看完了上面的条件和功能模块要求,那么一个基本的压测平台,要具备哪些具体的功能呢?请看下图:

PS:此图仅供参考,并不代表要完全有这些功能,根据自己的具体情况设定。

压测平台技术实现方案

接下来聊聊压测平台部分功能的技术实现方案。

压测平台的技术架构其实关键字搜索已经很多了,这里我也不想多费笔墨,在其他人的基础上微创新。

我想分享一些具体功能模块的技术实现方案,供大家参考。

mock功能

日志采样功能

PS:该功能是基于jmeter为压测工具实现的,仅供参考。

总结

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方链接免费领取,千万不要错过哦。

 

 

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

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

相关文章

【备战秋招】权限常见面试题

本文的面试题和答案均为本人自己收集,如有错误或者不足,欢迎大家指出 目录 你做过的系统,权限是怎么管理的 Shiro是靠什么做认证和授权的 什么是RBAC模型 如果让你手写一个Web过滤器验证权限,你会怎么写 Shiro的anon和authc都…

锅炉燃烧自动控制系统

串级控制 以外环温度、内环煤气流量为例 重点1 主PID输出0~100需要经过线性转换模块进行转换,转换成与煤气流量相同量纲才能作为副PID的设定值。假设煤气流量量程100000;则副PID设定值如下: secSET mainLMN/100*100000; 重点2…

创造者基金 2023 年 4 月亮点

隆重推出创作者基金的 2023 年 4 月亮点 NFT 系列——一系列令人着迷且令人惊叹的数字资产,让大家为之震撼!该系列的角色令人惊叹,包括阿兹特克酋长、维京战士、残酷的国王、传奇的九尾狐等等,是收藏家和爱好者的必备之物。 无论你…

优化 | 随机原始对偶混合梯度(SPDHG)算法及在图像处理中的应用

论文解读者:陈宇文,胡明杰,史铭伟,赵田田 许多实际问题都可以建模为凸优化问题。相比于直接求解原问题,将问题转化为鞍点问题往往会带来好处。求解鞍点问题的一种常用算法是原对偶混合梯度算法 (PDHG),它在…

ubuntu-server22.04编译Redis7.0.11源码支持TLS

1.克隆redis源码: git clone https://github.com/redis/redis.git 编译前确认已安装GCC11与G++11和cmake及make及pkg-config 安装命令如下: apt install gcc -y apt install g++ -y apt install cmake -y apt install pkg-config 因为要支持TLS所以要安装OPENSSL开发库 ap…

阿里云CPFS与OSS之间数据双向流动机制

随着云上对象存储成本的逐渐降低,越来越多的企业利用阿里云OSS存储他们的大量数据并构建数据湖。现在阿里云文件存储CPFS与对象存储OSS实现了深度集成,客户可以在三十分钟内创建一个高性能CPFS文件系统并链接到他们的OSS bucket。当链接到OSS bucket以后…

实验二 ROS结合OpenCV示例——人脸识别

ROS结合OpenCV示例——人脸识别 一、实验原理&#xff1a;二、实验步骤&#xff1a;<1> 安装opencv 以及串口功能包<2> 测试opencv串口是否安装成功 三、程序分析&#xff1a; 一、实验原理&#xff1a; Opencv库是一个基于BSD许可发行的跨平台开源计算机视觉库&a…

STM32WB55_NUCLEO开发(9)----接收手机数据点亮LED

概述 本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程&#xff0c;并通过与STM32WB配对&#xff0c;向该特征写入一个任意字节&#xff0c;绿色LED会切换。 硬件准备 首先需要准备一个开发板&#xff0c;这里我准备的是NUCLEO-WB55RG 的开发板&#xff1a; 选择芯片…

加拿大各省接受公立教育的初始年龄汇总 — 供携子女赴加的访学、博后参考

近年来到加拿大从事访问学者和博士后研究的申请者日益增多&#xff0c;有些申请者想带孩子同去上公立学校。因为加拿大各省教育局政策有差异&#xff0c;所以入学&#xff08;包括学前班&#xff09;年龄不同&#xff0c;为此知识人网小编整理本文为大家解惑答疑。 加拿大为本国…

GitHub Actions自动发布Package到Pub.dev

一、创建package或plugin 先创建一个package或者plugin 二、手动上传第一个版本到pub.dev flutter packages pub publish --serverhttps://pub.dartlang.org 三、在admin配置自动化发布 打开pub.dev中的对应的package按照以下图片配置 四、在项目跟目录配置发布脚本 1、在…

XMLMapperBuilder解析*mapper.xml

springboot的MybatisAutoConfiguration自动配置类会创建SqlSessionFactory&#xff0c;创建过程就是填充configuration属性&#xff0c;调用buildSqlSessionFactory()方法完成SqlSessionFactory创建&#xff0c;这其中就会创建XMLMapperBuilder解析mapper.xml和XMLConfigBuilde…

UHD在DPDK下进行编译

1.安装choco windows环境,用管理员权限打开 powershell 命令行界面。 输入命令:Set-ExecutionPolicy AllSigned 继续输入命令:Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]…

C++---区间DP/高精度计算---凸多边形的划分(每日一道算法2023.4.27)

注意事项&#xff1a; 本题是"区间DP—能量项链"的扩展题&#xff0c;可以先理解下那道题。 本题使用了"高精度乘法"和"高精度加法"&#xff0c;可以去这两篇文章看&#xff0c;有详解。 题目&#xff1a; 给定一个具有 N 个顶点的凸多边形&…

什么是SSO?

SSO&#xff08;Single Sign On&#xff09;单点登录。SSO是在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 当…

中山大学_程序设计新手赛2023_4题的小朋友_总结

送自己一句话&#xff1a;即使生活很不顺利&#xff0c;也不要成为一个连自己都讨厌的人 那样&#xff0c;当你有一天回首过往&#xff0c;只不过是在演戏中匆匆做过这一生 题目&#xff1a;见我上传的资源 A:关于时间复杂度 解&#xff1a; 1.关键&#xff1a; 法一&…

前端开发之axios请求封装详细讲解

前端开发之axios请求封装 前言1、安装axios2、创建公共文件request3、导入axiso4、初始化axios5、axios请求拦截器6、axios响应拦截器7、handleData&#xff1a;处理请求后来的response8、CODE_MESSAGE&#xff1a;code信息 前言 在vue项目中&#xff0c;和后台交互获取数据这…

openEuler社区人才评定考试流程指引

最近因为公司工作的需要参加考试了openEuler社区人才评定考试&#xff0c;本次考试题型主要包括单选、多选、判断三类题型。考试内容基本都是操作系统使用相关的内容。 考试需要注意事项&#xff1a; 1.考试为线上答题考试&#xff0c;需开启摄像头。 2.考试期间请保持周围环…

SQL server增删改查(1)

SQL server数据类型 整数型: BIGINT INT SMALLINT 小数型: FLOAT DOUBLE 文本型: CHAR VARCHAR NCHAR NVARCHAR TEXT 日期和时间类型 DATE TIME DATETIME 布尔型: BIT 数据类型含义INT长整数(也可以写作INTEGER)SMALLINT短整数CHAR(n)长度为n的定长字符串, 不足n个字符的空白部…

Scala语言入门以及基本语法

文章目录 前言1.环境搭建1) IDEA中插件下载2) SDK下载配置 2.基本使用1&#xff09;var与val的区别2) .基本数据类型3).字符串的基本用法4) 控制结构1) if else2) for 循环3) while循环 5)类6) 函数 前言 scala在一种简洁的高级语言中结合了面向对象和函数式编程。Scala的静态…

8个免费的PNG素材网站推荐

很多设计小白都不知道什么是PNG。事实上&#xff0c;PNG是一种支持透明度的图像格式。当你想在设计中将图像与背景或文本混合时&#xff0c;它就会派上用场。 如果你没有时间为你正在处理的设计创建透明的PNG图像&#xff0c;你也可以使用我收集的PNG素材网站&#xff0c;以便…