51Testing软件测试论坛

标题: LoadRunner里迭代和并发用户数的问题。 [打印本页]

作者: hollowness    时间: 2007-11-14 11:50
标题: LoadRunner里迭代和并发用户数的问题。
例如在LR里,我要测100个用户同时并发登陆所用时间,那我是不是在录制好脚本后,需要参数化“用户名”,“密码”以及在那个记事本里构造100个真实的用户名和密码? 然后运行Controller,设置用户数为100?那么这里的迭代次数该怎么设啊,设成1和设成10有什么区别啊?我老是搞不清测试并发用户,“迭代”和“并发用户数”(就是controller里设的虚拟用户数)的区别。
还有一个小白问题,就是假如我用LR测100个用户同时注册一个网站的帐号,参数化了100个用户名和密码,那么我跑一遍脚本,并跑通了,并在controller里也run了一遍,那么这100个新增帐号是不是就真在数据库里添加了啊?
谢谢解答!
作者: enjoylife    时间: 2007-11-14 12:31
帮你顶下问题,我也想知道答案
作者: hollowness    时间: 2007-11-19 09:29
晕怎么没人回答啊,help me!
作者: zlpxm    时间: 2007-12-5 10:27
昨天看了书,记得迭代数是指运行的次数,并发用户数是指一次登陆网站的人数。
那个小白的问题,就是数据库里会添加
作者: smallsky    时间: 2007-12-5 14:44
对于并发数更多的情况下呢,例如并发书是1000,那是不是应该在多个机器上运行才可以阿?
作者: fox-huling    时间: 2007-12-17 15:46
我以本人现有的知识就楼主的问题给予下面的回答:
Q1:
例如在LR里,我要测100个用户同时并发登陆所用时间,那我是不是在录制好脚本后,需要参数化“用户名”,“密码”以及在那个记事本里构造100个真实的用户名和密码? 然后运行Controller,设置用户数为100?
A:
恩,你说的是对的。但是我需要说明的是测并发数的时候,本身就是模拟的虚拟用户,所以我认为不一定非要参数化100个用户,用一个用户跑100遍也是可以的。当然你这样进行设置的话更符合实际情况。
Q2:那么这里的迭代次数该怎么设啊,设成1和设成10有什么区别啊?我老是搞不清测试并发用户,“迭代”和“并发用户数”(就是controller里设的虚拟用户数)的区别。
A:
迭代次数如果你设置为1,那么你的脚本就只跑100遍(续Q1),如果你设置为100,那么当你设置并发数为100,那么脚本就要跑100*100=10000 遍。懂了吧,当然我说的这种情况是在你没有设置Conrtoller中的durantion,如果你设置了这个场景的持续时间,那么你运行的场景时间就以这个时间结束为准,和迭代次数就没有关系了。
Q3:还有一个小白问题,就是假如我用LR测100个用户同时注册一个网站的帐号,参数化了100个用户名和密码,那么我跑一遍脚本,并跑通了,并在controller里也run了一遍,那么这100个新增帐号是不是就真在数据库里添加了啊?
A:是的,如果你的脚本没问题的话,那么你的数据库里肯定会有100条记录的。你可以自己查看数据库,或者访问你所录制的脚本网站,都能看到相应的记录。
Q4:对于并发数更多的情况下呢,例如并发书是1000,那是不是应该在多个机器上运行才可以阿?
A:不一定啊,如果你有条件的话,当然多台机器运行得出的结果更为准确,但是用LR如果是录制web应用程序的话,最大并发数可以到10000的。
回答完毕,希望各位同仁赐教!!!!
作者: dujun    时间: 2007-12-17 16:06
答的好啊 高手
作者: fox-huling    时间: 2007-12-17 16:28
希望能对大家了解LR有所帮助,谢谢7#的,呵呵!!!
作者: gdhxh82    时间: 2007-12-18 10:47
真正意义上的并发是指100用户同时登陆吧?如果用1个用户迭代100遍是并发登陆么?

楼主的意思我理解为设置集合点的并发操作,即是模拟100个用户都填好账户密码之后,同时按“登陆”键。

参数化用户名密码各100个,而且没有设置Conrtoller中的durantion,这也是并发操作吗?

请前辈指点一下~~
作者: yxllinxi    时间: 2007-12-18 10:50
Q4:对于并发数更多的情况下呢,例如并发书是1000,那是不是应该在多个机器上运行才可以阿?
A:不一定啊,如果你有条件的话,当然多台机器运行得出的结果更为准确,但是用LR如果是录制web应用程序的话,最大并发数可以到10000的。


这个我好像不行,我只录制了一个浏览的页面脚本,在场景里面跑的时候,并发数为300的时候,我测试的client端cpu就达到100%了.然后就出现了连接错误.我想最好是在多个client跑吧?
作者: 开着拖拉机上班    时间: 2007-12-18 10:55
标题: 回复 6# 的帖子
我感觉你回答的第一个问题值得商榷。
我认为用一个用户跑100遍是不能实现100个用户并发登录的,迭代不等于并发!!
迭代功能是为了实现长时间对服务器的压力测试而设置的!!
^_^个人拙见!
作者: 开着拖拉机上班    时间: 2007-12-18 10:59
最后一个问题希望哪位高人给个确切答案!谢谢!
作者: fox-huling    时间: 2007-12-18 14:28
回复11#:
我所说的用一个用户跑一百遍,并不是迭代100次,我只的是设置并发数为100,但是只有一个“用户名”和“密码”,懂我的意思吗?我说过,LR说白了只是一个模拟并发的工具,就算你设置100个“用户名”和“密码”,也并不一定就是“并发”,没有严格意义上的并发,所以我说了设置100个“用户名”和“密码”这只是让你觉得更符合实际意义的做法!!
请指教!!!!
作者: fox-huling    时间: 2007-12-18 14:32
对于最后一个问题,我可以告诉你们,如果你做的是一个小型系统的话,那么你的压力并发数能达到300,你这个系统已经做的很牛了。那么首先要问你的就是你的系统是个什么样的系统,如果你的系统是个小型的,你要它的并发数达到1000,那根本就是不可能的事,那么当他达到300(最大压力数)的时候他怎么可能不报错呢???如果你的是个大型系统,并且对你的系统自信满满,那么你大可以用多台机器来进行压力测试,如果还是压到300就报错,那么抱歉,你的系统是失败的!!!!
一点拙见!!!!
作者: fox-huling    时间: 2007-12-18 14:37
回复9#:
1个用户迭代100遍确实不是并发操作,你理解的并发操作设置集合点是正确的。但是怎么可能不设置Conrtoller中的durantion呢?默认的durantion是设置为run until completion,当然还有另外2种选择。duration是持续时间的意思,跟并发没有关系。
我想说的就是一定要设置了集合点才是并发!!!!
作者: zhangting119    时间: 2007-12-21 18:02
我也想问一个问题,如果参数化用户名和密码时,是不是还得先将所用的注册一下?当然,我指的是自己输入的参数,库里面调用数据还不会呢!
作者: 泡泡糖    时间: 2007-12-21 22:14
既然是测试并发登陆,可以只模拟一个用户的登陆脚本,然后在CONTROLLER里面设置100个,但是这样不够真实,


你脚本跑完,就说明那100条记录全进数据库了,真正运行的时候,还需要重新改写那100个需要注册的用户名
作者: wing_twf    时间: 2007-12-23 14:58
6楼的回答算是比较完整的,LR是模拟并发,所以用一个用户名或者密码是可以实现的,要追求真实可以设置100个用户名和密码,不过相对的,你就要复制100个脚本,要不就是所谓的跌代,而不是并发,6楼那说的"用户数设置成100"其实指的就是并发用户数,不过跑LR做压力的一般都是以时间做为结束标准的,run until completion或者设置跌代不太用到
关于楼主最后一个问题,你注册100个用户的脚本跑了一遍,确实跑通的情况下~这些数据的确是写如了你测试网站的数据库中了,你可以自己打开数据库查询一下~
作者: yxllinxi    时间: 2007-12-27 11:02
原帖由 fox-huling 于 2007-12-18 14:32 发表
对于最后一个问题,我可以告诉你们,如果你做的是一个小型系统的话,那么你的压力并发数能达到300,你这个系统已经做的很牛了。那么首先要问你的就是你的系统是个什么样的系统,如果你的系统是个小型的,你要它的并发 ...



我是想说:我的client端cpu达到100%了,然后出错,是否是因为client端处理不过来,而引起的错误呢?我觉得最好是观察下client端的情况(cpu,memory),个人觉得最好是不要超过80%.这样跑起来的效果应该会更真实一点.
当然并发数是和系统定位有关系的.
作者: fox-huling    时间: 2007-12-27 11:17
楼上说的是对的,确实是客户端响应不过来导致的出错,可以监控客户端机器的Windows Resourse,看看内存和cpu使用情况
作者: yxllinxi    时间: 2008-1-2 15:22
本人遇到一个自己觉得困惑的问题:
我录制了一个脚本,脚本内容分为登陆和上传文件两个操作,登陆操作放在init中;上传文件操作放在action中,并设置了集合点,循环次数为1;最后是停止录制脚本.
当我将脚本放到Conrtoller中运行的时候,虚拟用户数为5,durantion设置为5 minutes.我预想的结果是:当durantion设置的时间到了,系统中只上传了5个同名文件.
结果:登陆到系统查看,上传文件个数超过5个.
疑问:假如用户完成action中的脚本只要3 minutes,那durantion 中设置的5 minutes中,多出来的2 minutes,虚拟用户在做什么操作呢?是否重新上传一次文件操作?如果不是的话,查看系统中的文件怎么会超过5个?应该只有5个文件才对.
作者: liujg    时间: 2008-7-3 14:44
问题老生长谈了...
作者: qinxiaocang1202    时间: 2009-3-18 16:20
标题: 回复 21# 的帖子
duration相当于迭代功能,无论你有没有设置迭代,duration总是在有限的时间内做最多的迭代;所以你的数据要比想象中的多
作者: witcher2002    时间: 2009-4-22 14:45
原帖由 fox-huling 于 2007-12-17 15:46 发表
我以本人现有的知识就楼主的问题给予下面的回答:
Q1:
例如在LR里,我要测100个用户同时并发登陆所用时间,那我是不是在录制好脚本后,需要参数化“用户名”,“密码”以及在那个记事本里构造100个真实的用户名和密 ...



受益了!!
作者: shiyun.liu    时间: 2010-6-24 14:59
标题: 回复 6# 的帖子
看了您的回答,很好。
作者: shiyun.liu    时间: 2010-6-24 15:02
标题: 回复 6# 的帖子
在这里我想问您一个问题,如果并发100个用户并成功,那么用并发数*60*60*24得出的数值就是一天的访问量吗?这样算准确吗?希望回答,谢谢。
作者: 零零星    时间: 2010-9-3 17:14
标题: 回复 6# 的帖子
如果设置了并发用户是100个,参数化用户名和密码是50个的话,在执行真正的场景的时候,Q1: 这50个用户都会被用到吗?Q2:那剩下的50个用户是使用的什么用户名和密码呢?
作者: 鱼鳞    时间: 2011-3-15 11:44
受教了~
作者: levelksk    时间: 2011-11-14 14:50
顶,受教了
作者: 月上百合    时间: 2011-11-14 17:34
很热闹,吸收下营养
作者: QqiaoQ    时间: 2011-11-18 16:35
还有一个小白问题,就是假如我用LR测100个用户同时注册一个网站的帐号,参数化了100个用户名和密码,那么我跑一遍脚本,并跑通了,并在controller里也run了一遍,那么这100个新增帐号是不是就真在数据库里添加了啊?

回答:会,如果你设置了参数化和关联,在你登录时,程序会发送信息给服务器,这时LR会截包,重新模拟一个我发送给服务器,以达到欺骗服务器的任务,从而让程序完整运行,既然成功欺骗了服务器,你的数据,当然可以存到数据库里
作者: 491623644    时间: 2012-6-3 17:05
回复 18# wing_twf


    我想问一下,Loadrunner的脚本应该怎么复制?比如我想模拟100个用户用不同的用户名登录,我至录制其中一个,然后复制脚本修改脚本中的用户名密码就OK了,我想问一下,这个脚本应该怎么复制?
作者: sun77shine    时间: 2013-8-15 15:14
回复 6# fox-huling


    那设置迭代次数 和并发用户 除了压力不同 对参数化的调用是不是一样的?就是说设置100个并发用户,100个参数跑一边,和1个用户100次迭代是一样 的。。。求解答
作者: 大阅兵    时间: 2015-8-25 14:56
fox-huling 发表于 2007-12-17 15:46
我以本人现有的知识就楼主的问题给予下面的回答:
Q1:
例如在LR里,我要测100个用户同时并发登陆所用时间 ...

100个用户并发和一个用户跑100遍压根不是一个性质
作者: 大阅兵    时间: 2015-8-25 15:02
fox-huling 发表于 2007-12-17 15:46
我以本人现有的知识就楼主的问题给予下面的回答:
Q1:
例如在LR里,我要测100个用户同时并发登陆所用时间 ...

第一个问题回答:100个用户并发,和一个用户跑100遍压根是两码事,解放军叔叔大阅兵100个人并排一起走过天安门叫100人并发,你一个人在天安门来回跑100回算一个人并发




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