如何做好性能测试

2010-05-26  胡名海 

          昨晚加班,一同事跑来问:如何做好性能测试?
         我的回答如下:
                要做好性能测试首先就是要明确什么是性能,为什么会有性能一说,软件是运行在硬件之上的,而现在的软件几乎都是多层结构,有数据库,有内存数据库,有应用服务器,有终端,如此多的模块需要互相之间传递信息,而当信息量到达一定度量的时候,就会产生各种超乎预期的现象,这就是性能问题。为什么会产生性能问题呢?是因为目前的cpu的计算能力有限,内存资源有限,硬盘资源有限,硬盘读写速度有限,网络带块有限,这就决定了程序在使用资源的时候不能无法无天,必须老老实实,和谐使用。
                为此,要做好性能测试,不是熟悉一两名工具,或者熟悉编码就能做好的,必须要分析需求,从中获取与性能有关的数据,并加以抽象,做出合理的科学的数学模型,然后是分析系统的架构,从中找出可能会出现性能瓶颈的设计,针对这些瓶颈部位设计仿真的场景,然后才是脚本和如和执行这类的事情。
              接下来,就是分析测试结果,能针分析出异常情况产生的主要原因,并且对此提出优化建议,这样的性能测试才能算完整的。
             最后举一个简单的例子:
            最近测试一个项目中一个模块的性能,根据预期必须同时支持一万人同时在线,每秒处理事务数不得少于1200个。我在搭建测试环境的过程中,发现系统会对处理的事务对应输出一条日志,于是我和开发说,这个日志会让系统崩溃,开发人员说可以试试么?于是我按照正常场景,开始测试,当同时在线数达到6000时,cpu爆满,然后观察到8个核只有一个核工作,这证明程序是单线程工作的。于是提出建议:不必要的日志,增加线程池来处理事务。再一次运行测试,同时在线人数10000个,事务处理每秒总数达到3200个,cpu使用仅仅35%。
             要做好性能测试,功夫不在工具上,而在对于系统的认知中。
516°/5028 人阅读/14 条评论 发表评论

黄广勇  2010-05-26

受教了,其实一直想学一下性能测试!


熊志男  2010-05-26

学习


朱晓楠  2010-05-26

看来要学好组成原理了!


袁永云  2010-05-26

性能测试的分析真是一门深奥的艺术


邹毅  2010-05-27

拜读


霍荟旭  2010-05-27

好文章,为后来者点了一盏明灯


李俊卿  2010-05-27

越做测试越觉得测试行业的水很深啊,,深不见底!


胡军红  2010-05-27

学习了,还没进行过性能方面的测试工作。


林熙  2010-05-28

学习了。厉害啊


林熙  2010-05-28

学习了。厉害啊


代勋  2010-05-28

学习了,正在做这方面的研究


沈志城  2010-06-08

收藏了~


刘军  2010-07-02

没看明白你的例子,能具体点不。


查灵  2010-07-07

学习了


登录 后发表评论