当前位置: 首页 > news >正文

【性能测试】基础知识篇-压力模型

常见压力模式

并发模式(即虚拟用户模式)和RPS模式(即Requests Per Second,每秒请求数,吞吐量模式)。

本文介绍这两种压力模式的区别,以便根据自身业务场景选择更合适的压力模式。

并发模式

“并发”是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。

应用场景

如果需要从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目标并发。

使用说明

并发模式下,需要指定全场景的最大并发数,再设置各串联链路的并发权重。

串联链路内各API的响应速度不同(表现为响应时间不同),所以单位时间内API的并发数也会不同。API响应速度越快,单位时间内累积在API上的并发用户数越少。

假设,目前共有100个虚拟用户需要操作某个事务(即串联链路)。该串联链路中共有2个API,API 1的响应速度快而API 2响应速度慢。则更多的虚拟用户将会等待在API 2上,API 2则需要更多的线程资源来处理更多的虚拟用户请求。

RPS模式

RPS(Requests Per Second)是指每秒请求数。

应用场景

RPS模式即吞吐量模式,通过设置每秒发出的请求数,从服务端的角度出发,直接衡量系统的吞吐能力,免去从并发到RPS的繁琐转化,可快速实现压测。

使用说明

API接口(如电商加购物车、下单等)主要用TPS(Transaction Per Second, 每秒事务数)来衡量系统的吞吐能力,选择该模式可以直接按照预期的TPS设置RPS。如果希望检验“下单”接口是否能达到500 TPS的预期,那么设置RPS为500,每秒发送500个请求,可检验系统的吞吐能力。

该模式下,请求无法及时响应时可能会导致较高的并发,异常情况请及时停止。

该模式仅支持非自动递增进行压测,即您需在压测过程中手工调速。具体操作,请参见手动调速模式下调速。

同一链路中,后一个API的RPS值需小于等于前一个API的RPS值。

基于实际业务考虑,一般正常业务链路转化模型应该为漏斗形状。例如,正常业务链路为:查看首页-查看商品详情-加入购物车-下单-付款。那么通常情况下,查看首页的用户数会比查看商品详情的用户数多,查看商品详情的用户数也会比加入购物车的用户数多,以此类推,所以后一个API的RPS值需小于前一个API的值,这样就比较符合漏斗模型。

配置量级及数据

设置好压测模式后,还需要在施压配置页面设置压测起始量级与最大量级。

压测数值

每个API可以视为业务系统的一个节点,处理能力不同导致可承载的业务量也不一致。并发模式与RPS模式施压的方式不同,故压测数值上的设置也会不同。

说明 无论选取何种压测模式,各场景最大值的总和不可超过该账户下对应资源包的最大VU、RPS。

两种模型的区别

RPS(Requests Per Second)压力模型和并发用户模型都是性能测试中常用的模型,但它们的测试方法和指标略有不同。

并发用户模型是一种测试方法,它通过模拟多个并发用户同时访问系统,以测试系统在高并发情况下的性能表现。测试人员可以逐步增加并发用户数,直到达到系统的瓶颈为止。在并发用户模型中,主要关注的指标是并发用户数、响应时间、吞吐量、错误率等。

RPS压力模型也是一种测试方法,它通过模拟多个并发用户向系统发送请求,以测试系统在高并发情况下的性能表现。测试人员可以逐步增加请求量,直到达到系统的瓶颈为止。在RPS压力模型中,主要关注的指标是每秒钟处理的请求数(即RPS)、响应时间、吞吐量、错误率等。

因此,两种模型的区别在于,对于同样的并发用户数,RPS模型可能会产生更多的请求量,而并发用户模型则更强调每个用户并发请求的情况。此外,两种模型对于测试系统性能的关注点也略有不同,但都是测试系统在高并发情况下的性能表现,以便找到系统瓶颈并进行优化。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

【性能测试】基础知识篇-压力模型

常见压力模式 并发模式(即虚拟用户模式)和RPS模式(即Requests Per Second,每秒请求数,吞吐量模式)。 本文介绍这两种压力模式的区别,以便根据自身业务场景选择更合适的压力模式。 并发模式 …...

springboot-redis设置定时触发任务详解

最近研究了一下“redis定时触发”,网上查了查资料,这里记录一下。 从Redis 2.8.0开始,Redis加入了发布/订阅模式以及键空间消息提醒(keyspace notification)功能。键空间消息提醒提供了允许客户端通过订阅指定信道获取…...

Video anomaly detection with spatio-temporal dissociation 论文阅读

Video anomaly detection with spatio-temporal dissociation 摘要1.介绍2.相关工作3. Methods3.1. Overview3.2. Spatial autoencoder3.3. Motion autoencoder3.4. Variance attention module3.5. Clustering3.6. The training objective function 4. Experiments5. Conclusio…...

svn 安装

安装系统 ubuntu 22 安装命令: sudo apt-get install subversion 创建第一个工程: 创建版本库、项目 1、先创建svn根目录文件夹 sudo mkdir /home/svn 2、创建项目的目录文件夹 sudo mkdir /home/svn/demo_0 svnadmin create /home/svn/demo_0 配置&a…...

slurm 23.11.0集群 debian 11.5 安装

slurm 23.11.0集群 debian 11.5 安装 用途 Slurm(Simple Linux Utility for Resource Management, http://slurm.schedmd.com/ )是开源的、具有容错性和高度可扩展的Linux集群超级计算系统资源管理和作业调度系统。超级计算系统可利用Slurm对资源和作业进行管理&a…...

ffmpeg可以做什么

用途 FFmpeg是一个功能强大的多媒体处理工具,可以处理音频和视频文件。它是一个开源项目,可在各种操作系统上运行,包括Linux、Windows和Mac OS X等。以下是FFmpeg可以做的一些主要任务: 转换媒体格式:可将一个媒体格式…...

一种缩小数据之间差距的算法

先上代码&#xff1a; /** * 缩小数据之间的差距&#xff0c;但是大小关系不变的方法* param {Array} features */function minMaxData(data) {for (let i 0; i < data.length; i) {const f data[i];const x f[1];const yf[2];//此处5根据实际情况设置const y2 Math.pow(…...

【Axure RP9】动态面板使用------案例:包括轮播图和多方式登入及左侧菜单栏案例

目录 一 动态面板简介 1.1 动态面板是什么 二 轮播图 2.1 轮播图是什么 2.2 轮播图应用场景 2.3 制作实播图 三 多方式登入 3.1多方式登入是什么 3.3 多方式登入实现 四 左侧菜单栏 4.1左侧菜单栏是什么 4.2 左侧菜单栏实现 一 动态面板简介 1.1 动态面板是什么…...

在接口实现类中,加不加@Override的区别

最近的软件构造实验经常需要设计接口&#xff0c;我们知道Override注解是告诉编译器&#xff0c;下面的方法是重写父类的方法&#xff0c;那么单纯实现接口的方法需不需要加Override呢&#xff1f; 定义一个类实现接口&#xff0c;使用idea时&#xff0c;声明implements之后会…...

优质全套SpringMVC教程

三、SpringMVC 在SSM整合中&#xff0c;MyBatis担任的角色是持久层框架&#xff0c;它能帮我们访问数据库&#xff0c;操作数据库 Spring能利用它的两大核心IOC、AOP整合框架 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想&#xff08;不是设计模式-思想就是我们…...

微信小程序---使用npm包安装Vant组件库

在小程序项目中&#xff0c;安装Vant 组件库主要分为如下3步: 注意&#xff1a;如果你的文件中不存在pakage.json&#xff0c;请初始化一下包管理器 npm init -y 1.通过 npm 安装(建议指定版本为1.3.3&#xff09; 通过npm npm i vant/weapp1.3.3 -S --production 通过y…...

GPT-4V被超越?SEED-Bench多模态大模型测评基准更新

&#x1f4d6; 技术报告 SEED-Bench-1&#xff1a;https://arxiv.org/abs/2307.16125 SEED-Bench-2&#xff1a;https://arxiv.org/abs/2311.17092 &#x1f917; 测评数据 SEED-Bench-1&#xff1a;https://huggingface.co/datasets/AILab-CVC/SEED-Bench SEED-Bench-2&…...

数据库_mongoDB

1 介绍 MongoDB 是一种 NoSQL 数据库&#xff0c;它将每个数据存储为一个文档&#xff0c;这里的文档类似于 JSON/BSON 对象&#xff0c;具体数据结构由键值&#xff08;key/value&#xff09;对组成。字段值可以包含其他文档&#xff0c;数组及文档数组。其数据结构非常松散&…...

Layui实现自定义的table列悬停事件并气泡提示信息

1、概要 使用layui组件实现table的指定列悬停时提示信息&#xff0c;因为layui组件中没有鼠标悬停事件支持&#xff0c;所以需要结合js原生事件来实现这个功能&#xff0c;并结合layui的tips和列的templte属性气泡提示实现效果。 2、效果图 3、代码案例 <!DOCTYPE html&g…...

Tomcat从认识安装到详细使用

文章目录 一.什么是Tomact?二.Tomcat的安装1.下载安装包2.一键下载3.打开Tomcat进行测试4.解决Tomcat中文服务器乱码 三.Tomcat基本使用1.启动与关闭Tomcat2.Tomcat部署项目与浏览器访问项目 四.Tomcat操作中的常见问题1.启动Tomcat后&#xff0c;启动窗口一闪而过&#xff1f…...

07-Eventing及实践

1 Knative Eventing的相关组件 Knative Eventing具有四个最基本的组件&#xff1a;Sources、Brokers、Triggers 和 Sinks 事件会从Source发送至SinkSink是能够接收传入的事件可寻址&#xff08;Addressable&#xff09;或可调用&#xff08;Callable&#xff09;资源 Knative S…...

Linux下Netty实现高性能UDP服务

前言 近期笔者基于Netty接收UDP报文进行业务数据统计的功能&#xff0c;因为Netty默认情况下处理UDP收包只能由一个线程负责&#xff0c;无法像TCP协议那种基于主从reactor模型实现多线程监听端口&#xff0c;所以笔者查阅网上资料查看是否有什么方式可以接收UDP收包的性能瓶颈…...

Ubuntu 22.04 Tesla V100s显卡驱动,CUDA,cuDNN,MiniCONDA3 环境的安装

今天来将由《蓝创精英团队》带来一个Ubuntu 显卡环境的安装&#xff0c;主要是想记录下来&#xff0c;方便以后快捷使用。 主要的基础环境 显卡驱动 (nvidia-smi)CUDA (nvidia-smi 可查看具体版本)cuDNN (cuda 深度学习加速库)Conda python环境管理(Miniconda3) Nvidia 驱动…...

FFmpeg转码流程和常见概念

视频格式&#xff1a;mkv&#xff0c;flv&#xff0c;mov&#xff0c;wmv&#xff0c;avi&#xff0c;mp4&#xff0c;m3u8&#xff0c;ts等等 FFmpeg的转码工具&#xff0c;它的处理流程是这样的&#xff1a; 从输入源获得原始的音视频数据&#xff0c;解封装得到压缩封装的音…...

【01】GeoScene生产海图或者电子航道图

1.1 什么是电子海图制图模块 GeoScene海事模块是一个用于管理和制作符合国际水文组织&#xff08;IHO&#xff09;S-100系列标准和S-57标准的海事数据的系统。提供了S-100和S-57工具&#xff0c;用于加载基于S-100的要素目录、创建基于S-57传输结构的数据、输入数据、符号化数…...

热敏电阻测温实战:从原理到Arduino/CircuitPython代码实现

1. 项目概述&#xff1a;从电阻到温度的桥梁在嵌入式开发和电子DIY项目中&#xff0c;温度测量是一个极其常见的需求。无论是环境监测、设备状态反馈&#xff0c;还是简单的温控风扇&#xff0c;你都需要一个可靠的“温度计”。市面上有琳琅满目的温度传感器&#xff0c;从数字…...

CentOS 7.9下Intel X710网卡驱动从2.8.20升级到2.22.18的完整避坑指南

CentOS 7.9下Intel X710网卡驱动从2.8.20升级到2.22.18的完整避坑指南 在企业级网络环境中&#xff0c;Intel X710系列网卡凭借其高性能和稳定性成为许多数据中心的首选。然而&#xff0c;当系统内核或网络需求发生变化时&#xff0c;驱动程序的升级往往成为运维人员必须面对的…...

如何免费解锁雀魂全角色皮肤:终极完整配置指南

如何免费解锁雀魂全角色皮肤&#xff1a;终极完整配置指南 【免费下载链接】majsoul_mod_plus 雀魂解锁全角色、皮肤、装扮等&#xff0c;支持全部服务器。 项目地址: https://gitcode.com/gh_mirrors/ma/majsoul_mod_plus 还在为无法获得心仪的雀魂角色而烦恼吗&#x…...

JVM性能调优实战:从GC日志分析到内存泄漏排查的完整工具链

1. 项目概述&#xff1a;从“感觉卡顿”到“数据说话”的JVM调优之路在电商大促、金融交易峰值或者物联网设备海量上报的瞬间&#xff0c;后台服务的响应延迟哪怕增加几十毫秒&#xff0c;都可能直接转化为用户流失或交易失败。作为一线开发者&#xff0c;我们常常会收到“系统…...

3大核心功能揭秘:MAA如何让《明日方舟》日常任务实现全自动托管

3大核心功能揭秘&#xff1a;MAA如何让《明日方舟》日常任务实现全自动托管 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: ht…...

为什么你的NotebookLM总“读不懂”Nature论文?生信老炮拆解7类专业语义断层及5种Prompt工程修复方案

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;NotebookLM生物技术研究 NotebookLM 是 Google 推出的基于 AI 的研究协作者工具&#xff0c;专为知识密集型工作流设计。在生物技术领域&#xff0c;它可高效整合海量文献、实验报告与基因组数据库摘要&#x…...

Node.js调用Llama.cpp:本地部署大语言模型的完整指南

1. 项目概述&#xff1a;当Llama遇见Node.js如果你最近在折腾大语言模型&#xff08;LLM&#xff09;的本地部署&#xff0c;特别是对Meta的Llama系列模型情有独钟&#xff0c;同时又是一名Node.js开发者&#xff0c;那么你很可能已经听说过或者正在寻找一个像withcatai/node-l…...

计算机 AI 方向 SCI 推荐|AI / 计算机 SCI 清单:3本 2区 + 1本 3区保底,无预警、对国人极度友好,易中稿,录用率拉满好投稿,硕博 / 青年教师首选,AI 科研人必藏!

投稿实用建议&#xff08;CSDN科研人专属&#xff09;优先选刊&#xff1a;追求高影响力、评职首选「Applied Soft Computing」&#xff1b;追求高录用率、快速毕业首选「Neurocomputing」。避坑提醒&#xff1a;所有期刊均为非预警刊&#xff0c;自引率均在安全范围&#xff0…...

使用Taotoken后我们如何观测与优化大模型API调用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken后我们如何观测与优化大模型API调用成本 1. 从黑盒到透明&#xff1a;成本观测的第一步 在接入大模型API的初期&…...

10分钟掌握R3nzSkin国服特供版:英雄联盟免费换肤完全指南

10分钟掌握R3nzSkin国服特供版&#xff1a;英雄联盟免费换肤完全指南 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 厌倦了英雄联盟国服中千篇一律的默…...