急急急!!!LoadRunner模拟用户数的问题。
是这样的,我一直以来总是搞不清楚的一个问题:我用LR模拟200个用户,比如模拟登录操作,通过的事物已经达到1000多了,也就是登录成功的用户有1000多个,那我怎么理解呢?
1000个用户:是目前在线用户数,也就是说现在已经有1000个用户在线;
200个模拟用户:这个啥意思?我就模拟了200个用户,但是有1000个在线用户,可是我只是模拟200个用户,到底在线用户数是1000还是200?
我是菜鸟一个,还希望得到高手的回答,非常感谢! 补充以上问题:再有,我模拟200和300用户,那又有什么区别呢? 这个和你运行时schedule的设置有关系。如果你的duration选择的是:跑完就结束(until complete)那么你那个200个Vuser 就只有200个事物。
出现你所说的情况是因为,你的duration选择了持续多少时间。比如说持续半个小时,那个在这半个小时之内,你的200个Vuser的每一个都会登录,登录完成后会继续登录,知道时间结束,所以会出现1000多个事物。
其实是只有200个用户登录,但是你可以看做1000多个登录,她造成的负载是1000多个的。
我是这么理解的,再听听高手意见 schedule的设置中duration选择了持续20分钟,我也认为她造成的负载是1000多个,但是这200怎么解释呢? 200 就是Vuser的数量啊 如果你用300个,那么在持续的20分钟的时间里产生的事物就肯定多于1000,造成的负载就更大了 楼主您好!
看了您的需求,有两个需求疑问分支:
分支1: 您看登陆成功事物数是在 Loadrunner 中看到的
分支2: 您看的在线数是在被测系统后台某一时间段在线用户数为100 +
主要有这两种可能,下面我逐个解释:
分支1: 如过你看到的Loadrunner 的成功事物数种 登陆 成功为1000 + 那么您需要理解下LR 脚本发送机制
脚本运行时顺序为 init -- action -- end 三个模块顺序运行。
如果 你持续20分钟运行,他的运行方式则为 init -- action (X 20分钟) -- end. 也就是说 在20分钟内 init 和 end 只运行 1 次,而 action 则循环执行。
再如果 你用1个用户跑,当他执行完第一个登陆操作后,又会继续执行第二个登陆操作。(前提条件是你的登陆事物放在 action 里面。) 如果登陆事物放到 init 里面你会发现 你有多少个用户跑,就登陆了多少个用户。绝对不会多出来。
再如果 你不希望登陆事物放到 init 里面,而是希望他们每个用户执行完登陆就退出。那么你就要在场景设置里面选择 执行完毕就退出Vuser 。这样你用10个用户就是10次登陆。
==============================
分支2:假如你是在被测系统后台中看到某一时间点同时在线人数1000+人以上,那么很有可能你的脚本中没有 退出(等出) 事物。 解决方法则是 脚本action中加入 退出 事物 ,主动断开登陆状态。这样在脚本10用户运行时,基本保持10个左右在登陆状态。 Fin:你好,是这样的,用LR跑压力测试,产生压力部分肯定是放到Action中的,这个大家都清楚。开始和结束都是只是执行一次,只有Action才能循环执行。
我的本意也是这样,需要测试登录的压力,我就把登录放到Action中了,我不需要退出系统,因为我就想知道我们的系统到底能承载多少用户;
我现在的问题是不是让后台数据显示1000和200的问题,而是不知道这个1000算不算是在线用户?如果算,我那个200用户应该算是加载用户,是吧?现在我基本明白怎么回事了,谢谢Fin。 Fin:讲的很详细呀,辛苦了,多谢 我在action的login事物,有200个vu,那么我的duration要怎么设置呢?
假如我设置的很长,长到足够200个vu登录完后,再继续反复的登录,那么是不是就会出现楼主所说的1000多个通过的事物。要阻止出现这种情况是不是就要设置iteration或者在action里面设置logout?
还有,楼主说,“通过的事物达到1000多,也就是登录成功的用户有1000多个”这句话对么?
菜鸟,一只!aha! 回复 6# Fin
我在action的login事物,有200个vu,那么我的duration要怎么设置呢?
假如我设置的很长,长到足够200个vu登录完后,再继续反复的登录,那么是不是就会出现楼主所说的1000多个通过的事物。要阻止出现这种情况是不是就要设置iteration或者在action里面设置logout?
还有,楼主说,“通过的事物达到1000多,也就是登录成功的用户有1000多个”这句话对么?
菜鸟,一只!aha! 看到3L觉得太长 没有看下去
其实很简单,你把通过事务看作交易数量,vuser数量看作执行脚本线程数就可以了
vuser翻译成“虚拟用户”再被等同于一个真实用户,这完全是误导人!!! 不是很理解啊 回复 1# doubledegree
我前几天也有类似疑问,也想了很久,按照我的理解是这样的,如果有错误请大家多指教。
1.关于“我用LR模拟200个用户,比如模拟登录操作,通过的事物已经达到1000多了,也就是登录成功的用户有1000多个,那我怎么理解呢?”
<1>vuser循环执行,事务数导致叠加。这点我觉得和三楼解释差不多,首先事务数在你运行脚本的持续时间内是叠加的,也就是一个vuser在运行一遍脚本后再运行一遍直到持续时间结束。
<2>一个操作可能导致多个事务。这点是我自己的理解,有可能不对,如果不对请大家指教。每个事务是操作过程中记录的一个通信过程,比如flex_web_request(...),但是一个操作有可能触发一个事务,也可能触发多个事务,所以一个事务并不代表一个操作。要精确定位到一个登录操作的相关信息应该对脚本进行分析,手动建一个事务(插入开始事务和结束事务,把该操作的事务包含在内),之后在跑脚本的时候各个指标里会有专门的关于手动建立的事务的信息(比如通过的事务,响应时间等)。
2关于“1000个用户:是目前在线用户数,也就是说现在已经有1000个用户在线;”
<1>上面提到的,vuser操作是循环执行的,就相当于5个人在操场上跑步,跑完一圈又跑一圈,5个人跑的圈数是叠加的,但是操场上始终只有5个人
<2>上面提到的,一个操作可能导致多个事务,因此1000个事务不等于1000个登录,
页:
[1]