事务概念的混淆容易造成实践中对事务分析的差错。读书更是如此,不能仅仅在于一瞥而过的浏览,而是应该认真深入的去理解和读懂作者的意图。特别是书中作者的名词概念解释,更是应该逐字推敲。
analysis中集合图和运行vuser图的概念
集合图:集合图表明从集合点释放 Vuser 的时间,以及在每个点释放的 Vuser 的数量。
运行vuser图:正在运行的 Vuser 图显示在测试期间的每一秒内,执行 Vuser 脚本的 Vuser 的数量及它们的状态。
(loadrunner的指南分析中都有,但是本人还是罗嗦几句,且看准了,两个图的概念,不要犯了本人如下犯的错误)
了解两个概念后应该来看下实例了:
针对loadrunner自带的flight案例进行测试,目的是使用60户并发订购机票,然后查看用户运行情况
1.录制脚本,完善脚本——录制完毕用户订购机票的流程过后,在登录之后,订购机票之前的操作插入一个集合点。(这个对于大家都很简单了)
2.制定场景,执行测试——在编辑计划中设置每15秒运行10个用户,当达到30个用户时一起运行1分钟,然后以每15秒释放10个用户的频率释放用户。在集合策略中使用当所有正在运行的 Vuser 中的 100% 到达集合点时释放。运行脚本,进行测试。
3.分析结果(重中之重哦)
分析结果如图:
问题:那么这个图里没有显示出50个vuser到54个vuser的的时候用了01:12-02:08,间隔如此之长,(中间有6个vuser运行失败了),那么也未看到我设置的运行一分钟的情况,能解释下吗?为什么在01:12-02:08间隔如此长才加载最后剩下的用户?这段图说明了什么?最后总共释放了15个,并没有释放完?那么又意味着什么?
还有就是为什么最后吞吐量的值在2:48秒过后还突然增大,但是那个时候的事务相应时间都变小了。我最初的理解是用户每15秒加载10个用户,那么以8秒开始加载8秒的时候应该是10个用户,24秒的时候是20个用户。。。。依次类推。那么图上的01:12-02:08曲线肯定就是不对的,而应该是01:12-01:27为增加了4个vuser(因为有6个失败了)错误的理解为集合图曲线就是vuser逐步按着制订计划加载运行的曲线,而事实上此曲线是(看集合图概念),所以以运行vuser图的眼光来看这张图是显然不对的。如果要看vuser的运行状态和加载过程只能通过vuser图来寻求答案。
那么这个图实际的分析情况是如何的了?且看下面分解
1. 50个vuser到54个vuser的的时候用了01:12-02:08?
答:这个图显示的是集合点随着时间变化,有多少个用户在集合点释放的图形。
在01:12-02:08时间内,显示了从已经有50个用户在集合点释放,然后聚集再等到到54个用户释放的过程。为什么这么慢? 从图上可以看出,在这段时间中,系统的resoponse time由于某种原因逐渐增大。所以,等了很久才达到54个用户然后释放。
2.也未看到我设置的运行一分钟的情况?
答:这个应该在Runing Vusers图表中进行查看。
3.为什么在01:12-02:08间隔如此长才加载最后剩下的用户?
答:用户加载在你规定的时间内早就加载完成了,可以看Running Vusers图形。
这段时间显示的是:01:12在LR聚集了所有运行状态的50个用户后释放,接着 LR花费了很长的时间到02:08时候才聚集了所有运行状态的54个用户,又释放了一次。 所以,这段时间反映的不是加载用户的过程,而是在前一次释放后和后一次释放之间的等待用户的过程。
4.最后总共释放了15个,并没有释放完?那么又意味着什么?
答:随着secnario的运行,当时间达到你设置的加载完成后运行1分钟的要求的时候。有些用户已经逐渐退出了运行状态。所有到了最后一批释放的用户数肯定是小于满载时所有的用户数54个用户的。至于为什么是15,不是别的数字? 这个只能是说和被测程序,LR的其他设置有关系。但一点是肯定的,最后一批释放的数字肯定小于满载时的运行用户数。
5.用户为什么没有加载到60个用户,而是只到54个?
15秒增加10个用户,30秒增加20个...增加到50个用户需要的时间是:(5-1)*15=60秒(际上LR在8的时候就已经加载了10个用户)
即1分钟,图中显示只用了1分4秒就增加到了50个用户.所以在1分15秒的点上.系统才开始增加另外的10个用户,至于为什么没有增加10个而只增加了4个.并且花费时间如此之长就要看看你的错误信息了.
这样应该真相大白了,根据概念,集合图只显示释放vuser的数量,而并不是看加载了多少vuser的数量。那么第一次释放50个用户,由于没释放完重新释放,第二次释放54个用户,在这个时候是否会判定未达到60个用户所以继续聚集,然后释放?如果说一次集合到60用户,并且释放了60个用户,那么就不会出现几次聚合和释放的过程而是在一定时间内聚合释放完毕。
如果大哥你硬是要看加载vuser的情况就只能通过运行vuser图来查看了