有什么问题,欢迎指正或探索讨论
一、不设置循环次数,同步定时器触发时间集合的情况
1、 配置线程组数据
- 设置线程数为10个
- Ramp-up时间设置为50秒
- 循环次数设置为1次
2、设置同步定时器
- 同步定时器设置模拟用户组的数量为5个
- 超时时间以毫秒为单位设置为10000毫秒,也就是10秒钟
3、查看运行结果(第一条样本可以忽略,用于获取token的)
首先我们看同步定时器的设置,设置的是达到5个线程就进行一次释放或者10秒钟就进行一次释放。两条件触发了任一种都会进行释放
再看下Ramp-up Period(in seconds)的设置,线程与线程之间的时间间隔是5秒钟(详细的解释可以看→Ramp-up的用法)
-
查看前三条线程,也就是第2条至第4条样本,启动时间是相同的17:17:59.796
-
为什么3条线程就释放了呢,不是5条吗?
因为第1条线程至第3条线程启动的时间,2*5=10秒钟,触发了同步定时器设置的10秒钟释放一次,所以3条线程就释放了
- 为什么3条线程的启动时间一样呢?
因为同步定时器是将线程集合起来,再一起释放,所以3条线程的启动时间是一样的
- 查看第3条线程和第4条线程,也就是第4条样本和第5条样本,之间的间隔时间为15秒钟
因为3个线程释放一次,每个线程之前会等待Ramp-up Period设置的5秒,所以是5*3=15秒
- 查看最后两条线程,也就是第10条样本和第11条样本,之间的间隔时间为15秒钟
因为线程之间的间隔为5秒,同步定时器设置的触发时间为10秒。最后只有一条线程了,达不到5个线程的条件只能等待触发时间为10秒,所以是10+5=15秒
二、不设置循环次数,同步定时器触发线程数集合的情况
1、 配置线程组数据
- 设置线程数为10个
- Ramp-up时间设置为50秒
- 循环次数设置为1次
2、设置同步定时器
- 同步定时器设置模拟用户组的数量为3个
- 超时时间以毫秒为单位设置为60000毫秒,也就是60秒钟
3、查看运行结果(第一条样本可以忽略,用于获取token的)
首先我们看同步定时器的设置,设置的是达到3个线程就进行一次释放或者60秒钟就进行一次释放。两条件触发了任一种都会进行释放
再看下Ramp-up Period(in seconds)的设置,线程与线程之间的时间间隔是5秒钟(详细的解释可以看→Ramp-up的用法)
- 查看前三条线程,也就是第2条至第4条样本,启动时间是相同的14:30:55.187
因为设置的触发同步定时器时间为60秒钟释放一次,3条线程的时间是10秒钟,所以先触发3条线程的条件进行释放
- 查看第3条线程和第4条线程,也就是第4条样本和第5条样本,之间的间隔时间为15秒钟
因为3个线程释放一次,每个线程之前会等待Ramp-up Period设置的5秒,所以是5*3=15秒
- 查看最后两条线程,也就是第10条样本和第11条样本,之间的间隔时间为65秒钟
因为线程之间的间隔为5秒,同步定时器设置的触发时间为60秒。最后只有一条线程了,达不到3个线程的条件只能等待触发时间为60秒,所以是60+5=65秒
三、设置循环次数,同步定时器触发线程数集合的情况
1、 配置线程组数据
- 设置线程数为10个
- Ramp-up时间设置为50秒
- 循环次数设置为10次
2、设置同步定时器
- 同步定时器设置模拟用户组的数量为3个
- 超时时间以毫秒为单位设置为60000毫秒,也就是60秒钟
3、查看运行结果(第一条样本可以忽略,用于获取token的)
首先我们看同步定时器的设置,设置的是达到3个线程就进行一次释放或者60秒钟就进行一次释放。两条件触发了任一种都会进行释放
再看下Ramp-up Period(in seconds)的设置,线程与线程之间的时间间隔是5秒钟(详细的解释可以看→Ramp-up的用法)
- 查看前三条线程,也就是第2条至第4条样本,启动时间是相同的10:10:36.959
设置的触发同步定时器时间为60秒钟释放一次,3条线程的时间是10秒钟,所以先触发3条线程的条件进行释放
循环次数为10次,已经启动的线程会连续循环10次,且3个线程同步执行。查看结果图就可以看到非常有规律的3条线程一块执行,且循环了10次
因为下个释放点是15秒钟后,所以循环10次时没有之后的线程打乱规则。如果循环时有其他线程启动,则3条线程释放时就不是固定123这3条了
- 为什么3条之间的间隔时间这么短呢?
因为同步定时器设置3条就释放一次,并没有触发到时间
- 查看第1条线程和第4条线程的第一次启动时间,也就是第2条样本和第32条样本,之间的间隔时间为15秒钟
因为3个线程释放一次,每个线程之前会等待Ramp-up Period设置的5秒,所以是5*3=15秒
- 查看第7条线程和第10条线程的第一次启动时间,也就是第62条样本和第92条样本,之间的间隔时间为65秒钟(789是一组,看7和9是一样的)
因为线程之间的间隔为5秒,同步定时器设置的触发时间为60秒。最后只有一条线程了,达不到3个线程的条件只能等待触发时间为60秒,所以是60+5=65秒
- 查看第10条线程的每次启动时间,之间的间隔时间为60秒钟
线程已经启动,不需要再等待5秒。同步定时器设置的触发时间为60秒,最后只有一条线程了,达不到3个线程的条件只能等待触发时间为60秒
四、设置循环次数,同步定时器触发时间集合的情况
1、 配置线程组数据
- 设置线程数为10个
- Ramp-up时间设置为50秒
- 循环次数设置为2次
2、设置同步定时器
- 同步定时器设置模拟用户组的数量为10个
- 超时时间以毫秒为单位设置为10000毫秒,也就是10秒钟
3、查看运行结果(第一条样本可以忽略,用于获取token的)
首先我们看同步定时器的设置,设置的是达到10个线程就进行一次释放或者10秒钟就进行一次释放。两条件触发了任一种都会进行释放
再看下Ramp-up Period(in seconds)的设置,线程与线程之间的时间间隔是5秒钟(详细的解释可以看→Ramp-up的用法)
- 查看第一次释放的线程,也就是第2条至第4条样本,启动时间是相同的15:07:17.138
设置的触发同步定时器时间为10秒钟释放一次,10条线程的时间是50秒钟,所以先触发10秒钟的条件进行释放,去掉第一条线程的5秒钟准备时间,3条线程启动刚好是10秒钟
- 查看第二次释放的线程,也就是第5条至第9条样本,启动时间是相同的15:07:27.260
设置的触发同步定时器时间为10秒钟释放一次,45两条线程启动时间为10秒,加上上次释放过的123线程循环1次,这次的释放一共是5条线程
- 查看倒数第二次释放,也就是第18条至第20条样本,启动时间是相同的15:07:57.631
设置的触发同步定时器时间为10秒钟释放一次,最后只有一条线程,凑不齐10条,启动时间为10秒,加上上次释放过的89线程循环1次,这次的释放一共是3条线程
- 查看最后一次释放,也就是第21条样本,启动时间是15:08:07.775
设置的触发同步定时器时间为10秒钟释放一次,最后只有一条线程循环,凑不齐10条,启动时间为10秒,没有之前释放过要循环的线程了,这次的释放一共是1条线程
- 为什么最后一条循环的线程还要等10秒钟呢?
因为同步定时器设置的是10秒钟释放一次,所以不论之前线程是否已经启动都得等待10秒钟才会释放