集合点可以同步虚拟用户以便恰好在同一时刻执行任务。集合点可以通过手工或菜单两种方式添加。
首先在脚本中添加集合点,然后在场景中运行。在Virtual User Generator 中回放脚本无法体现集合点的作用,集合点是在多用户并发运行的时候才能起做作用。
1.在脚本中添加集合点,菜单栏-插入-集合点-填写集合点名称。集合点应该放在事务外,如果事务内存在集合点,那么虚拟用户在集合点等待的过程也会被算入事务时间,导致早进入集合点的用户的响应时间有误,这样才能得到准确的事务时间。
2.添加集合点后的效果:
3.集合点的设置内容存放在场景的设置中,当脚本中有集合点函数时,场景中的集合点设置功能就可以访问。在场景中运行集合点,菜单栏 -场景-集合,打开集合点设置界面,如果脚本中没有集合点,那么集合点功能(即第5处)将会是灰色显示。
4.集合点设置,我们可以看到集合信息列表框里有20个集合点(1-20),这里的数量和我们设置的虚拟用户数一致。我们可以点击选中列表中的某个集合点,而后单击“禁用集合”,设置不参与集合点,也可以选择某个虚拟用户后单击“禁用VUser”,禁止某个集合点一个虚拟用户参与集合。点击“策略”,设置集合点的策略。
5.集合点的三个策略。
- 当所有虚拟用户中的X%到达集合点时释放。即:仅当指定百分比的虚拟用户到达集合点时,才释放虚拟用户。
注意:此选项将会干扰场景的计划。如果选择此选项,场景将不按计划运行。
- 当所有正在运行的虚拟用户中的X%到达集合点时释放,仅当场景中指定百分比的正在运行的虚拟用户到达集合点时,才释放虚拟用户。( 假如,设置为1分钟启动一个用户,当然会存在因为用户还没启动,所以无法参与集合点。)
- 当X虚拟用户到达集合点时释放,仅当指定数量的虚拟用户到达集合点时,才释放虚拟用户。
这3个策略的区别在于:假设脚本由100个用户来运行,但100个用户并不是一开始就共同运行的。假设每隔1分钟添加10个用户,也就是说10分钟后系统才有100个在线用户。这里100就是指系统访问的所有用户数,而不同时间的在线用户数是不同的。设置的集合点策略百分比均为100%。可以在多个脚本上设置相同的集合点名称来实现多个脚本同时并发的效果。在场景运行时,当Vuser脚本运行到集合点函数时,该虚拟用户会进入集合点状态直到集合点策略满足后才释放。
策略1是指当全部用户都运行到了集合点函数才释放集合,让这100个用户并发运行后面的脚本。
策略2是指当前时间如果只有10个用户在线,那么只需要这10个用户都运行到了集合点函数就释放集合,让这10个用户并发运行后面的脚本。
策略3就比较好理解了,当到达集合点的用户数达到自己设置的数量后就释放等待,并发运行后面的脚本。
集合点超时:在脚本运行时,每个虚拟用户到达集合点时都会去检查一下集合点的策略设置,如果不满足,那么就在集合状态等待,直到集合点策略满足后,才运行下一步操作。但是可能存在前一个虚拟用户和后一个虚拟用户达到集合点的时间间隔非常长的情况,所以需要指定一个超时的时间,如果超过这个时间就不等待迟到的虚拟用户了。超时时间是指虚拟用户之间的时间差,当出现两个虚拟用户到达集合点的时间差超过设定的超时时间时,所有在集合点处于等待状态中的用户将全部释放。