浅谈性能测试稳定性 Constant Throughput Timer(常数吞吐量定时器)
在性能测试过程中总会收到一些需求如:单接口每秒并发20,这种并发持续60秒,通过负载测试查看系统稳定性,今天就让我们来浅谈一下这种场景如何去实现性能测试~
这种场景可以用两种方法去实现:
一、我们通过控制总线程数和Ramp-Up来控制并发,让它的线程慢慢增压,因为只有一个接口,所以执行时是偏快的
我们把线程数设置为20*60=1200,Ramp-Up设置为60,循环次数为1

这样设置我们来看下聚合报告,也是符合我们的需求,但没有那么准确的确保每秒都并发20,这种概率偏随机

可以发现它的Transactions per Second图中的事务数是这种忽高忽低,所以可以和第二种放发一起选择,选择适合的方法

二、第二种就要用到这篇文章的主角了Constant Throughput Timer(常数吞吐量定时器)
首先将线程组设置为20,循环次数60大道每秒并发20持续60秒的结果

其次就用到Constant Throughput Timer(常数吞吐量定时器)了,我们设置目标吞吐量(每分钟的样本量)为20*60=1200,注意这里的单位是分钟

那基于计算吞吐量怎么选择呢?在这种情况里我们选择了所有活动线程,但不同种情况可以选择不同的用法

只有此线程(This thread only)
解释:当选择这个选项时,吞吐量目标仅针对当前设置了定时器的线程。这意味着设置的目标吞吐量(Target Throughput)将完全由这个线程来实现。
用法:如果你想要单独测试某个线程的性能,并确保其达到特定的吞吐量目标,可以选择这个选项。例如,如果你有一个线程负责处理特定的业务逻辑,并希望它能够达到每秒10个请求(RPS)的吞吐量,你可以在该线程上添加Constant Throughput Timer并设置Target Throughput为600(因为一分钟有60秒,所以10 RPS = 600 RPS/分钟)。
所有活动线程(All active threads)
解释:这个选项将吞吐量目标分配到当前所有活动的线程上。这意味着所有当前正在运行的线程都将共同分担实现总吞吐量目标的责任。
用法:如果你有一个包含多个线程的测试计划,并且希望所有线程共同工作以达到某个总的吞吐量目标,可以选择这个选项。但是,需要注意的是,由于线程的执行可能不是完全同步的,因此每个线程实际达到的吞吐量可能会有所不同。
当前线程组中的所有活动线程(All active threads in current thread group)
解释:这个选项与“所有活动线程”类似,但它仅针对当前线程组中的线程。如果你在一个测试计划中有多个线程组,这个选项将确保只有当前线程组中的线程参与实现吞吐量目标。
用法:如果你想要隔离并测试某个线程组的性能,可以选择这个选项。这样,你可以确保只有该线程组中的线程被考虑在内,而不会受到其他线程组的影响。
所有活动线程(共享)(All active threads (shared))
解释:这个选项类似于“所有活动线程”,但它具有一个额外的特性:每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。这有助于确保所有线程都能够均匀地分担吞吐量目标的责任。
用法:如果你想要确保所有线程都能够以相对均匀的方式分担吞吐量目标的责任,可以选择这个选项。这有助于避免某些线程过于繁忙而其他线程则相对空闲的情况。
归纳:
- 单独测试:如果你想要单独测试某个线程或线程组的性能,可以选择“只有此线程”或“当前线程组中的所有活动线程”。
- 协同测试:如果你想要多个线程或线程组共同工作以达到某个总的吞吐量目标,可以选择“所有活动线程”或“所有活动线程(共享)”。
最后我们看下执行的集合报告和TPS图,相对于第一种方法每秒的事务数更加稳定,可以精确的将每秒的并发控制在20来控制系统的稳定性了~


浅谈性能测试稳定性 Constant Throughput Timer(常数吞吐量定时器)的更多相关文章
- constant timer(固定定时器),constant throughput timer(常数吞吐量定时器);多个请求,某个请求a下,设置常数吞吐量定时器,模式:all active threads(shared)则所有请求吞吐量一致;
1.两请求之间添加'固定定时器' 1000ms,那么两请求发送间隔时间是多少? 1000ms吗? 由实验得出,2个请求发送间隔时间 = 1000ms + 第一个请求时间(发出至完成后时间) 2.单个请 ...
- JMETER 定时器 之 常数吞吐量定时器
定时器: 默认情况下,Jmeter线程在发送请求之间没有间歇.建议为线程组添加某种定时器,以便设定请求之间应该隔多长时间.如果测试人员不设定这种延迟,Jmeter可能会在短时间内产生大量访问请求,导致 ...
- Jmeter之Constant Timer与constant throughput timer的区别(转)
当放置Constant Timer于两个http请求之间,那么它代表的含义是:在上一个请求发出至完成后, 开始Contant Timer指定的时间,最后再发出第二个请求.它并不是代表两个请求之间的发送 ...
- Jmeter之Constant Timer与constant throughput timer的区别
当放置Constant Timer于两个http请求之间,那么它代表的含义是:在上一个请求发出至完成后, 开始Contant Timer指定的时间,最后再发出第二个请求.它并不是代表两个请求之间的发送 ...
- Jmeter Constant Throughput Timer 使用
Jmeter提供了一个非常有用的定时器,称为Constant Throughput Timer (常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量. 右键点击fnng.cnblo ...
- Jmeter固定吞吐量控制器Constant Throughput Timer
控制请求的TPS,可以使用JMETER的固定吞吐量控制器Constant Throughput Timer Target throughput(in samples per minute):目标吞吐量 ...
- jmeter-并发及常数吞吐量定时器设定
- Jmeter定时器:Precise Throughput Timer使用
百度上这方面资料很少,google上有一些,我试着总结一下. Precise Throughput Timer 是Jmeter4.0添加的新功能,直接摘录一段英文: The Precise Throu ...
- [原创]浅谈H5页面性能测试
[原创]浅谈H5页面性能测试 H5页面我想各位都不陌生,随着移动互联网兴起,不管是App,还是H5都火起来了,最突出的2个表现是ios/android/前端等工程师薪水大涨,尤其是资深前端工程师40W ...
- 浅谈如何提高自动化测试的稳定性和可维护性 (pytest&allure)
装饰器与出错重试机制 谈到稳定性,不得不说的就是“出错重试”机制了,在自动化测试中,由于环境一般都是测试环境,经常会有各种各种的抽风情况影响测试结果,这样就为测试的稳定性带来了挑战,毕竟谁也不想自己的 ...
随机推荐
- vue-hbuilder打包-调取摄像头或上传图片
方法一: <input type="file" accept="image/*" capture="camera" > 方法二: ...
- Ryght 在 Hugging Face 专家助力下赋能医疗保健和生命科学之旅
本文是 Ryght 团队的客座博文. Ryght 是何方神圣? Ryght 的使命是构建一个专为医疗保健和生命科学领域量身定制的企业级生成式人工智能平台.最近,公司正式公开了 Ryght 预览版 平台 ...
- windows10 64 解决 exec:"gcc" executable file not found in %PATH%报错问题
1.下载编译好的包 https://sourceforge.net/projects/mingw-w64/files/mingw-w64/ 这里我选择64位的 2.解压完之后,配置环境变量. 解压完到 ...
- su与sudo用法详解
su与sudo用法详解 目录 su与sudo用法详解 1. su和sudo详解:切换用户身份 1.1 shell登录类型和环境配置文件 1.2 su进行身份切换 1.3 sudo命令详解 1.3.1 ...
- Wang Tile的Shader简易实现
在使用大面积的平铺纹理时,会导致重复感较强的贴图呈现在画面中.我们可以通过许多方法进行优化,WangTile就是其中一种. WangTile(王浩瓷砖)方法通过对每条边标记颜色,并在平铺时将相同颜色的 ...
- Win10-常用cmd命令与快捷键
以下全部是本人私认为平时经常用到的指令,持续更行中- 常用快捷键 win + R : 输入cmd回车,打开命令提示符界面 win + E : 打开文件资源管理器(俗称:文件夹) win + S : 搜 ...
- C语言:单链表删除学生信息,增加学生信息(简易版)
假设用户都是正常的,不会输入一些乱七八糟的东西. 功能1:输出学生学号和成绩,用动态连链表来存放,继续存放学生信息的时候可以继续输入之前输入过的学号信息,打印的时候会分开打印(因为是简易版本,没有太完 ...
- Angular的管道
Angular的管道可以看作成是一个数据格式化展示的工具.管道可以将数据格式化显示,而不改变源数据.获取数据可能简单到创建一个局部变量就行,也可能复杂到从WebSocket中获取数据流.一旦取到数据, ...
- 安装node-sass失败原因及解决办法汇总
node-sass 安装过程 npm 拉下 node-sass包: 根据node版本和node-sass版本拉取对应的binding.node编译器,原因是sass的编译语言比较特殊,需要下载对应版本 ...
- 基于webapi的websocket聊天室(番外一)
上一篇我已经实现了聊天室,并且在协议中实现了4种类型的消息传输.其实还可以添加video,audio,live等等类型. 不过假如把目前的协议看作RCP1.0版的话,这个版本就只支持有限的4种消息.精 ...