jmeter提供了很多元件,帮助我们更好的完成各种场景的性能测试,其中,定时器(timer)是很重要的一个元件,jemter提供了9种定时器,下面一一介绍:

一、定时器的作用域

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

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

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

二、定时器详解

1、固定定时器Constant Timer

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

<1>单线程,与sampler同级,每个sampler之间固定停顿3s,无顺序影响(若线程组设置循环2次,生效规则一样)

<2>单线程,处于sampler2下级,仅作用域sampler2,sampler2运行前停顿3s(若线程组设置循环2次,生效规则一样)

<3>多线程,与sampler同级,每个sampler之间固定停顿不固定(目前测的)

2、统一随机定时器Uniform Random Timer

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

该定时器可以在请求之间设置一个随机延时,每个随机延时有相同的发生概率。总的延时等于随机延时 + 偏移延时值。

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

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

<1>单线程,与sampler同级,每个sampler之间随机停顿0-3s+2s,无顺序影响(若线程组设置循环2次,生效规则一样)

<2>单线程,处于sampler2下级,仅作用域sampler2,sampler2运行前停顿0-3s+2s(若线程组设置循环2次,生效规则一样)

3、高斯随机定时器Gaussian Random Timer

Tread Delay Properties:单位都是毫秒,固定延迟300ms,偏差100ms,意思是时间延迟300-400ms之间

Deviation (in milliseconds):偏差值,是一个浮动范围;

Constant Delay offset (in milliseconds):固定延迟时间

<1>单线程,与sampler同级,若只设置了固定延迟偏移2000,每个sampler之间固定停顿,2s,无顺序影响(若线程组设置循环2次,生效规则一样)

<2>单线程,处于sampler2下级,仅作用域sampler2,若只设置了固定延迟偏移2000,sampler2运行前停顿2s(若线程组设置循环2次,生效规则一样)

4、集合点/同步定时器Synchronizing Timer

这个定时器和loadrunner当中的集合点(rendezvous point)作用相似,其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力,实行并发效果(人多力量大- -哈哈!)

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

等待达到多少用户时,一起并发请求

(2)Timeout in milliseconds:超时时间,即超时多少毫秒后同时释放指定的线程数

如果为0表示一直等待,直至达到(1)中用户数才一起请求;如果非0,例如30,表示只等待30ms不管是否达到(1)中用户数

都进入到下一步的并发

<1>作用于所有线程和所有sampler,sampler之间的并发独立的,与sampler同级,Number of Simulated Users to Group by:设置为2,Timeout in milliseconds:0,等到集合到2个线程时,同时并发请求

<2>作用于所有线程和sampler2,sampler之间的并发独立的,处于sampler2下级,只作用于sampler2,Number of Simulated Users to Group by:设置为2,Timeout in milliseconds:0,等到sampler2集合到2个线程时,同时并发请求

<3>作用于所有线程和所有sampler,sampler之间的并发独立的,线程数设置为2,Number of Simulated Users to Group by:设置为3,Timeout in milliseconds:0,会一直等待中

<4>作用于所有线程和所有sampler,sampler之间的并发独立的,线程数设置为2,Number of Simulated Users to Group by:设置为3,Timeout in milliseconds:1000,超过1000ms等待时,会自动运行当前等到的线程

a 若与sampler同级,超时时间会作用于左右sampler

a 若处于sampler2下级,超时时间会作用于sampler2运行前

5、固定吞吐量定时器Constant Throughput Timer

测试需求:测试20个用户访问网站在负载达到30QPS时的平均响应时间

Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的20 QPS ,这里的值应该是1200 。

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 基本相同,唯一的区别是,

每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

设置定时器的Target throughput为1200/分钟(20 QPS),设置Calculate Throughput based on 的值为All active threads 。

当然,Constant Throughput Timer只有在线程组中的线程产生足够多的request 的情况下才有意义,因此,即使设置了Constant Throughput Timer的值,也可能由于线程组中的线程数量不够,或是定时器设置不合理等原因导致总体的QPS不能达到预期目标。

Jmeter性能测试工具Timer定时器详解相关推荐

  1. elasticsearch性能测试工具rally深入详解

    Elasticsearch性能测试工具rally深入详解题记 elasticsearch性能测试研究了很久,自己想过通过批量导入数据,然后记录时间,统计CPU.内存等变化,计算得出某个性能指标.但显然 ...

  2. Timer定时器详解

    Timer定时器主要做定时任务或者按照一定的时间间隔做任务,例如每天4点钟定时执行作业等 Timer的特性 1.它属于单线程的,每创建个Timer实例,就会创建一个新线程 2.Timer默认情况下不是 ...

  3. apache性能测试工具ab使用详解

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...

  4. uml建模工具 支持php,【UML 建模】在线UML建模工具 ProcessOn 使用详解

    总结: -- 推荐理由 : 最近从 Windows 操作系统 转到 MAC 上, 正在看设计模式 和 重构, 找不到好用的 UML 工具, 因此在网上找了一款可以在线使用的 UML 工具, 用起来发现 ...

  5. Jmeter做数据构造步骤详解

    Jmeter做数据构造步骤详解 引入 什么是数据构造 数据构造的方式 数据构造的意义 一.JDBC请求执行SQL语句构造数据 01 环境准备:添加Jmeter插件 02 使用步骤 二.HTTP请求调用 ...

  6. STM32的定时器详解(嵌入式学习)

    STM32的定时器详解 0. 前言 1. Systick定时器 概念 工作原理 时钟基准 Systick练习 2. HAL_Delay函数分析 3. 定时器 基本概念 定时器分类 定时器组成 计数器 ...

  7. 性能测试 软件 jmeter,快速学习Jmeter性能测试工具

    导读 本场chat将从零基础开始学习JMeter工具,文章主要包括JMeter基础知识.JMeter最简开发流程.运行与监听.JMeter元件库.脚本开发等方面讲解JMeter性能测试工具.将有部分实 ...

  8. Java中的Timer和Timer Task详解

    Java Timer&TimerTask原理分析 如果你使用Java语言进行开发,对于定时执行任务这样的需求,自然而然会想到使用Timer和TimerTask完成任务,我最近就使用 Timer ...

  9. php把proto解析为文档,Protobuf 文件生成工具 Prototool 命令详解

    Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...

最新文章

  1. 这样在一个sql里完成更新和插入,只用一次数据库连接,效率提高了
  2. Generic Data Access Layer泛型的数据访问层
  3. DHCP在企业网中的应用
  4. 计算机教资笔试答题,教资笔试5大题型的解答技巧,你get到了嘛?
  5. SAP财务报表不平之分析
  6. 如何快糙好猛的使用Shiqi.Yu老师的公开人脸检测库(附源码)
  7. java for循环前面label_Java 实例
  8. Siamese 目标跟踪:Learning to Fuse Asymmetric Feature Maps in Siamese Trackers(CVPR2021)
  9. 魔兽各服务器位置,魔兽世界怀旧服矿点分布在哪 全地图采矿位置一览(多图)
  10. android 支持蓝牙4.0的手机型号
  11. SCU4438 Censor(审查员) (KMP算法与模拟栈的应用 || HASH表与模拟栈的结合)
  12. 2021年全球与中国水上巡航行业市场规模及发展前景分析
  13. 威眼(WeaView)企业计算机监管系统如何安装客户端和日常使用
  14. TcaplusDB君 · 行业新闻汇编(11月15号)
  15. hdu 3642 体积并
  16. 基于JAVA都市书城系统计算机毕业设计源码+系统+lw文档+部署
  17. 2.1嵌入式微处理器的结构和类型
  18. 蓝桥杯之DS18B20
  19. SCSI、iSCSI、FC、FCoE
  20. TD-LTE网络中,F频段与D频段网络的区别是什么?

热门文章

  1. apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)
  2. 远程ykvm 插件移值java_Centos7 命令行下kvm安装windows,linux
  3. 爬虫python能做游戏吗_一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!...
  4. android 支付模块封装,Android集成支付----支付宝支付总结与封装
  5. 经济专业为什么学python_既然有了会计学专业,为什么还要有税收学专业?
  6. windows。forms.timer设置第一次不等待_适用于初学者的中线交易策略——金叉的三种设置条件...
  7. linux 智联 网卡设置,Linux初学者DNS配置指南(四)配置Bind常见问题
  8. mysql替换sql中rank函数_MySQL sql Rank()函数实现
  9. pta7-3 统计不及格人数_应用统计专硕院校专业难度分析【青岛大学、苏大、西安交通大学】...
  10. 《计算机导论》课程论文,计算机导论课程论文