JMeter定时器设置延迟与同步
JMeter定时器一般用来设置延迟与同步。它的作用域和优先级如下:
- 定时器的优先级高于Sampler。
- 在同一作用域(比如控制器下)有多个定时器存在,每个定时器都会执行。
- 在某一Sampler节点下的定时器,只对这个Sampler有效。
JMeter一共有9种定时器:

Constant Timer

固定值,多用来模拟思考时间。
Uniform Random Timer

随机时间,分布会更均匀。
Random Delay Maximum:随机延迟时间。
Constant Delay Offset:固定延迟时间。
示例:

会让线程延迟在2.0到2.1秒之间。
Precise Throughput Timer

用的比较少,比Constant Throughput Timer更复杂更高级的用来控制吞吐量的一个定时器。
Constant Throughput Timer

控制吞吐量,尽量保持Sampler产生的吞吐量(RPS)在一个固定的范围内。
Target throughput:目标吞吐量。JMeter会根据吞吐量、并发线程数来计算迭代的时间间隔,如果吞吐量大过设定值,就增加;反之减少。
Calculate Throughput based on:
this thread only:仅针对当前线程,每个线程互不干扰,分开计算需要延迟多少时间。
all active threads:把所有线程的吞吐量合在一起作为因子计算。
all active threads in current thread group:针对当前线程组中的所有线程。
all active threads (shared):在所有线程中,随便获取一个线程上次运行的实际来进行计算,结果随机不一定准确,只能努力控制吞吐量在某一个范围。
all active threads in current thread group (shared):在上面意思一样,范围是当前线程组。
Gaussian Random Timer

生成一个呈高斯分布的时间间隔,可以用来离散请求。
Deviation:一个浮动范围的偏差值。
Constant Delay Offset:固定延迟时间。
JSR223 Timer

跟BeanShell类似,可以运行JavaScript等其他语言。
JDK集成了JS的运行引擎,可以运行JavaScript脚本,JSR223是一个标准,为脚本引擎提供了统一的接口、统一的访问模式。
Poisson Random Timer

随机时间,呈泊松分布。
Lambda:泊松分布的期望和方差。
Constant Delay Offset:固定延迟时间。
Synchronizing Timer

同步定时器,用来模拟多用户并发同一时刻发起请求。
Number of Simulated Users to Group by:等待x个用户(线程)集合后开始释放(发起请求)。
默认为0,等同于设置为线程租中的线程数量。
Timeout in milliseconds:等待时长,如果等待这么长时间,还没有达到上个选项设置的数量,那么不再等待,立即释放已到达的线程。
默认为0,等待线程数达到上个选项设置的数量才释放。
BeanShell Timer

Reset Interpreter:是否每次迭代重置解释器,默认False。官方建议在长时间运行的脚本中才设置为True。
Parameters:入参,可以是单个变量,也可以是数组。
File Name:从脚本文件中读取BeanShell脚本。
Script:
ctx:通过JmeterContent实例获取运行时信息,如log.error(ctx.getThreadNum().toString());。
vars:访问或设置变量,如vars.get("name"),vars.put("name", "dongfanger")。
props:访问JMeter属性(%JMETER_HOME%/bin/jmeter.properties),如props.get("log_level.jmeter"),props.put("log_level.jmeter", "ERROR")。
log:在代码中调用log类来写日志,如log.error("loadtest");。
prev:可以访问前面Sampler的结果。
示例:

小结
本文首先介绍了JMeter定时器的作用域和优先级,然后分别介绍了各式各样的定时器,既能设置延迟,也能同步集合,可以固定可以随机,配置与编程并存,五花八门。
参考资料:
《全栈性能测试修炼宝典JMeter实战》
JMeter定时器设置延迟与同步的更多相关文章
- JMeter—定时器(八)
参考<全栈性能测试修炼宝典JMeter实战>第六章 JMeter 元件详解中第三节定时器 JMeter中的定时器一般用来设置延迟与同步.定时器的执行优先级高于取样器,在同一作用域下有多个定 ...
- Jmeter(十三) - 从入门到精通 - JMeter定时器 - 上篇(详解教程)
1.简介 用户实际操作时,并非是连续点击,而是存在很多停顿的情况,例如:用户需要时间阅读文字内容.填表.或者查找正确的链接等.为了模拟用户实际情况,在性能测试中我们需要考虑思考时间.若不认真考虑思考时 ...
- Jmeter(十四) - 从入门到精通 - JMeter定时器 - 下篇(详解教程)
1.简介 用户实际操作时,并非是连续点击,而是存在很多停顿的情况,例如:用户需要时间阅读文字内容.填表.或者查找正确的链接等.为了模拟用户实际情况,在性能测试中我们需要考虑思考时间.若不认真考虑思考时 ...
- Jmeter场景设置与监听
目录 Jmeter场景设置 场景运行 Jmeter测试监控 Samples:取样器运行次数(提交了多少笔业务). Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元,场景设计 ...
- TCP定时器 之 延迟确认定时器
TCP在收到数据段但是无需马上确认时设定,如果在超时时间之内有数据要发送到对端,则确认会随着数据一起发送,即捎带ACK,如果达到超时时间则执行定时器回调立即发送ack: 启动定时器: 延迟确认定时器调 ...
- 转:LPC2214的PLL与定时器设置
原地址:http://blog.sina.com.cn/s/blog_4419d72d0100mu7h.html LPC2214的PLL与定时器设置 http://www.dpj365.cn/bbs/ ...
- Jmeter 日志设置---如何设置java协议中被测jar的日志?
先转载一下Jmeter的日志设置: Jmeter运行出现问题可以通过调整jmeter的日志级别定位问题,但运行测试时建议关闭jmeter日志,jmeter打印日志耗费系统性能. Jmeter日志默认存 ...
- Mysql 5.7.21 设置主从库同步
主从复制条件: Mysql 单机多实例安装参考Mysql 5.7.21 设置主从库同步 下面的操作是多实例主从复制,3306为主库,3307为从库. 主库要开启log-bin,主库和从库的server ...
- Visual Studio Code的设置及插件同步
Visual Studio Code的设置及插件同步 使用Visual Studio Code开发有一段时间了,用起来是极其的顺手,但是唯独一点不爽的就是,Visual Studio Code不像Vi ...
随机推荐
- 数据表格 layui.table
layui官网-表单 自动渲染 方法渲染 table.render,cols中的field是后台传递的data map.put("data",stuService.selectSt ...
- Windows子系统Ubuntu安装宝塔面板
首先你需要安装Ubuntu子系统,安装方法点击这里,安装完成后再进行下面的步骤. 安装宝塔面板 输入命令 wget -O install.sh http://download.bt.cn/instal ...
- 深入探索Android热修复技术原理读书笔记 —— 资源热修复技术
该系列文章: 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍 深入探索Android热修复技术原理读书笔记 -- 代码热修复技术 1 普遍的实现方式 Android资源的热修复,就 ...
- VS2010编写32位和64位dll环境配置,以及判断dll是多少位
前言 最近在编写dll注入程序的时候,因为想注入到系统进程,结果发现总是注入失败.自闭了好长一会发现我忘记了我的系统是64位的,系统进程也是64位的,而我编写的待注入的DLL是32位了,所以才导致失败 ...
- Masm32sdk安装指南
上一年学习win32汇编时用的masm32sdk不是最新版本的.因为最近准备继续学习win32汇编,所以准备安装最新的masm32sdk软件包.其中遇到了一些问题,从网上找了2个小时才搞定(宝宝心里苦 ...
- CRM帮助B2B企业持续改善战略决策「上篇」
数据一直都是企业和客户的热点话题.客户期望得到更加个性化的感受,企业则期望使用数据来持续改善战略决策和给予更好的服务 B2B企业如何更合理地利用客户资料: 数据采集 长期以来,B2C行业的企业都是通过 ...
- [re模块、json&pickle模块]
[re模块.json&pickle模块] re模块 什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则 ...
- 【Web前端HTML5&CSS3】08-盒模型补充
笔记来源:尚硅谷Web前端HTML5&CSS3初学者零基础入门全套完整版 目录 盒模型补充及田径场实战 1. 盒子大小 2. 轮廓 3. 阴影 4. 圆角 圆 椭圆 盒模型补充及田径场实战 1 ...
- mybatis-plus批量插入saveBatch太慢?我愿意称rewriteBatchedStatements为神
最近在做项目优化,代码优化之后,测试接口,好家伙.一个定时任务接口执行要10秒左右. 一点点追踪,给每个方法打上执行时间,一点点缩小范围.好家伙,终于让我锁定了目标. 这是mybatis-plus的批 ...
- 登录框-element-ui 样式调节
element-ui样式调节 首先设置布局 如果想要实现如下效果 需要两行,然后设置偏移,第一行中间只是站位,没有内容,可以考虑使用div占位,设置最小高度 el-card调整圆角 border-ra ...