首页 > 其他分享 >JMeter定时器(一)

JMeter定时器(一)

时间:2024-04-25 18:23:01浏览次数:15  
标签:10 定时器 标准差 随机 线程 JMeter 延迟

一 前言

环境: window 10 JMeter 5.3

二 定时器

定时器(Timers)的作用就是对取样器(sampler)的执行进行延迟,所以,定时器只对同作用域的取样器有意义

定时器会在其所处作用域内的取样器之前执行。把定时器添加为取样器的子节点,这样就会在取样器之前执行

1 固定定时器

这个比较简单,延迟时间是固定的
image
image
image

上图对比可以看到,第2个请求比第一个晚了3秒

2 高斯随机定时器

image

这个定时器一直搞不懂它的延时时间到底怎么算的,其它博主每个人的理解好像都不一样。
去看了正态分布结合其它资料,我的理解是这样
该延迟时间是一个随机值,但是该随机值符合一个正态分布的规律,正态分布有一个68-95-99.7(大约)的准则
固定延迟相当于整台分布的均值,偏差相当于正态分布的标准差。如果产生随机数的次数足够多,大约68%的随机数会在 均值加减一个标准差的范围,大约95%的随机数会在 均值加减两个标准差的范围,大约99.7%的随机数会在 均值加减三个标准差的范围,当然,还有一小部分数据会在上述三个范围之外,但是概率很小很小

明白了这个随机范围,具体的参数要设置为什么值呢

假设,我们希望延迟在3-10秒之间,如果结合高斯随机定时器来说,延迟在3-10秒之间是不准确的,只能说68%的延迟在3-10秒或者95%的延迟在3-10秒或者99.7%的延迟在3-10秒,只要符合其中一种,我们就可以说大多数延迟在3-10秒, 这里我们就假定是95%
首先是选择均值,就用最简单的办法选择中间值6.5
然后是标准差,6.5与3是3.5的差距,与10同样是3.5的差距,由于95%是两个标准差,也就是说3.5是2个标注差的值,那标准差就是1.75

试一下
image

image

结果就不贴出来了,我这里3次延迟是,10s 7s 11s,考虑到其它操作及因素的影响,实际随机产生的延迟时间是小于这三个值的

上面是我个人对于高斯随机定时器的理解,欢迎大家指正

3 统一随机定时器

image
延迟时间=固定延迟+随机延迟(0到随机最大延迟的一个随机数)
试一下
image
image

结果树中三次延迟分别是4s 4s 2s,考虑到其它操作及因素的影响,实际计算出的延迟时间是小于这三个值的

4 Synchronizing Timer

该定时器会阻塞线程直到你设定的线程参数或者时间参数,然后这些被阻塞的线程会一起被释放,看起来很像并发
image
image

group by那个参数:希望被阻塞的线程数,如果是0,则相当于设为配置中线程组的数量
timeout 参数:如果为0,则JMeter会一直等待直到达到设定阻塞线程参数,如果永远达不到,则会无限等待下去,只有强制停止才会停止

如果大于0,达到timeout参数的时间后,则不再等待,无论阻塞线程是否达到

综上,应该结合计算机配置及JMeter配置合理设置这两个参数

标签:10,定时器,标准差,随机,线程,JMeter,延迟
From: https://www.cnblogs.com/MyRecords/p/18157887

相关文章

  • jmeter如何实现不均匀负载?
     在JMeter中实现不均匀负载可以通过使用不同的线程组和定时器来模拟不同的用户行为模式和负载分布。下面是一种常见的方法:使用不同的线程组:在测试计划中创建多个线程组,每个线程组代表一个不同的用户群体或业务场景。例如,可以创建一个线程组用于模拟高负载场景,另一个线程组......
  • jmeter中平均响应时间中百分位90,95,99区别,应该关注哪个?
      在JMeter中,平均响应时间(AverageResponseTime)以及百分位数(Percentiles)是用来衡量性能的重要指标之一。在这些指标中,99th百分位、95th百分位和90th百分位通常被用来表示响应时间的分布情况。99th百分位(P99):表示在所有请求中,99%的请求的响应时间都小于或等于该......
  • jmeter:测试片段使用的踩坑点
    1.坑点:测试片段保存后含有两层【测试片段】,这样引用测试片段是不会成功的,检查方法:打开测试片段看看是否只有一个层级测试片段 2.测试片段的正确使用步骤 方法1:选中多个请求或者配置元件>鼠标右键,保存为测试片段(测试实施过程中最常用的方法) 方法2:添加测试片段>将多个请求......
  • jmeter :包含控制器引用外部测试片段
    什么场景适合用测试片段:多人协作接口测试时,每个人负责的模块接口不一样,使用测试片段可以减少脚本重复编写,很好解决模块间脚本依赖问题。1.添加测试片段并保存测试计划:将已调试好的请求和调试取样器放到测试片段(外部测试片段)添加测试片段保存的另一种方法:  按ctrl+选中请求......
  • jmeter有很多个接口需要用到token,怎么简单操作?
     一、实现方法添加HTTP请求默认值:在你的测试计划中,添加一个HTTP请求默认值配置元件(HTTPRequestDefaults),用于设置所有HTTP请求的公共属性,包括服务器地址、端口号等。你可以在这里设置token,以便在所有请求中都能使用它。获取token:在测试计划中,添加一个HTTP请求,......
  • jmeter查看测试片段的执行结果方法二:在添加【测试片段】后结合 模块控制器 查看获取的
    建议使用第一种方法:使用调试取样器查看变量值,再添加测试片段保存1.在测试计划下>添加测试片段2.在线程组下>添加模块控制器3.模块控制器指定运行当前测试片段:找到目标元素 备注:模块控制器添加步骤:线程组>鼠标右键,添加>逻辑控制器>模块控制器......
  • 性能测试——压测工具jmeter接口测试
    柠檬班jmeter教程参考:https://www.bilibili.com/video/BV1st411Y7QW/?spm_id_from=333.337.search-card.all.click&vd_source=79bbd5b76bfd74c2ef1501653cee29d6 黑马jmeter教程参考:https://www.bilibili.com/video/BV1ty4y1q72g/?spm_id_from=333.337.search-card.all.click&v......
  • JMeter 做接口加密测试
    JMeter怎么做接口的加密?JMeter如果需要做加密测试,是需要加密类型对应的jar包的。本文以MD5,加密作为教程。 1、在TestPlan引用jar包; 2、添加BeanShellSampler取样器,并输入调用代码 importmd5.mymd5;//调用jar包StringpassAftermd5=mymd5.getMd5("1234");//......
  • JMeter通过JDBC链接数据库并实现批量造数据
      在JMeter做自动化接口测试,需要对数据库进行增删改查等操作时,我们是无法像navicat一样直接写SQL的,需要通过一系列操作,才可以。 1、首先,第一步就是,在TestPlan中引用对应数据库的jar包,jar包可以在网上找,本文以MySQL为例,步骤如下:   2、第二步,在线程组下面添加JDBCC......
  • JMeter的梯度压测
        ApacheJMeter是Apache组织基于Java开发的压力测试工具,用于对软件做压力测试。   一般大家说熟悉的压测脚本方案是,通过一次次去提高线程数量,来对接口性能峰值进行摸底,如果压测任务中出现了几十几百个接口,每个接口都去压5min的(10、20、30、40.。。并发)这样......