google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

[求助] 使用LoadRunner测试性能的一些初级疑问,请有经验人士伸出援手,不甚感激.

使用LoadRunner测试性能的一些初级疑问,请有经验人士伸出援手,不甚感激.


最近小弟被派到华为去协助做性能测试(我是华为外包公司的),由于小弟只是对LoadRunner工具使用以及录制脚本\创建场景等等有点了解而已,但是针对不同的业务,却有挺多地方有疑问的.具体我描述几个出来,请前辈们能解答的帮忙解答.谢谢!
测试环境:一台数据库服务器,一台tomcat服务器,另外还有一台是类似底层服务器吧,再一台是测试用的LoadRunner机器.系统是web页面型的.

测试点1:对登陆系统进行性能测试,要求20个并发用户的情况下,每个用户不能超过5s.期望值3s.

这里有些疑问:
①.我需不需要设置集合点?
②.在场景方案计划中,vuser是一次性加载还是梯度加载?
③.持续时间问题,我该如何选择?需要持续运行一段时间吗?
④.那个Runtime-setting里面的迭代,我需要设置吗?有什么用?
⑤.怎么样才算是登陆完成了(其他页面也一样,怎么判断一个页面已经完成)
我做的时候,只是纯粹的先把登陆操作录制到action中,然后对用户名和密码进行参数化,插入事务和集合点,完成后创建场景,使用手工创建场景类型,设置vuser为20个,加压设置为一次性加压(ramp up),运行完成就停止(持续时间),梯度减压(ramp down).设置完成后就这样运行场景了.运行后看到平均响应时间为40s左右,然后再以15个,10个,5个vuser进行测试,分别得出结果.请问这样有什么问题,存在哪些问题,真的是很烦恼,不想丢人啊(华为的一个人看着我做性能).这个地方,再问个问题,如果我需要监控数据库和Web应用服务器,是增加window/unix计数器吗?
其实,对于这个功能点,我觉得挺简单的,但是,真的是由于第一次真正的做项目,所以有很多疑问.希望大家不要取笑我.也很感谢大家的帮助.

测试点2:如果一个功能点是这样的:有大概20个控件,它通过自身改变颜色来变化当前的状态(比如,初始化时为黄色,故障时为红色,启动成功后为绿色.这里就是由某种状态变为某种状态),然后需要你测试这个状态刷新的时间(注意,这个状态的刷新可以设置自动刷新以及刷新频率或手动刷新).这样的功能点,我能够通过LoadRunner测试吗?我感觉,LoadRunner应该是靠点击链接来进行操作的吧,没有点击链接也可以获取到这些操作吗?

测试点3:一个页面上有某个链接按钮(点击这个按钮能进入对应的页面),现在需要测试,这个页面显示的响应时间,虽然说这个应该不难,但是,这里有个疑问,需不需要有基础数据呢?比如说,这个页面有100条基础数据,不然的话,1条也是这样测,1W条也是这样测,肯定有区别的嘛.所以,请问,这里需不需要有基础数据?

对不起,我知道这些问题都是比较幼稚的问题,如果您看完后,能进行回答的,真的希望您能帮我一把,诚心感谢您的帮助.谢谢!
另加一个问题:在监控场景中,我大致需要哪些性能计数器?例如vuser,average transaction responed time...

TOP

测试点1:

1. 按并发的要求是要设置集合点的。
2. Ramp up的方式并不重要,只要保证在集合点时是20用户并发的就好。因为在性能测试中,在前面的一段时间里的数据是动荡的。这里的数据不能做为可依赖的数据。
3. 要持续一段时间,如果是关键的功能点,可以执行两小时左右,再取平均时间。
4. 设置了duration之后,迭代就不需要设置了。
5.可以加检查点判断。不过,这个不是最重要的,如果没有出现warning,error,数据是正常得到的就可以。

分别得出的结果,是什么样的数据?可以从结果中分析出问题来。

监控数据库和应用服务器,最好监控应用,而不是监控OS。当然OS也是要监控的。


测试点2: 这个功能LR是做不到的。

测试点3: 你应该先做一下benchmark的测试,就是逐渐的加压,然后得到一个时间的拐点。如果一个用户就超过了expected的response time,那显示是不行的。如果逐渐加压再会超过,那肯定能得到一个Vusers数据。
个人博客:http://www.7dtest.com

TOP

测试点1:
1.做多用户并发测试是要加集合点的
2.vuser默认是一次全部加载的,不过你也可以设置梯形加载.你就20个用户并发,一次全部加载也可以
3.一般对系统主要功能的压力测试都要持续一段时间的,设置Duration的时间值就可以了
4.你设置Duration后,迭代就没必要设置了.当20个VUSER用户运行起来后,就不会迭代运行了
5.判断登录操作是否成功,这个需要加检查点在脚本里,一般常用的有文本和图片检查点
应用服务器和操作系统都需要监控,增加WINDOWS RESOURCE就可以了.另外LR不支持对TOMCAT的监控

测试点2:这个功能点LR是做不到的

测试点3:需要基础数据,因为你的这个操作就是从数据库取数据.数据量的大小肯定会对响应时间有影响的.至于要多少数据那得看你的项目要求了.

一般需要需要添加average transaction responed time,服务器CPU,MEMORY等性能记数器

TOP

很好的学习实例, 实践才是提高水平的最好办法

TOP

非常感谢 超级版主 【Zee】 和 高级站友 【aks5201314】的详细解答,真的很感谢你们,对于新手提出的问题你们没有嗤之以鼻,而是热心帮助,我对两位高手表示敬佩及真诚的感谢!

TOP

我还想补充一些问题:
1.就我上面的测试点1来说,我是不是就先测试20个用户并发时能否达到这个期望目标?如果不能,下一步,我该怎么做呢?是不是再降低Vuser数,看看能不能达到期望目标?假定连1个用户时都不能达到期望目标,那怎么办?
2.哪些图是认为一定要看看结果的?比如:平均响应时间,TPS等等,如果我要看引起这个响应时间过慢的原因是网络问题还是服务器的问题,该看哪个图表?

TOP

1,如果不能达到目标就分析问题的瓶颈出在什么地方,然后才决定是不是应该降低vuser数量。要是一个都达不到,那显然,这个系统是有很大问题的。
2,分析问题在什么地方并没有看哪个具体的表,就能得到结果的说法。要综合分析。网络问题和服务器问题,看first buffer就可以看出来。
个人博客:http://www.7dtest.com

TOP

1.如果不能达到目标,例如响应时间大于期望值,楼主可以结合VUSER和平均响应时间的曲线图判断一下,在多少VUSER运行的时候,性能指标就不满足了.然后再减少一定量的VUSER运行看时候能满足.假定连1个用户时都不能达到期望目标,那很有可能系统存在某些问题.不过测试之前,你可以访问一下系统,体验一下一个用户访问时的系统响应是否正常,也好心里有个数.
2.响应时间过慢的原因是网络问题还是服务器的问题就看FIRST BUFFER这个图,图中会明确标示网络和服务器端处理所消耗的时间.

TOP

两位高手都是好人,谢谢

TOP

实践中才能想到的问题。。。


我真是个麻烦人~~~各位高手见笑了,由于问题实在不是一次性能想到,所以,又来补充问题了,自己先鄙视一下自己。
Q1:当我需要测试其他功能点时(即不是登录操作),是否将登陆操作录制到vuser_init中?这个。。。答案是肯定的吧?
Q2:如果现在要测试的性能点是登录后,还需要点击到另一个页面(甚至更多层)的某个功能点,那么,这些过渡的页面,我需要录制到哪里?是action中还是vuser_init中?
Q3:假如,有一个性能测试点是先要登录系统,进入登录后的页面后,我还需要进入另一个页面才能找到我需要测试的点。这里就有一个问题了,这些过渡的页面(比如,登录后的页面)我需要等它整个页面完全加载完后再进入我需要的那个页面吗?
Q4:一个挺特殊的需求,是这样的,一个页面中的内容是以列表显示每条数据的,它会自动刷新(其实这个系统就是一个实时监控系统,当然,也可以设置不自动刷新),还可以自己设置刷新频率(比如默认为5秒刷新一次),现在就需要我测试这刷新的时间是否达到性能指标(比如,你设置5秒,它就应该在几秒钟内能成功刷新)。我很纳闷,问了好几个人,都说应该测试不了吧。这个需求也太什么了吧,与1楼的【测试点2】需求大致一样,只不过,1楼的功能点是图标的状态刷新时间(即在指定的时间内是否刷新了状态,测这个刷新的时间),而这里是列表的刷新时间。请问超级版主 【Zee】 和 高级站友 【aks5201314】以及其他高手,这个能否测试出来?该如何操作?
Q5:如果一个页面(未必是当前需要做性能点的页面,有可能是要先经过它才能跳转的页面),它因为自动刷新,有可能它刚进入这个页面时录制了一遍这个页面的所有内容,然后自动刷新后,我还没有跳转到另一个页面,它又录制了一遍这个页面的所有内容,这个对于性能测试有没有影响?
Q6:测试点是这样的:修改密码,要求20个用户同时操作,每个用户的响应时间<5s,期望值3s。这个录制应该不难,它有修改密码的页面,但问题是,我要参数化时好像有点问题吧?貌似挺绕人的,下次登录的密码必须为上次修改后的密码,是不是挺麻烦的啊?有什么知道方案吗?
哎呀,我真是觉得这个系统的性能测试好复杂哦,害我对性能测试不咋熟悉就要经受这样的磨难,彻底让我失去了信心了。我好希望,两位高手以及其他高手能够救我于水火之中。再次感谢两位高手的悉心解答。谢谢

TOP

q1:是。
q2:是vuser_init中吧
q3:当然需要等。
q4:不清楚
q5:有影响。
q6:参数化没觉得有问题啊,下次登陆时把密码改成修改后的参数就可以阿

TOP

汗...越测越混乱~~~~我真的好想说,我不干了啊

TOP

1. 放不放到init中,要看用例和场景是如何设计的?另外还要注意退出的脚本放在什么地方。

2. 首先要搞清楚的是,脚本放在什么地方,是看要如何来测试。 比如,如果你是想度量某功能点的响应时间,加个事务就可以了,其他脚本放在Action里就行了。

3. 每个页面都要等加载完。这有什么问题?如果你觉得这个页面的加载没有必要,也可以去掉。

4. 刷新,我想只是做了一次新的请求,反复去做请求的动作就应该可以了。至于在什么时间内,这个要看如何设置think time等。应该是可以测的。

5. 有。所以要加速度来度量你关心的功能点,多次刷新导致的函数增加,可以删掉。

6. 这个好像不难,只要参数化规则设置对就可以了。
个人博客:http://www.7dtest.com

TOP

回复 1# 的帖子


lovecy   加油!
你看见我留在屏幕上的字,却看不到我滴在鍵盘上的泪

TOP

关注中……你的成功决定我的命运(可能啊)!
我就在下一站下车。

TOP

加油


Lovecy,加油。

TOP

本功能由奇虎搜索实现

相关主题

标题 作者 最后发表
点击阅读更多关于的相关帖子  更多相关主题
 
当前时区 GMT+8, 现在时间是 2008-11-23 00:57Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹