在 VuGen 中的脚本录制最终是为了实现并发,集合点就是并发的一种手段。他的运用场景,例如在一个系统中,500个用户中70%执行注册操作,30%执行登录操作,这个时候就可以用集合点去实现了。
一、使用集合点
步骤一
在 VuGen 中确定并发操作步骤,添加集合点。集合点函数 lr_rendezvous(char *rendezvous_name) ,可以再录制脚本时添加,也可以在录制完成后通过鼠标右键插入。
【特别说明】:集合点只能在 Action 中添加,添加后并不会对 VuGen脚本运行产生实质影响,真正的影响是在 Controller 中体现的。
步骤二
在 Controller 并发操作之前,设置集合点策略,集合点策略分为以下三种
第一种:当百分之X的 Vuse (占总数)到达集合点后释放所有用户
第二种:当百分之X的 Vuse (占运行用户总数)到达集合点后释放所有用户
第三种:指定 Vuse 个数,到达后运行所有用户
说明:集合点选择的策略不同,在场景中运行的效果可能会有很大的区别,从并发效果的角度来说第一种策略最明显,但是第二种更加符合用户的增长方式,第三种相对来说用的较少,选择时尽量模拟用户的真实行为。
二、集合点+思考时间操作演练
如果我们想实现5个用户的并发操作,我们需要在脚本中对username 和 password做参数化,并添加集合点。
【特别说明】:集合点插入的位置一定是事务之外,否则事务的时间统计会把集合点等待的时间也计算进去,这不符合实际情况。
要想脚本正确运行,我们需要确保被参数化的登录名和密码是可用的,下一步则是将调好的脚本放入 Controller 中执行,一般我们选择在 Vugen 中 "Tool" 菜单下通过 Creat Controller Secnario 进入 Controller 界面。在弹出的 Creat Controller Secnario 界面,设置用户数为并发用户数
进入 Controller 页面,选择 Secnario->Rendezvous...打开集合点设置框,我们看到当前被加载的集合点名称为 Login ,虚拟用户有5个
选择集合点策略 "Policy" ,将弹出策略选项对话框
这里就是我们之前提到过的三种策略设置的地方,根据实际情况选择即可
最后说一下思考时间的概念,在 Vugen 的 Runtime Settings中,思考时间是被忽略的,这符合单脚本调试的需要,但是在 Controller 中要模拟真实用户场景发出的并发行为,系统会自动将思考时间设置为 "As recorded" 按录制的实际时间。
【特别说明】:思考时间的设置是在 Controller 中完成的,为了实现更有效的仿真一般会选择用录制思考时间的百分比模式,这样的设置就更接近于用户实际的快慢操作了