原文链接:https://blog.csdn.net/weixin_37579123/article/details/90216427
元器件执行顺序:
配置元件(CSV Data Set Config)-前置处理器-定时器-取样器-后置处理器-断言-监听器
JMeter中的定时器一般被我们用来设置延迟与同步。定时器的执行优先级高于Sample(取样器),在同一作用域下有多个定时器存在时,每个定时器都会执行;如果项让某一定时器仅对某一Sample有效,则可以把定时器加在此Sample之下。
固定定时器
作用:通过Thread Delay设定每个线程请求之前的等待时间(单位为毫秒)。注意:固定定时器的延时不会计入当前sampler 的响应时间里,但是会计入事务控制器的时间。对于事务控制器来说,定时器相当于loadrunner中的think time(思考时间:实际操作中,模拟真实用户在操作过程中的等待时间)
通常所说的响应时间,大部分情况下是针对某一个具体的sampler(http请求),而不是针对一组sampler组合的事务。
高斯随机定时器(Gaussian Random Timer)
如果需要每个线程的延迟时间是符合标准正态分布的随机时间停顿,那么使用这个定时器,总延迟 = 高斯分布值(平均0.0和标准偏差1.0)* 指定的偏差值+固定延迟偏移
高斯定时器生成一个呈高斯分布的时间间隔
偏差:设置的偏差是一个i浮动范围,单位毫秒;
固定延迟偏移:固定延时时间。
我们可以用它模拟思考时间(用户提交表单前填写表单及思考的时间)
统一随机定时器(Uniform Random Timer)
让线程暂停一个随机时间,只不过力求随机时间能够更均匀,都会出现
Random Delay Maximum:随机延迟最大时间
Constant Delay Offset:固定延迟偏移量
和高斯随机定时器的作用差异不大,它产生的延迟时间是个随机值,而各随机值出现的概率均等。总的延迟时间等于一个随机延迟时间加上一个固定延迟时间,用户可以设置随机延迟时间和固定延迟时间。
总延迟时间=指定范围内的随机时间+固定延迟时间
同步定时器
用来设置集合点,其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力
(1)模拟用户组的数量(Number of Simulated Users to Group by):模拟用户的数量,即指定同时释放的线程数数量,若设置为0,等于设置为线程组中的线程数量;
(2)超时时间以毫秒为单位(Timeout in milliseconds):超时时间,即超时多少毫秒后同时释放指定的线程数;如果设置为0,该定时器将会等待线程数达到了设置的线程数才释放,若没有达到设置的线程数会一直死等。如果大于0,那么如果超过Timeout inmilliseconds中设置的最大等待时间后还没达到设置的线程数,Timer将不再等待,释放已到达的线程。默认为0
同步定时器(Synchronizing Timer)的超时时间设置要求:超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)
常数吞吐量定时器(Constant Throughput Timer)
目标吞吐量(Target throughput(in samples per minute)):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的20 QPS ,这里的值应该是1200
作用:按指定的吞吐量执行,以每分钟为单位。计算吞吐量依据是最后一次线程的执行时延。
可以选择作用的线程:当前线程、当前线程组、所有线程组等,具体含义如下:
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):同上,但每个线程是根据线程的上次运行时间来延迟。相当于让所有线程组整体排队。(不常用)
原文链接:https://blog.csdn.net/weixin_37579123/article/details/90216427