51Testing软件测试论坛

标题: 关于集合点:策略、虚拟用户和物理用户 [打印本页]

作者: Koffer    时间: 2006-7-5 11:00
标题: 关于集合点:策略、虚拟用户和物理用户
有这样一个场景,网上购书,一个用户可以购买多本书,为了模拟真实的,随机的用户购书情景,这里用户是参数化的,书也是参数化的,在一个脚本中录制了两个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个用户全部起来并且到达这个点?

谢谢大家!
作者: xingcyx    时间: 2006-7-5 11:16
反复看了很多遍楼主的问题,还是没看明白,不知道楼主想问什么。
这里我只建议你,如果你要设置500个虚拟用户,最好还是增加真实用户的数量,不要使用同样的用户名,这可能会对测试结果产生影响。
作者: Koffer    时间: 2006-7-5 11:23
这个问题就像编程中的运行时和编译时的错误、设置问题。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2