51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 10033|回复: 23
打印 上一主题 下一主题

[原创] 性能测试之感想

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-1-21 16:32:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于性能测试,很多人不以为然!
自然我们有时候也把会性能测试==会使用LoadRunner。
诚然会使用LoadRunner是不错的,但性能测试不同我们常说的功能测试、界面测试
对于这类测试我们总可以直接找出软件的BUG,只要你有足够的耐心,细心!反复的错误。
软件的错误总是会“大白于天下”!
而性能测试则不样,在常规的性能测试时候,你需要大量的并发数的时候,你不太可能一下子操作10台PC
LR自然也是上佳的选择!
当你成功的使用LR录制脚本,然后调优,再然后成功的回放!这时候我想你的心情一定是很愉悦的!
然后,LR的分析结果也出来了,你发现其中大部分好像超标,且有几个fail的事务和一堆不太明白的数据!
然后:
问题:真的是软件自身的问题?还是网络瓶颈、参数设置、硬件性能、脚本?

我之前做过性能测试分析,但事实上用LR并不是很多,在这分享一下自己的经验,权当抛砖引玉。
希望过来捧场的朋友也跟我们分享自己的遇到一些性能测试的问题或是自己针对性能测试的一些经验、解决问题的途径&技巧
1)性能测试的关键,在进行任何一个性能测试前,一定要明确性能测试的目标,写好测试策略!
   如并发数,如何加压?【10minute,30.......】,这部分是场景设计的基石!
2)关于集合点,设置集合点可以最大限度的量测系统的性能指标!
    但有时候,真实的场景并非如此,所以如果性能指标的要求比较苛刻的,可以考虑加入集合点!
    一般常规的性能测试,可以考虑不要加集合点了!
3)执行事务时间,一般最后不要超过5秒,3秒之内最合适,超过了5秒,你可以打开网页细分图,确定时间只要
   是花费在哪?network time?server time?还是那个组件太大了?
   另外脚本录制的时候,事务要定义清楚,不要把不相关的操作也录制在事务里面!
4)在进行场景测试时候,一般测一个用户的情况,不要加压,然后再增加并发数。。。。
   这样的话,出了事情,也知道孰是孰非?
5)不要轻易的下结论,针对运用排除法进行分析
下面我说一下我曾经遇到过的case:
1.使用LR测试一个网上调查系统【ASP+IIS】
2.我用LR录制这个调查的过程,并用户名和密码参数化,地方名参数化
3.录制完结束,回放OK
4.场景测试:10个并发测试,Duration:run until complete
   测试ok
5.但加压20Minute时候,出问题!Duration:20
  fail的事务数比较,且是这样用户每迭代的时候,提示error:requested form not found
6.后来经过排查,发现是脚本的问题。
那各位认为可能是脚本那出问题了呢?
知道的话,告诉大家一下,不知道的话,就问我好了?
  


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-1-21 17:12:25 | 只看该作者
这是为什么啊?不过以前我还碰到过一个问题,每次执行同样的一个脚本,结果出现的错误个数不同,甚至有时没有错误出现,真的是搞不懂了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-1-21 17:41:00 | 只看该作者
.....
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-1-21 18:18:32 | 只看该作者
这有点意思。
条件:报requested form not found错,推论:应该是用了A script deescribing user actions这种录制模式
条件:用户每迭代的时候...,推论:使用迭代,而且问题跟迭代有关系
条件:使用迭代,推论:问题有可能跟“迭代时,init函数不会迭代执行”有关
那么,情况很可能出现在:将页面的web_link放到init函数,但把该页面的web_submit_form放到action(或同样类型)的函数,那在第二次及第二次以后执行这个web_submit_form时,它的URL就是错的了。。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-1-22 09:48:13 | 只看该作者
楼上的分析得很不错,但如果URL是错的,那出现的error message就
应该是failed to connect to server...
你已经分析到
web_submit_form(),我想你再进一步分析,就可以找到答案!
另外,我很希望也大家能够把平时遇到的case也拿出来分析。。。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-1-22 10:15:41 | 只看该作者
还需要进一步分析?
我给你俩函数你就知道了
要符合你所有条件的情况并不多。你要是能找到第二种你就说出来吧

vuser_init()
{

        web_url("login.php",
                "URL=http://www.kaixin001.com/login/login.php",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t5.inf",
                "Mode=HTML",
           LAST);

        return 0;
}

Action()
{

        web_submit_form("login.php_2",
        "Snapshot=t6.inf",
        ITEMDATA,
        "Name=email", "Value=aaa", ENDITEM,
        "Name=password", "Value=ccc", ENDITEM,
        LAST);

        return 0;
}
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-1-22 11:17:53 | 只看该作者
你分析有道理,已经知道是参数的问题,但URL参数不对,错误应该是连不上server
那既然是requested form fail但没有提示failed to connect..
那说明出问题的是form!
既然是form有问题,那第一次怎么会对?而迭代出错呢?
有一种情况就是form中参数,如果恰巧是第一个设对,而其他的是错的?
那出现requested form fail是应该!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-2-4 20:40:48 | 只看该作者

回复 1# 的帖子

恐怕是关联没有做好吧?服务器返回的SID值和开始录制脚本的时候不一样,自然无法请求到想要的内容。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-2-5 09:36:36 | 只看该作者
原帖由 jun_1028 于 2009-1-22 11:17 发表
你分析有道理,已经知道是参数的问题,但URL参数不对,错误应该是连不上server
那既然是requested form fail但没有提示failed to connect..
那说明出问题的是form!
既然是form有问题,那第一次怎么会对?而迭代出 ...


那应该就是用于登录的参数的设置不对,即UserID和Password之间设置有偏差,导致迭代时候,读取参数时出现问题?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-2-10 11:21:50 | 只看该作者
到底是那里不对啊?正确答案呢?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-2-10 11:34:25 | 只看该作者
原帖由 lushuishui 于 2009-1-21 17:12 发表
这是为什么啊?不过以前我还碰到过一个问题,每次执行同样的一个脚本,结果出现的错误个数不同,甚至有时没有错误出现,真的是搞不懂了

这个跟你的服务器缓存有关的,还有你的机子配置,web服务是否重启过,服务器的所有连接是否都断了,原因是很多的。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2009-2-11 14:43:16 | 只看该作者
答案如AJan1000所说:
为读取表单参数所引起的问题
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-2-11 14:44:17 | 只看该作者

性能测试问题点

大伙也可以把自己遇到的case拿出来讨论,讨论
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-2-11 16:00:18 | 只看该作者
这种做法顶!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-2-12 13:53:04 | 只看该作者
我也刚开始学习使用lr,看见那么一大堆图表真是头大啊,不知道怎么分析
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2009-2-13 13:23:48 | 只看该作者
如果觉得分析难的话,可以从最简单的做起,比如逆向思维:即你已经知道问题,然后学着使用LR分析看看
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2009-3-6 09:43:41 | 只看该作者
update
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2009-3-6 10:42:28 | 只看该作者
冒昧定楼主一下
其实楼主的些些总结在很多地方都能看到
如果能加入具体的东西来佐证自己的这些总结  我想更有说服力吧

======
1)性能测试的关键,在进行任何一个性能测试前,一定要明确性能测试的目标,写好测试策略!
   如并发数,如何加压?【10minute,30.......】,这部分是场景设计的基石!
===既然是基石,那这个我们应该从那些方面考虑,从而得到这些策略呢?

4)在进行场景测试时候,一般测一个用户的情况,不要加压,然后再增加并发数。。。。
   这样的话,出了事情,也知道孰是孰非?
========这个说的不是很明吧,比如就拿你下面登陆的case来说明下?

呵呵  我是菜鸟
如上问题只是愚见     还望明示
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2009-3-10 14:40:05 | 只看该作者
恩,你说不错,TKS,不过你也算的上是泛泛之论。
关于性能测试,有很多细节可以写的。
我有2个冀求:
1.大家能把自己遇到的问题拿出讨论
2.谈谈自己的经验或遇到某特定问题的处理方法、技巧
若果如此,则可积沙成堆,汇溪成河!
大家皆可受益。
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2009-3-25 15:19:05 | 只看该作者

没有添加事务的开始和结束

没有添加事务的开始和结束
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-23 15:14 , Processed in 0.104723 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表