前言

Jmeter的线程组在发送2个请求之间需要设置一个等待时间时,类似于代码里面的sleep休眠时间,可以用固定定时器解决。

固定定时器

有2个HTTP请求,a是注册用户请求,b是登录的请求。先发a请求注册,注册成功后,用同一账号去登录。

jmeter在发送2个请求的时间间隔非常短,有可能发注册请求后,数据库还没写入成功就发了登录请求,导致登录失败

jmeter压测学习30-定时器之固定定时器(思考时间)_jmeter

像这种情况,我们一般加个sleep等待时间,在jmeter里面可以用固定定时器来实现。

在第二个请求上添加-定时器-固定定时器

jmeter压测学习30-定时器之固定定时器(思考时间)_jmeter_02

设置延迟时间

延迟时间默认是300毫秒,我这里设置延迟2000毫秒,也就是2秒钟

jmeter压测学习30-定时器之固定定时器(思考时间)_jmeter_03

于是可以看到2个请求间隔2秒钟

jmeter压测学习30-定时器之固定定时器(思考时间)_jmeter技巧_04

定时器作用域

1.定时器是在每个sampler(采样器)之前执行的,而不是之后。不管这个定时器的位置放在sampler之后,还是之下,它都在sampler之前得到执行。

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

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

4.如果希望在sampler执行完之后再等待,则可使用取样器里面的测试活动(Test Action);

需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。

如下图,固定定时器的时长设为2000毫秒。

jmeter压测学习30-定时器之固定定时器(思考时间)_jmeter_05

定时器时长并不计入HTTP请求的响应时间,但被计入“事务控制器”的总时间

如果你坚持看到这里,并且对loadrunner的think time和pacing这两个概念还有记忆的话,我们可以有答案了:

对于“HTTP 请求”这个sampler来说,定时器相当于loadrunner中的pacing;对于“事务控制器”来说,定时器相当于loadrunner中的think time。

​https://blog.51cto.com/u_15249893​