性能测试如何对瓶颈进行定位?
作者:网络转载 发布时间:[ 2011/8/17 16:41:23 ] 推荐标签:
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实现细节的了解。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11