JMeter定时器使用小结

news2024/11/25 13:46:15

目录

前言:

一、定时器的作用域

二、定时器的作用

1、BeanShell定时器(BeanShell Timer)

2、固定吞吐量定时器(Constant Throughput Timer)

3、JSR223定时器(JSR223 Timer)

4、泊松随机定时器(Poisson Random Timer)

5、同步定时器(Synchronizing Timer)

6、均匀随机定时器(Uniform Random Timer)

7、固定定时器(Constant Timer)

8、高斯随机定时器(Gaussian Random Timer)


前言:

JMeter中的定时器(Timer)是一种重要的元件,用于模拟用户在不同时间间隔内发送请求的场景。通过使用定时器,可以模拟负载、并发和容量等不同情况下的请求发送频率。

一、定时器的作用域

1、无论定时器位置在Sampler之前还是下面,定时器是在每个sampler(采样器)之前执行的,而不是之后;

2、当执行一个Sampler之前时,所有当前作用域内的定时器都会被执行;

3、如果希望定时器仅应用于其中一个Sampler,则把定时器作为子节点加入;

4、如果希望在Sampler执行完之后再等待,则可以使用Sampler中的Test Action;

二、定时器的作用

1、BeanShell定时器(BeanShell Timer)

利用BeanShell编程实现的定时器,十分强大,可以根据需要自己实现需要达到的效果,如在某个变量达到指定值的时候等待一下(其中BeanShell为一种松散类型的脚本语言,类似JS)。

参数说明:

Reset Interpreter(重置解释器):是否每次重置迭代解释器,默认选择false,一般在长时间运行脚本时选择true;

Paremeters(参数):beanshell timer的入参,可以是单个变量也可以是数组;

File Name:从脚本文件中读取定时器的脚本;

Script:直接在script区域编写BeanShell定时器脚本;

2、固定吞吐量定时器(Constant Throughput Timer)

可以让JMeter以指定数字的吞吐量(即指定TPS)执行,注意的是这里要求指定每分钟的执行数,而不是每秒。在控制对服务器施压非常实用,如已知服务器每分钟最大能处理多少线程数的情况下,要对服务器进行长时的疲劳强度测试。

Calculate Throughput based on:

有5个选项,分别是:

this thread only:控制每个线程的吞吐量,选择这种模式时,总的吞吐量 = Target throughput * 线程的数量 。

all active threads:设置的Target throughput将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。

all active threads in current thread group:设置的Target throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和all active threads选项的效果完全相同。

all active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。

all cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

3、JSR223定时器(JSR223 Timer)

这个定时器相当于BeanShell定时器的“父集”,它可以使用beanshell、java、javascript、groovy等多种语言去实现你希望完成的事情。

4、泊松随机定时器(Poisson Random Timer)

这个定时器在每个线程请求之前按随机的时间停顿,大部分的时间间隔出现在一个特定的值,总的延迟就是泊松分布值和偏移值之和。

上面表示暂停时间会分布在 100到400毫秒之间:

1)Lambda(in milliseconds):兰布达值(以毫秒为单位);

2)Constant Delay Offset(in milliseconds):固定延迟偏移(以毫秒为单位),暂停的毫秒数减去随机延迟的毫秒数。

5、同步定时器(Synchronizing Timer)

这个定时器和Loadrunner当中的集合点(rendezvous point)作用相似,其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力(可以用于绝对并发测试,即同一“时刻”对某一个服务施加多少用户请求,这里的“多少用户”指线程数,这样更容易测试出线程资源挣用导致的死锁等问题)

1)Number of Simulated Users to Group by:模拟用户的数量,即指定同时释放的线程数量;

2)Timeout in milliseconds:超时时间,即超时多少毫秒后同时释放指定的线程数(即时没有达到前面设置的线程数量),如果为 0 将一直等待,直到达到前面设置的线程数量。

6、均匀随机定时器(Uniform Random Timer)

和高斯随机定时器的作用差异不大,区别在于延时时间在指定范围内且每个时间的取值概率相同,每个时间间隔都有相同的概率发生,总的延迟时间就是随机值和偏移值之和。

上面表示的是延迟时间为 0到100之间的随机数 + 50 毫秒:

1)Random Delay Maximum(in milliseconds):随机延迟时间的最大毫秒数;

2)Constant Delay Offset(in milliseconds):暂停的毫秒数减去随机延迟的毫秒数。

7、固定定时器(Constant Timer)

如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。

对于“java请求”这个sampler来说,定时器相当于loadrunner中的pacing(两次迭代之间的间隔时间);

对于“事务控制器”来说,定时器相当于loadrunner中的think time(思考时间:实际操作中,模拟真实用户在操作过程中的等待时间)。

8、高斯随机定时器(Gaussian Random Timer)

如需要每个线程在请求前按随机时间停顿,那么使用这个定时器,上图表示暂停时间会分布在100到400毫秒之间,计算公式参考:Math.abs((this.random.nextGaussian() * 300) + 100)

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等)

相信能使你更好的进步!

点击下方小卡片

 

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

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

相关文章

python接口自动化(十五)--参数关联接口(详解)

简介 我们用自动化新建任务之后,要想接着对这个新建任务操作,那就需要用参数关联了,新建任务之后会有一个任务的Jenkins-Crumb,获取到这个Jenkins-Crumb,就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。 …

Vue3 动态组件

父组件 <template><div><h1>动态组件</h1><ul class"ul"><li :class"{ actived: index isactive }" click"changeCur(index)" v-for"(item, index) in list" :key"item.name">{{item…

Elasticsearch(1)——倒排索引与HTTP操作Elasticsearch

文章目录 1 前言2 Elasticsearch 安装3 数据格式4 倒排索引5 常用HTTP请求操作Elasticsearch5.1 创建索引5.2 查询索引信息5.3 删除索引5.4 创建/修改文档5.5查找文档5.6局部修改文档5.7删除文档5.8分页查询 1 前言 Elastic Stack 核心产品包括 Elasticsearch【存储数据】、Ki…

行云管家堡垒机和传统堡垒机的区别简单讲解

据统计&#xff0c;70%以上的IT故障其实都是内部人为引起的&#xff0c;例如账号密码管理不规范、资产授权不清晰、违规执行高危敏感命令等&#xff0c;这意味着信息化安全管理首先要解决的是加强内部信息安全管控。而加强内部信息安全管控就需要用到运维审计产品&#xff0c;也…

Bito - 超越Copilot的一款神级插件

文章目录 01 引言02 Bito的安装与使用2.1 安装Bito2.2 注册并创建工作空间2.3 使用方式 03 其它3.1 插件支持的平台3.2 文档 04 文末 01 引言 Bito IDEA插件地址&#xff1a;https://plugins.jetbrains.com/plugin/18289-bito–gpt-4–chatgpt-to-write-code-explain-code-crea…

合作、参与、让开源更易用 | 亚马逊的开源文化

JAX 是一种越来越流行的库&#xff0c;它支持原生 Python 或 NumPy 函数的可组合函数转换&#xff0c;可用于高性能数值计算和机器学习研究。JAX 提供了编写 NumPy 程序的能力&#xff0c;这些程序可以使用 GPU/TPU 自动差分和加速&#xff0c;从而形成了更灵活的框架来支持现代…

举例说明什么是前馈神经网络

前馈神经网络&#xff08;Feedforward Neural Network&#xff09;是一种最基本的人工神经网络结构&#xff0c;它由多个层次的神经元组成&#xff0c;这些神经元间具有相互连接的权重。数据从输入层进入&#xff0c;然后逐层传播&#xff0c;最后到达输出层。在这个过程中&…

基于ava+Swing+Mysql图书信息管理系统

基于JavaSwingMysql图书信息管理系统 一、系统介绍二、功能展示1.主页2.新增图书信息3.删除图书信息 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看图书列表、新增图书信息、删除图书信息 运行环境&#xff1a;eclipse、idea、jdk1.8 二、功能展示…

YUV 8bit转10bit

在有些场景中&#xff0c;我们经常会使用到YUV 8 bit转10bit的场景。 比如YUV420p 8bit 转 P010,P010le,YUV420p10le。 首先说ffmpeg 8 bit 转 10bit. 对于ffmpeg的P010le 和P010be 分别代表小端和大端&#xff0c;那么它转化的时候非常简单&#xff0c;就是8 bit再增加 8bit&…

MSP432自主开发笔记1:编码器测速_外部中断捕获法测速\测正反转

开发板芯片型号&#xff1a;MSP432P401R 今日得以继续我的MSP432电赛速通之路&#xff01; 进入此文章阶段&#xff0c;就预示着先人的开拓已经到了尽头,看着先人“一身转战三千里&#xff0c;一剑曾当百万师”&#xff0c;我们也该“门前学种先生柳”从而“步行夺得胡马骑”…

基于SSM的教务管理系统

基于ssm教务管理系统 一、项目背景介绍&#xff1a; 教务管理系统是一种基于信息技术的管理工具&#xff0c;可以用来管理学生、教师、课程、考试、教学资源等方面的信息&#xff0c;以实现高效、科学、规范的教务管理。随着信息技术的迅速发展&#xff0c;教务管理系统已经成为…

VM虚拟机端口映射接收CS弹反木马

VM虚拟机端口映射接收CS弹反木马 1. 前言1.1. 前期准备1.2. 整体思路 2. 整体操作流程2.1. 虚拟机配置2.2. WIFI路由器设置2.3. CS设置2.3.1. 创建本地监听器2.3.2. 创建生成木马监听器2.3.3. 创建反弹木马2.3.4. 查看效果 1. 前言 在日常的对客户的内网进行渗透的时候&#xf…

【广州华锐互动】VR地铁安全应急疏散模拟演练系统

VR地铁安全应急疏散模拟演练系统是一种利用虚拟现实技术模拟铁路安全事故的应用程序。该系统具有以下功能和内容&#xff1a; 多种场景和情境&#xff1a;用户可以选择不同的场景和情境进行模拟&#xff0c;例如列车脱轨、火灾、爆炸等。 操作控制器或手势识别技术&#xff1…

超细,RobotFramework自动化测试-测试套件使用详细(实战)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 自动化因为是基于…

Ubuntu 20.04 LTS 安装 nvidia 驱动 + cuda 11.8 从开始到放弃!

升级 sources.list # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restri…

【赠书活动】同构:编程中的数学

写在前面 近年来随着人工智能、大规模分布式计算、多核CPU和异构计算等的发展&#xff0c;计算机中的各种编程技术在编程语言、软件架构、编译器、硬件体系结构、集成电路设计等方面都有着剧烈的变化。编程语言方面&#xff0c;越来越多的主流语言引入函数式编程的概念。软件架…

Zotero+百度网盘同步空间多电脑设置方法

Zotero百度网盘同步空间多电脑设置方法 之前一直用的Onedrive和Zotero来同步&#xff0c;原理差不多&#xff0c;但是百度网盘同步空间毕竟是国内的&#xff0c;&#xff08;开了会员&#xff09;速度快很多&#xff0c;记录一下多台电脑使用百度网盘同步空间来同步Zotero和相…

第六章.­ ­ Theory of Generalization

第六章. Theory of Generalization 上一章节我们主要探讨了M数值的大小对机器学习的影响。若M很大&#xff0c;我们就不能保证机器学习有很好的泛化能力&#xff0c;所以我们的问题就转换成验证M有限&#xff0c;最好是按照多项式成长&#xff0c;然后引入了成长函数mH(N)和二…

微服务一 实用篇 - 4.RabbitMQ

《微服务一 实用篇 - 4.RabbitMQ》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - 4.RabbitMQ》 《微服务一 实用篇 - 4.RabbitMQ》1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比 2.快速入门2.1.安装RabbitM…

viewsets.ViewSet 详解

目录 零、前提&#xff08;这一段可以忽略&#xff09; 一、地址 二、viewsets.ViewSet介绍 2.1 viewsets.ViewSet介绍 三、viewsets.ViewSet默认方法&#xff08;增删改查等方法&#xff09; 四、 生成路由 4.1 使用路由器注册 viewset&#xff0c;自动生成 URL 配置(推…