一、同步定时器
- 可以让多个线程同时向服务器发送请求,实现瞬间并发(相当于现实中同步秒杀商品)
- 类似于集合点
例如:10个人约定去旅游,出发前提前会在某一个地方等到10个人同时都到了约定地点之后再一同排队上车
- 在任意接口下添加同步定时器
- 模拟用户的数量( 模拟并发的数量):4
- 超时时间依毫秒为单位(如果到最后不足4个并发会等待1s,不足的话就单并发):1000
注意:线程组这里不要用循环,否则同步定时器会不是很稳定,你想跑多少线程,在这里设置,例如,这里我准备在10s内跑100个并发
-
添加一个监控器,用表格查看结果更清晰一点,结果如下(精确到毫秒),上面并发设置的是4个1组开始跑,结果如下,在同一时间4个1组同时并发
-
如果同步定时器设置3个1组,结果如下,最后会剩下1个单独跑
-
利用循环,并发不是很稳定,结果如下
二、固定定时器
-
延迟固定的时间后向服务器发送请求
-
类似于思考时间
Tips:每个线程在请求之间暂停相同的时间。时间单位是毫秒,1000毫秒=1秒,通俗的讲当你在买东西的时候,有可能会货比三家,会思考一下(所停留的时间)
- 先把线程组都设置为1
- 在需要的接口下面添加固定定时器,3000就是延迟3s
- 通过执行结果查看,从登录到下一个接口,下一个接口延迟3s才执行
三、统一随机定时器
- 延迟时间=固定延迟+随机延迟(0到随机最大延迟的一个随机数)
- 添加统一随机定时器,默认如下
- 设置延迟时间
- 执行结果如下,每一次执行延迟时间都是随机的
四、常量吞吐量定时器
常量吞吐量定时器作用:
控制吞吐量,可以限制最大的吞吐量
1. 添加常数吞吐量控制器
2. 目标吞吐量意思是:
将jmeter发送请求的频率限制在目标吞吐量以下(有一点波动)
- 可以让JMeter以指定数字的吞吐量(以每分钟的样本数为单位,而不是每秒)执行
- 例如如果想控制吞吐量为5,5×60/min=300请求数/min,常数吞吐量定时器需要设置为300,并发1
- 吞吐量控制为10有2种方法(TPS会累加),只有此线程默认:
- 10×60/min=600请求数/min,常数吞吐量定时器需要设置为600,并发(线程组设置)1
- 10×60/min=600请求数/min, 常数吞吐量定时器需要设置为300,并发(线程组设置)2
- 吞吐量控制为20
- 线程组为1, 常数吞吐量定时器需要设置为1200
- 线程组为4, 常数吞吐量定时器需要设置为300,后续依次类推
所有活动线程:
如果选择所有活动线程就不依这个为参考了,就看一个地方:常数吞吐量定时器设置的数为主
例如TPS控制10,常数吞吐量定时器设置的数为600,TPS控制20,常数吞吐量定时器设置的数为1200
其他选项用的不多
3.调试脚本演示
- 线程组勾选循环,添加聚合报告和查看结果树(仅错误日志),常数吞吐量先置灰
- 压测1分钟左右查看吞吐量在42左右
- 当把常数吞吐量打开,设置为600后,再次压测,吞吐量为10上下浮动不大,和期望结果一致
- 当线程组更改为4的时候,吞吐量为40左右
- 当把基于计算吞吐量更改为所有活动线程后,线程组设置6,目标吞吐量设置600,再次压测,和期望结果一致,吞吐量在10左右