赞
踩
关于jmeter定时器我们之前已经了解了其中的几个,接下来我们继续熟悉一下的几个定时器的作用!
JSR223定时器
JSR223定时器实际可以通过java、JavaScript、beanshell等多种语言去实现我们的定时功能,类似于下面提到的beanshell定时器。
添加定时器–>JSR223定时器
接下来添加我们之前测试用的两个接口请求,然后编辑以下脚本:
Thread.sleep(5000); 意思是指等待5秒,然后我们运行看看结果:
可以看到两个接口之间的间隔时间大概在5秒左右!
同步定时器
这个定时器的作用就比较大了,主要是用来做并发测试时的重要工具,特别是某些限时抢杀活动时会用到,并发会更严格。
添加定时器–>同步定时器
接下来看下定时器界面:
模拟用户组数量:这个设置需等到满足这些数量的用户组时才会同时并发
超时时间:设置要求尽量贴近 线程数 / 线程加载时间的值
接下来我们添加两个请求接口,设置线程组数为10,用户组数量为10,超时时间为0,然后运行得到如下:
我们可以看到时间结果几乎一致!
泊松随机定时器
泊松随机定时器,这个定时器在每个线程请求之前按随机的时间停顿,总的延迟就是泊松分布值和偏移值之和。这个定时器在每个线程请求之前按随机的时间停顿,总的延迟就是泊松分布值和偏移值之和。
添加定时器–>泊松随机定时器
来看下定时器的界面配置:
Lambda(in milliseconds):兰布达值;
Constant Delay Offset(in milliseconds):暂停的毫秒数减去随机延迟的毫秒数。
然后我们继续添加两个接口请求,以上数值体现的是两个接口请求的停顿时间在100-400毫秒之间,运行结果可得:
可以看到两个接口的时间差在100-400ms之间!
高斯随机定时器
这个定时器可以使每个线程的延迟时间是符合标准正态分布的随机时间停顿。
总延迟时间 = 高斯分布值(平均0.0和标准差1.0)* 指定的偏差值 + 固定延迟偏移
添加定时器–>高斯随机定时器
我们来看下定时器界面配置:
设置随机定时为1s,固定偏差为3s,添加两个请求接口,运行得到如下:
可以看到两个接口之间偏移了3s时间!
BeanShell定时器(常用且重要)
根据被控制器触发执行次数,去依次执行控制器下的子节点<逻辑控制器、采样器>。被触发执行可以由线程组的线程数、循环次数、逻辑控制器触发。
添加定时器–>BeanShell 定时器
看下界面配置:
可以看下这个定时器与JSR223 定时器比较相似,都是通过编写语言实现,添加两个接口请求,编写如下时间,运行得到如下结果:
在这里插入图片描述
可得到两个接口之间相差5秒!
-----------------------------------总结--------------------------------------
JMeter中的定时器一般被我们用来设置延迟与同步。定时器的执行优先级高于Sampler(取样器),在同一作用域(例如控制器下)下有多个定时器存在时,每一个定时器都会执行,如果想让某一定时器仅对某一Sampler有效,则可以把定时器加在此Sampler节点下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。