摘自:http://www.cnblogs.com/fickleness/p/3317903.html与http://wenku.baidu.com/link?url=v7jQlmjyHkYKJISe1LejI-J0A_xy8tD3-PmWVkRHZUQf2wNi36GIYPELBeo61GC90kIR4hcLvmj6Dgdj7yke5jvIAAQy77T4xuwcatDs-zq


    集合点的意思是等到特定的用户数后再一起执行某个操作,一般情况下使用不到集合点,不过,订票系统或促销类需要用到,比如某个促销品的促销时间在8点到8点30,这样的话,就可能出现在8点一起提交的场景。

    集合点函数可以帮助我们生成有效可控的并发操作。虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步。这个时候需要手工的方式让用户在同一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能。集合点只需要在脚本中插入lr_rendezvous("集合点名")函数即可。

    在VuGen录制的脚本中,插入集合点,并保存。然后在controller界面,Scenario>Rendezvous变成可设置,点击进入Rendezvous Information界面,点击Policy。

wKiom1Ozu-agBA3TAAFfT1Uwvtc463.jpg

    集合点提供了以下3种策略:

wKioL1Ozu9mSm3WsAAEJ4VQD1oI934.jpg

    1、当百分之多少的用户到达集合点时脚本继续

    2、当百分之多少的运行用户到达集合点时脚本继续

    3、多少个用户到达集合点时脚本继续

    在场景运行时,当Vuser脚本运行到集合点函数时,该虚拟用户会进入集合点状态直到集合点策略满足后才释放。

    下面还有一项:Timeout between Vuser,即集合点超时。在脚本运行时,每个虚拟用户到达集合点时都会去检查一下集合点的策略设置,如果不满足,那么就在集合状态等待,直到集合点策略满足后,才运行下一步操作。但是可能存在前一个虚拟用户和后一个虚拟用户到达集合点的时间间隔非常长的情况,所以需要指定一个超时的时间,如果超过这个时间就不等待迟到的虚拟用户了。

    超时时间是指虚拟用户之间的时间差,当出现两个虚拟用户到达集合点的时间差超过设定的超时时间时,所有在集合点处于等待状态中的用户将全部释放。

集合点和事物

    集合点设置在事务外。录制好脚本后,在脚本Action部分右键选择“Insert>start Transaction”弹出对话框,输入事务名字,点OK保存。“start Transaction”插入完成后,还需要插入一个“End  Transaction”,用以标识事务结束。

    在开始事务前插入集合点,可以右键选择“Insert>Rendezvous”,弹出对话框,输入集合点名字,OK即可。