性能测试如何对瓶颈进行定位?

发表于:2011-4-20 12:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiangxiang    来源:51Testing软件测试论坛

  问题描述:

  性能测试如何对瓶颈进行定位?

  精彩答案:

  会员 xiangxiang:

  谈谈我的看法。

  1、首先,需要make sure我们的性能测试的target是合适的。用户如何使用我们的系统,也就是用户的使用模型。确定我们的性能测试确实是cover了大多数用户的使用模型。这是性能瓶颈分析的前提,以免浪费时间和精力。

  2、得出一个task性能数据,接下来需要做task分解。一个task在CPU或者多个主机上执行,无非就是串行task和并行task。对于串行执行的任务好说,每个sub task的执行时间是多少,多者既瓶颈所在,需要对它优化。并行也好说,总体的性能既是所有并行的sub task中耗时最长的那一个,它既是瓶颈,需要对它优化才能提高整体性能。

  如果一个task既串行,有并行,相互交织,相互混杂。那就只有像庖丁解牛一样,逐级划分,直到变成并行和串行的sub sub sub task。然后就可以得出task的总的耗时和这些sssssub task的执行时间的数学关系。瓶颈定位就变成数学公式,看起来就简单了是吧。

  3、第2条是针对一个测试性能数据而言的。如果很多的测试用例走了不同的分支,既不同的sub task,使得按照2得到不同的公式,问题就变成如下的:

  TC1 Perf Bottleneck = F1(sub1, sub2, sub3,...)

  TC2 Perf Bottleneck = F2(sub1, sub2, sub3,...)

  TC3 Perf Bottleneck = F3(sub1, sub2, sub3,...)

  TC4 Perf Bottleneck = F4(sub1, sub2, sub3,...)

  ...

  也就是说最终系统的性能在不同的测试用例的情况下,得到的和sub task的关系是不一样的。那么如果我们需要提高整个系统的总体性能,也就是找到谁才是最需要被优化的sub task,我们还是的回到用户模型。针对用户模型的时间分析,我们可以得出每个test case的用户使用概率百分比。例如:TC1 10%,TC2 40%, TC3 10%, TC4 20%。有了这样的数据,带入F1,F2,F3和F4,就大致可以搞清楚哪些sub task是最主要的瓶颈。

  4.此外,还需考虑task只能到底耗费的是什么资源,是CPU,是harddisk,是网络带宽。这个取决于你的task划分的粒度以及对每个sub task实现细节的了解。

  原帖地址:http://bbs.51testing.com/thread-420846-1-1.html

版权声明:本文由会员xiangxiang首发于51Testing软件测试论坛每周一问活动。

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

相关链接:

性能测试中如何定位性能瓶颈
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号