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

常见压力模式

并发模式(即虚拟用户模式)和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模型可能会产生更多的请求量,而并发用户模型则更强调每个用户并发请求的情况。此外,两种模型对于测试系统性能的关注点也略有不同,但都是测试系统在高并发情况下的性能表现,以便找到系统瓶颈并进行优化。

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++面向对象(OOP)编程-模板

本文主要讲解C的模板,其中包括模板的分类,函数模板和类模板,以及类模板与友元函数关系引起的几种关系。强调提供代码来搞懂C模板这一泛型编程手段。 目录 1 C模板 2 模板的本质 3 模板分类 4 函数模板 4.1 函数模板定义格式 4.2 函数模…

下午好~ 我的论文【遥感】(第一期)

写在前面:下午浑浑噩噩,泡杯茶,读篇论文吧 首先说明,时间有限没有那么精力一一回复了,对不起各位了TAT 文章目录 遥感Bi-Dilation-formerCNN-GNN-FusionMulti-hierarchical cross transformerCoupled CNNs 遥感 Bi-D…

Linux---Ubuntu软件安装

1. 软件安装的介绍 Ubuntu软件安装有两种方式: 离线安装(deb文件格式安装)在线安装(apt-get方式安装) 2. deb文件格式安装 是 Ubuntu 的安装包格式,可以使用 dpkg 命令进行软件的安装和卸载。 命令说明dpkg安装和卸载deb安装包 dpkg命令选项: 选项…

TestSSLServer4.exe工具使用方法简单介绍(查SSL的加密版本SSL3或是TLS1.2)

一、工具使用方法介绍 工具使用方法参照:http://www.bolet.org/TestSSLServer/ 全篇英文看不懂,翻译了下,能用到的简单介绍如下: 将下载的TestSSLServer4.exe工具放到桌面上,CMD命令行进入到桌面目录,执…

Kafka--从Zookeeper数据理解Kafka集群工作机制

从Zookeeper数据理解Kafka集群工作机制 这一部分主要是理解Kafka的服务端重要原理。但是Kafka为了保证高吞吐,高性能,高可扩展的三高架构,很多具体设计都是相当复杂的。如果直接跳进去学习研究,很快就会晕头转向。所以&#xff0c…

Java小案例-RocketMQ的11种消息类型,你知道几种?(死信消息)

前言 在RocketMQ中,死信消息(Dead-Letter Message)是指那些在正常情况下无法被消费者消费的消息。这些消息会被存储在死信队列(Dead-Letter Queue,简称DLQ)中。 死信消息的特性包括: 不会再被…

如何免费搭建私人电影网站(一)

前言:在线看电影经常会出现烦人的广告,为了不浪费时间看广告,有必要做自己的专属网站。 准备工作: 1、申请免费域名(也可以花钱注册域名相对稳定)链接: 申请免费域名方法 2、申请免费主机(也可以…

详解 Jeecg-boot 框架如何配置 elasticsearch

目录 一、下载安装 Elasticsearch 1、 地址:https://www.elastic.co/cn/downloads/elasticsearch 2、下载完成后,解压缩,进入config目录更改配置文件 3、 修改配置完成后,前往bin目录启动el 4、访问:localhost:92…

FreeRTOS202212 ‐ 定时器结构体定义

FreeRTOS202212-定时器结构体 /*-----------------------------------------------------------*/ /* The definition of the timers themselves. */ /*定时器本身的定义*/ typedef struct tmrTimerControl /* The old naming convention is used to prevent breaking kernel a…

分布式事务--TC服务的高可用和异地容灾

1.模拟异地容灾的TC集群 计划启动两台seata的tc服务节点: 节点名称ip地址端口号集群名称seata127.0.0.18091SHseata2127.0.0.18092HZ 之前我们已经启动了一台seata服务,端口是8091,集群名为SH。 现在,将seata目录复制一份&…

音视频学习(二十一)——rtmp收流(tcp方式)

前言 本文主要介绍rtmp协议收流流程,在linux上搭建rtmp服务器,通过自研的rtmp收流库发起取流请求,使用ffmpegqt实现视频流的解码与播放。 关于rtmp协议基础介绍可查看:https://blog.csdn.net/www_dong/article/details/13102607…

《点云处理》平面拟合

前言 在众多点云处理算法中,其中关于平面拟合的算法十分广泛。本篇内容主要是希望总结归纳各类点云平面拟合算法,并且将代码进行梳理保存。 环境: VS2019 PCL1.11.1 1.RANSAC 使用ransac对平面进行拟合是非常常见的用法,PCL…

C语言实现输入一个 N*N 矩阵,并将矩阵转置输出

完整代码&#xff1a; //输入一个 N*N 矩阵&#xff0c;并将矩阵转置输出 #include<stdio.h> #include<stdlib.h>int main(){int n0;printf("请输入矩阵的行数:");scanf("%d",&n);//C语言不允许对数组的大小作动态定义// int arr[n][n];直…

Linux之FTP 服务器

一、FTP服务器匿名账户服务器配置 1、测试是否已安装vsftp服务器&#xff1a; 2、启动vsftp服务器&#xff1a; 3、修改vsftp主配置文件&#xff0c;允许匿名登录 4、重新启动vsftpd服务,禁用防火墙 5、打开FTP服务的数据文件存放目录/var/ftp&#xff0c;复制若干文件到该目…

深度学习环境配置超详细教程【Anaconda+Pycharm+PyTorch(GPU版)+CUDA+cuDNN】

在宇宙的浩瀚中&#xff0c;我们是微不足道的&#xff0c;但我们的思维却可以触及无尽的边界。 目录 关于Anaconda&#xff1a; 关于Pycharm&#xff1a; 关于Pytorch&#xff1a; 关于CUDA&#xff1a; 关于Cudnn&#xff1a; 一、&#x1f30e;前言&#xff1a; 二、&…

深眸科技|轻辙视觉引擎以99.9%视觉检测能力为基准,赋能木材加工

轻辙视觉引擎&#xff1a;轻辙视觉引擎是以低代码为基础&#xff0c;深度学习技术为核心的视觉业务流程编排引擎&#xff0c;用于快速搭建部署复杂视觉检测流程软件方案。 轻辙视觉引擎&#xff5c;轻量级产品实现高效应用 作为深眸科技的核心产品之一&#xff0c;轻辙视觉引…

【Docker光速搞定深度学习环境配置!】

你是否还在用压缩包打包你的代码&#xff0c;然后在新的机器重新安装软件&#xff0c;配置你的环境&#xff0c;才能跑起来&#xff1f; 特别有这样的情况&#xff1a;诶&#xff0c;在我电脑跑的好好的&#xff0c;怎么这里这么多问题&#xff1f; 当项目比较简单的时候&am…

Java Web实现案例 :实现用户登录功能

目录 零、本节学习目标 一、纯JSP方式实现用户登录功能 &#xff08;一&#xff09;实现思路 &#xff08;二&#xff09;实现步骤 1、创建Web项目 2、创建登录页面 3、创建登录处理页面 4、创建登录成功页面 5、创建登录失败页面 6、编辑项目首页 &#xff08;三&…

全同态加密正在改变行业游戏规则?

PrimiHub一款由密码学专家团队打造的开源隐私计算平台&#xff0c;专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 隐私专业人士正在见证隐私技术的一场革命。新的隐私增强技术的出现和成熟是这场革命的一部分&#xff0c;这些技术允许数据使用和…

Python---进程

1. 进程的介绍 在Python程序中&#xff0c;想要实现多任务可以使用进程来完成&#xff0c;进程是实现多任务的一种方式。 2. 进程的概念 一个正在运行的程序或者软件就是一个进程&#xff0c;它是操作系统进行资源分配的基本单位&#xff0c;也就是说每启动一个进程&#xf…