集合点实战
集合点概念
所谓集合点,可理解为一种控制虚拟用户行为的机制
该机制可以达到在一定时间范围内将一定数量的虚拟用户阻挡在一个操作行为点前的位置进行互相等待
在条件(达到虚拟用户数量或超时)到达后唤醒全部等待中的虚拟用户,从而达到使得一定数量的虚拟用户可以同时进入下一个操作行为点的目的
集合点并不能模拟真正意义上的并发,因为即使是通过集合点的虚拟用户,但由于网络等多种因素的影响并不能同一时刻到达服务器,仍有先后差异
秒杀例子:
现在我们双11在搞活动的时候,我们的玩法有所变化,现在比如先抢优惠券,然后再到0点秒杀,相当于你要进行两次操作,ok,你先去抢优惠券,抢优惠券的时候是在11月10号0点,那我真正秒杀的时候是在11月11号0点,这样子,我们所有用户可能在56分,57分涌入到我们的淘宝页面,不管是优惠券页面还是秒杀页面,到达0点的时候,大家才会同一时间同一时刻去点击这样的优惠券,优惠券对于我们后端来说是一种http的request,那么这个时候优惠券是从我们队列中获取到的,数量是有限的,我们先到先得,是这样的逻辑,我们的秒杀是有前提条件的,不管你前面你在我们淘宝上,天猫上进行了多少次访问,最终都是在0点并发去执行我们秒杀优惠券,秒杀商品的动作,所以呢,这就是将一定数量的虚拟用户阻挡在一个操作行为点前,让他们0点开始一起进行秒杀
集合点启用
在loadrunner中启用集合点需要在编写脚本时加入,集合点函数为lr_rendezvous(“集合点名称”)
只需把集合点函数放到脚本的某个事务或操作之前即可
只有完全手动模式才能使用集合点
第一个策略是当所有用户的百分之多少到达集合点的时候我们就会释放掉这个集合点
第二个策略是针对于所有正在运行的Vuser,然后在这里判断,当达到百分之多少到达集合点的时候我们就会释放掉这个集合点,因为有些Vuser因为某些原因处于stop状态,或者是报错异常的状态,这个是用的最多的场景
第三个策略是多少个Vuser到达集合点的时候我们就会释放掉这个集合点,这个用的是最少的场景
超时设置:超时用户的设定,在多少秒内,从第一个用户开始,如果在设定的时间内后面的用户还没有到达的话我们就把集合点释放掉
初始化:所谓的初始化我们是在内存中释放一个空间给用户提前准备好,如果用秒杀例子理解,我们建立好一个用户,这个用户打开电脑,浏览器,打开网页准备好,所有准备工作都准备好了
用户起跑:设定多少个用户起跑1,同时起跑,2,10个用户,每隔上5秒钟添加一个用户,直到50秒所有用户跑完
跑的方式:1,循环跑 2,跑指定的时间
停止: 一般直接stop掉