Jmeter常用的定时器有以下几项,我们一一介绍
1、固定定时器(Constant Timer)
用法(场景):更真实的模拟用户场景,需要设置等待时间,或是等待上一个请求的时间,才执行,给sampler之间的思考时间;
备注:如果需要每个步骤均延迟,则将定时器放在与请求持平的位置,若只针对一个请求延迟,则将定时器放在该请求子节点中。
(1)每个步骤均延迟示例:
(2)只针对一个请求延迟示例:
2、高斯随机定时器(Gaussian Random Timer)
下图中固定延迟300ms,偏差100ms,意思是时间延迟300-400ms之间;
备注:如果需要每个步骤均延迟,则将定时器放在与请求持平的位置,若只针对一个请求延迟,则将定时器放在该请求子节点中。
3、均匀随机定时器(Uniform Random Timer)
和高斯随机定时器的作用差异不大,区别在于延时时间在指定范围内且每个时间的取值概率相同,每个时间间隔都有相同的概率发生,总的延迟时间就是随机值和偏移值之和。
下面表示的是随机延迟时间的最大值是100毫秒:
(1)Random Delay Maximum(in milliseconds):随机延迟时间的最大毫秒数
(2)Constant Delay Offset(in milliseconds):暂停的毫秒数减去随机延迟的毫秒数
4、固定吞吐量定时器(Constant Throughput Timer)
this thread only: 设置每个线程的吞吐量。总的吞吐量=线程数*该值。
all active threads in current thread group:吞吐量被分摊到当前线程组总的所有活动线程上。每个线程将根据上次运行时间延迟。
all active threads :吞吐量被分配到所有线程组的所有活动线程上。的总吞吐量。每个线程将根据上次运行时间延迟。在这种情况下,每个线程组需要一个具有相同设置的固定吞吐量定时器。
all active threads in current thread group (shared):同上,但是每个线程是根据组中的线程的上一次运行时间来延迟。相当于线程组组内排队。
all active threads (shared) ——同上,但每个线程是根据线程的上次运行时间来延迟。相当于让所有线程组整体排队。
5、同步定时器(Synchronizing Timer)
这个定时器和loadrunner当中的集合点(rendezvous point)作用相似,其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力。
Number of Simulated Users to Group by:集合多少人后再执行请求(也就是执行的线程数)
注意:等同于设置为线程组中的线程数,一定要确保设置的值不大于它所在线程组包含的用户数。
Timeout in milliseconds:指定人数多少秒没集合到算超时(设置延迟时间以毫秒为单位)
注意:如果设置Timeout in milliseconds为0,表示无超时时间,会一直等下去。
线程数量无法达到"Number of Simultaneous Users to Group by"中设置的值,那么Test将 无限等待,除非手动终止。
6、BeanShell定时器(BeanShell Timer)
这个定时器,一般情况下用不到,但它可以说是最强大的,因为可以自己变成实现想要做的任何事情,例如:
希望在每个线程执行完等待一下,或者希望在某个变量达到指定值的时候等待一下。
7、泊松随机定时器(Poisson Random Timer)
这个定时器在每个线程请求之前按随机的时间停顿,大部分的时间间隔出现在一个特定的值,总的延迟就是泊松分布值和偏移值之和。
上面表示暂停时间会分布在100到400毫秒之间:
(1)Lambda(in milliseconds):兰布达值
(2)Constant Delay Offset(in milliseconds):暂停的毫秒数减去随机延迟的毫秒数
定时器,在jmeter中的作用不可忽视,是一个重要的元件,能够帮助我们更好的完成各种各样的性能场景测试。