|
有这样一个场景,网上购书,一个用户可以购买多本书,为了模拟真实的,随机的用户购书情景,这里用户是参数化的,书也是参数化的,在一个脚本中录制了两个Action
1、购书
2、清空用户的购书数据--为什么要清空?因为一个用户选择了很多书以后,在Load这个页面的时候会有很大的数据量产生,会导致性能测试的数据不够准确。在这里设置了一个集合点,等到所有的用户到达以后就执行这个操作。
我们写了一个vbs脚本去操作数据库把相关用户的购买记录删除,暂且叫做RefreshData,执行这个脚本以后指定用户的购买记录就没有了。
在Controller中设置了500个虚拟用户,参数化的物理用户有20个。
这里遇到了几个问题
1、这个集合点设置好以后,就意味着所有的用户到达这个点就执行清空操作。这个用户是什么概念?物理用户还是虚拟用户?答案是这个是虚拟用户的概念。在这个之前,已经有很多个虚拟用户调用了同一个物理用户进行购书。已经导致了性能测试的不准确性,如何设置策略让他清空物理用户的数据。
就是想让,所有的20个物理用户购买了5本书以后,就把自己的数据删除,重新再购买。这个似乎与LoadRunner设计虚拟用户的初衷有所违背?!?!?
2、设置的集合策略是100%的用户到达才执行清空,30秒就超时了---这个是默认设置。假如我设置了500个虚拟用户,物理用户只有20个,1分钟启动5个虚拟用户。当10分钟之后,此时运行的虚拟用户有50个,具体有多少个物理用户被调用,未知!那么这个时候的集合策略如何起作用呢?现在第一、二、三个虚拟用户已经到达了集合点,Controller会认为是50个用户全部到达了这个点才执行RefreshData操作呢?还是要等到500个用户全部起来并且到达这个点?
谢谢大家! |
|