一、什么是集合,loadrunner中如何设置集合点
集合点的意思时等到特定的用户数后再一起执行某个操作,比如一起保存,一起提交(我们通常意义上的并发数并不是指一起提交或者一起保存),一般情况下使用不到集合点,不过,订票系统或者促销类需要用到,比如说某个促销品的促销时间在8点到8点30,这样的话,就可能出现在8点时很多人一起提交的场景
集合点函数可以帮助我们生成有效可控的并发操作。虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步。这个时候需要手工的方式让用户在同一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能。集合点只需要在脚本中插入lr_rendezvous()函数即可。
二、脚本中集合点函数添加
打开Insert菜单下的Rendezvous选项,在弹出的对话框中输入集合点名称run,确定后即可得到对应的脚本:lr_rendezvous("run");引号内的就是集合点名称,当脚本在多用户运行的情况下,每次运行到这个函数都会查看一下集合点的策略来决定是等待还是继续运行。
三、集合点和事务
集合点应该放在事务外,如果事务内存在集合点,那么虚拟用户在集合点等待的过程也会被算入事务时间,导致早进入集合点的用户的响应时间有误。
例如:常见的田径比赛就是这样,大家先集合在同一起跑线上,鸣枪后开始计时,达到终点再计时,这样就能得到准确的事务时间;而不是将大家准备的时间也算上,如果算上准备时间,那得到的结果并不是准确的结果了。
四、场景中集合点设置
集合点的设置内容存放在场景的设置中,当脚本中有集合点函数时,场景中的集合点设置功能就可以访问,如图所示:
打开场景菜单下的集合点后,可以为集合点进行设置,包括哪些用户使用该集合点、集合点是否有效等,如图所示:
如果脚本中没有集合点,那么场景中的Scenario-Rendezvous集合点功能将会是灰色显示。集合点策略用来设置虚拟用户集合的方式,打开Policy对话框,如图所示:
五、集合点设置策略详解
loadrunner集合点设置提供三中策略
1.当百分之多少的用户到达集合点时脚本继续。
2.当百分之多少的运行用户到达集合点时脚本继续
3.多少个用户到达集合点时脚本继续。
区别在于:假设脚本由100个用户来运行,但100个用户并不是一开始就共同运行的。假设每隔1分钟添加10个用户,也就是说10分钟后系统才有100个在线用户。这里100就是指系统访问的所有用户数,而不同时间的在线用户数是不同的。设置的集合点策略百分比均为100%。
在场景运行时,当Vuser脚本运行到集合点函数时,该虚拟用户会进入集合点状态直到集合点策略满足后才释放。
策略1是指当全部用户都运行到了集合点函数才释放集合,让这100个用户并发运行后面的脚本。
策略2是指当前时间如果只有10个用户在线,那么只需要这10个用户都运行到了集合点函数就释放集合,让这10个用户并发运行后面的脚本。
策略3就比较好理解了,当到达集合点的用户数达到自己设置的数量后就释放等待,并发运行后面的脚本。可以在多个脚本上设置相同的集合点名称来实现多个脚本同时并发的效果。
Timeout between Vusers (虚拟用户之间的超时)框中输入一个超时值。
假如设置了集合10用户并发,结果9个用户已经集合到位,还剩1个虚拟用户,左等右等就是等不来。那总不能一直等下去吧。设定了个时间,假如30秒还不来,那就不管它了。
超时的时长默认是30秒,我们可以根据具体的被测应用进行调整。