LoadRunner的工作原理
刚学LR不久,相对QTP而言,对LR的原理感觉有些难理解。QTP很直观,回放过程是看得见的,用户操作和界面都可呈现在眼前。但LR就不是,给我感觉是一直在执行代码。且结果也是LR分析出的图表和日志。
由此,我对LR的过程有产生了疑问:是否能真正模拟若干用户?
1、一个真正的用户在访问因特网时,网站会用http或其它方式向客户端发送文件。这些文件都保存在客户端的硬盘中。LoadRunner在模拟用户过程中是否可以达到这个目的?如何实现?
2、根据客户端浏览器设置,IE缓存中的文件可能在不断更新,即一直在执行下载/复制/删除操作,一个用户就是这样,万个用户也这样。LoadRunner是怎么实现这个功能的?是否真正模拟到这种压力?
3、在场景运行过程中,模拟用户有 初始化/缓冲/运行/停止 等状态,这些都是数字不断的改变,我们如何确定他的正确性/准确性?
实质上,上述应该是属于我对LoadRunner工作原理的不理解,或可称为怀疑吧。
仁者见仁,智者见智。请路过的朋友们指路sdlkfj2
哈哈。
作为专业测试人员,应该有专业的观点。对于loadrunner这样的负载测试软件,如果你是它的测试工程师,你应该怎样测试它呢?如果你设计好了对它的测试方案,那么,以上的你的这些疑问,不是都能解决了吗?
回复 #2 robust 的帖子
要测试LoadRunner,思路可能是有,实现可能是个挑战!sdlkfj5可以虚拟一个场景去访问网内一已知的服务器,然后针对LR的操作,看服务器是做哪些响应,响应是否正确,是否达到LR场景的目的。
但实现起来恐怕不这么容易了,我可以模拟一个少量Vuser的场景。但服务器端收到哪些请求,做出哪些响应,如何判断与定量?sdlkfj7
疑问的补充
硬件上也有些问题一直让我不解。假若有10000个用户有访问sohu网站首页,如果每个人一条线的话就有10000条网络路径在访问。如果使用LoadRunner在一台机器上模拟10000个用户同时访问,一台机的网络带宽最多就千兆啦,且网络利用率不可能100%。sdlkfj6就上面提到的第2点,访问上机器是一直在向服务器发送访问请求,服务器接受到请求后发送所需的资源然后发送,客户端接受资源显示资源。LoadRunner是如何模拟这种场景的呢(原理)?假若的10000个用户,发送一次请求,服务器响应并发送资源。若1M/客户端,1000个客户端就约10个G的资源了!10G的资源,服务器传送出来需要多长时间呢?sdlkfj5
仅在一台PC机上运行LoadRunner在模拟这10000个客户访问场景,是否给服务器发送了10000次重复的请求?服务器是否就传送了10000次同样的资源?如果没有,那这种模拟是否能达到我们的负载/压力的目的?sdlkfj4
学习一个软件的操作,只要有足够的资源,给我时间,我想要学会操纵它并不是一件难事。但仅仅操作是远远不够的,就像软件测试的朋友们必需要懂产品业务一样。sdlkfj7 原帖由 higkoo 于 2007-1-28 17:30 发表
要测试LoadRunner,思路可能是有,实现可能是个挑战!sdlkfj5
可以虚拟一个场景去访问网内一已知的服务器,然后针对LR的操作,看服务器是做哪些响应,响应是否正确,是否达到LR场景的目的。
但实现起 ...
实现起来也不难啊!可以使用sniffer工具来抓包。现在的sniffer工具做得越来越强大,有些除了协议分析以外,还有统计分析功能了。 原帖由 higkoo 于 2007-1-28 17:31 发表
硬件上也有些问题一直让我不解。假若有10000个用户有访问sohu网站首页,如果每个人一条线的话就有10000条网络路径在访问。如果使用LoadRunner在一台机器上模拟10000个用户同时访问,一台机的网络带宽最多就千兆 ...
看了lz的回帖,感觉网络知识需要加强。这些问题,大部分是对网络的认识上的问题。你可以寻找相关的资料学习。
回复robust
原帖由 robust 于 2007-1-28 18:54 发表看了lz的回帖,感觉网络知识需要加强。这些问题,大部分是对网络的认识上的问题。你可以寻找相关的资料学习。
看来还是得下点功夫才行了! 测试真的是需要面面具到sdlkfj7
入测试这行之前,学习编程代码;
入行之后,学习网络及配置;
业务流程,需要行业(医学)业务流程;
学习测试工具,又牵扯到很多相关知识,想找点捷径偷偷懒都不成……sdlkfj5
学习,学习,再学习……sdlkfj2 原帖由 higkoo 于 2007-1-28 16:21 发表
刚学LR不久,相对QTP而言,对LR的原理感觉有些难理解。
QTP很直观,回放过程是看得见的,用户操作和界面都可呈现在眼前。但LR就不是,给我感觉是一直在执行代码。且结果也是LR分析出的图表和日志。
...
对于1,2:LoadRuuner可以做到每个用户每次迭代都不用IE缓存,在调用web_url之前加上web_add_header函数即可。本质上还是要对HTTP协议的了解。
对于3:LR Controller的数据统计是异步的,LR显示的用户数和请求数是对前一段时间的汇总,不是实时的。要知道准确的数据,是要在服务端进行统计才科学!
其实利用抓包软件是可以了解到LR的运行机制的,LR只是工具,对业务模型的把握和协议的理解才是最重要的:)
关于LoadRunner原理
请问你有LoadRunner原理方面的资料吗?我不是计算机专业毕业,现在所用的知识都是后天的。
测试的知识面太广,有时真感觉心有余而力不足。
其实想了解LoadRunner的原理,不去盲目的相信,目的是为了让我去相信LR。
理解原理后,学起来可能不会这么困难。sdlkfj2 原帖由 higkoo 于 2007-1-29 12:25 发表
请问你有LoadRunner原理方面的资料吗?
我不是计算机专业毕业,现在所用的知识都是后天的。
测试的知识面太广,有时真感觉心有余而力不足。
其实想了解LoadRunner的原理,不去盲目的相信,目的是为了让我去 ...
LoadRunner原理要自己在工作中摸索和总结,没有现成的,就算有也可能对你没有帮助。
不是计算机专业一样可以把测试工作做好的,很多搞测试的都不是科班出身的。 也想过这样的一个问题就是不知道怎么实现的
也是刚做测试,觉得好多东西都要学,有些时候真的好迷茫
所以每天都上来看看各位的高见。
我是这样想的
假如有10个不同用户打开sohu网站,那么每个IE都会把网页资源下载到自己的机器上。根据浏览器设置,访问不同页面,IE缓存里的数据可能会不停的增加/修改/删除。
而用LoadRunner是否能做到这一点呢?
如果一个人有1M的网络访问量,1万个用户就10G了!
1万个用户100秒内访问sohu网站应该不算太大压力吧。相当于100秒服务器就下载了10G的内容给正在访问的1万个用户。
而LoadRunner就在一台机上执行脚本,模拟真的有效吗? 虚拟的用户不用和实际的一样真实的去调用资源的吧```` 原帖由 bzcy 于 2007-1-30 12:42 发表
虚拟的用户不用和实际的一样真实的去调用资源的吧````
如果不用和实际一样,如何保证测试结果的权威性? 我用LR做过C/S架构的系统,曾经用真实的用户登陆进去,发现虚拟的100个用户都存在,并且可以看到这些用户的操作和真实的用户没有什么很大的差别,无论是CPU、内存,还是网络占用率等都会有变化 原帖由 higkoo 于 2007-1-30 12:33 发表
假如有10个不同用户打开sohu网站,那么每个IE都会把网页资源下载到自己的机器上。
根据浏览器设置,访问不同页面,IE缓存里的数据可能会不停的增加/修改/删除。
而用LoadRunner是否能做到这一点呢?
如果 ...
老兄到底是想用LR给服务器加压测试,还是想测试自己的工作站和网络带宽?? 不能本末倒置哦。。 :)
放心去学吧
原帖由 charmer 于 2007-1-30 14:45 发表我用LR做过C/S架构的系统,曾经用真实的用户登陆进去,发现虚拟的100个用户都存在,并且可以看到这些用户的操作和真实的用户没有什么很大的差别,无论是CPU、内存,还是网络占用率等都会有变化
嗯,那这样我就放心了……sdlkfj3 原帖由 winmeeasy 于 2007-1-29 14:07 发表
LoadRunner原理要自己在工作中摸索和总结,没有现成的,就算有也可能对你没有帮助。
不是计算机专业一样可以把测试工作做好的,很多搞测试的都不是科班出身的。
对于lr的原理,我想应该和其它性能测试工具的原理是一样的。
一般来说,性能测试工具都有一个虚拟用户脚本产生器(vugen),压力产生器和用户代理、压力调度和监控系统、压力结果分析工具
对于虚拟用户产生器来讲,主要的功能就是通过代理接收从客户端发送的数据包,记录并转发给服务器,接收服务器端的数据包,记录并转发给客户端。除此之外,虚拟用户脚本生成器在截获数据之后,根据录制时使用的协议对数据包分析,用脚本函数记录下来。并提供了编译和调试的环境,用于对脚本的优化和修改
压力产生器用于根据压力调度系统的命令,产生实际的负载
压力调度和监控系统:压力调度工具可以根据用户的场景要求,设置不同的Vu数量等 监控系统主要是用于对数据库、服务器的性能计数器等的监控
压力结果分析工具 主要是将获取的性能计数器的信息,生成相应的分析图 如此好贴,谁敢灌水?
学习了