Jmeter(二):定时器Synchronizing Timer(设置集合点,实现并发)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter(二):定时器Synchronizing Timer(设置集合点,实现并发)相关的知识,希望对你有一定的参考价值。
参考技术A jmeter 中使用同步定时器 Synchronizing Timer实现 LoadRunner 中集合点的功能。
模拟多用户并发测试,即多个线程在同一时刻并发请求。
在未使用同步定时器 Synchronizing Timer时
添加-线程组。
添加-取样器-http请求
添加-监听器-用表格查看结果。
将设置线程数为5,可以看出发出的5个请求并未在同一时间开始。
通过使用同步定时器 Synchronizing Timer,可以帮助我们实现并发请求。
添加-定时器-Synchronizing Timer
同步定时器页面参数配置说明:
模拟用户组的数量(Number of Simulated Users to Group by) :就是并发数,集合多少请求后一起发出去。
超时时间以毫秒为单位(Timeout in milliseconds) :指定人数多少秒没集合到算超时,默认为0,会一直等。如果设置1000毫秒的,在1000毫秒内没有凑齐并发数,就会发出去。
可以看到有3个请求是同时发出去的(不会绝对,只会更接近3个),剩下的两个请求没有等到3个,在超过设置的1000ms后同时发出。
Jmeter -- 定时器
一、定时器的作用域
1. 定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面);
2. 当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;
3. 如果希望定时器仅应用于其中一个sampler,则把定时器作为子节点加入;
二、定时器的作用
用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段
三、常用定时器
1. 固定定时器 constant timer
可以让每个线程在请求之前按相同的指定时间停顿。固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间
对于单个请求来说,是两次迭代之间的时间间隔
对于事务控制器来说,模拟的是真实用户在操作过程中的等待时间
2. 固定吞吐量定时器 constant throughput timer
可以让jemeter以指定吞吐量执行
吞吐量的计算范围可以是当前线程、当前线程组、所有线程组等
1)This thread only:控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throughput 乘以该线程的数量。
2)all active threads:设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上次运行结束后等待合理的时间再次运行。活跃线程指同一时刻同时运行的线程。
3)all active threads in current thread group:设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程时,改选项和all active threads选项的效果完全相同。
4)all active threads(shared):与all active threads的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。
5)all active threads in current thread group(shared):与all active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间再次运行。
3. 同步定时器 synchronizing timer
集合点,作用是阻塞线程,直到指定的线程数量到达后,一起释放,可以瞬间产生很大的压力
以上是关于Jmeter(二):定时器Synchronizing Timer(设置集合点,实现并发)的主要内容,如果未能解决你的问题,请参考以下文章