把握性能测试重点,5步解决问题!

发表于:2022-10-27 09:32

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

 作者:Carl_奕然    来源:51Testing软件测试网原创

  一、引言
  很多做性能测试的同学都问过我这样一个问题:鱼哥(Carl_奕然),你说性能测试的重点是什么?
  我的回答很简单:瓶颈分析与问题定位。
  在性能项目的整个周期,不管是脚本设计,脚本编写还是脚本执行,都还算简单。
  难点在于如何定位瓶颈,分析瓶颈,解决瓶颈。
  如果你不会性能分析,脚本设计的再好,脚本编写的再完美,分析不出问题所在,那都是白白浪费时间。
  所以,这一讲,我们来学习:如何进行性能分析,学会了性能分析的思路,才能定位问题,分析问题,从而解决问题。
  在性能项目中,我总结的性能分析思路,分5个模块,即性能分析5部曲,如下:
  1、判断性能瓶颈;
  2、线程递增策略;
  3、性能衰减过程;
  4、拆分响应时间;
  5、构建分析决策tree;
  接下来,我就对这5部曲进行一一解释。
  二、判断性能瓶颈
  在整个性能测试阶段,让性能测试工程师最艰难的,就是如何定位性能瓶颈。
  如果无法定位到性能瓶颈,那么对开发同学的支持也就有了限制,这无疑即增加了解决问题的时间,又增加了开发工程师的工作量。
  这时候,你会说,开发工程师的职责不就是解决性能瓶颈吗,
  那要是这样说, 测试工程师的职责,可不仅仅是发现性能瓶颈,还需要定位性能瓶颈,换句话说,也就是协助开发工程师快速定位并解决性能问题。
  为什么说在整个性能项目中,最难得就是分析性能瓶颈。
  这里,我先上一张图,为了更形象的表现接下来要描述的内容,我把图片做了一点处理:
  通过这张图,我们很直观的知道:这是一个阶梯式增加的压测场景。
  但是,根据这个图,你能判断出拐点在哪里吗?
  如果无法判断哪里是拐点,那我再上一张ResponseTime(后面简称为RT)图:
  同样,为了让你更直观的查看RT图,, 我同样也对RT图做了优化处理。
  结合RT图与TSP图,我们能不能判断拐点在哪里呢?
  如果你觉得在3.3s的位置是拐点。我不能否认你说的完全错误,但是,我也不会认同你的观点, 为什么呢?
  因为,根据多年的经验,判断的标准是:随着TPS的不断增加,找到那个清晰可见的弧度。
  这一点很重要,需要你记住。
  我举个例子:如果按照你刚刚的说法,只根据一个拐点来进行判断,想象一下,
  假如网络出现突然的抖动,按照你刚刚的判断依据(只根据一个拐点),是不是就不准确了。。
  所以,一定是找到那个 清晰可见的 弧度。
  我们在回来说上面的TPS图与RT图,根据这两个图,你能得出哪些结论呢?
  是不是可以得出这个系统有瓶颈,系统的瓶颈与压力有关系,并且随着压力的增加,涨幅在逐渐减少。
  到这里, 需要请你在思考一个问题:瓶颈点是否跟压力的大小有关?
  答案:肯定不是跟压力大小有关。
  既然不是跟压力大小有关,那么,根据什么有关呢?
  其实结合上面的图, 我们可以知道:
  ①引起系统瓶颈的问题是有规律的;
  ②TPS是周期性的降低,并且最大的TPS也都差不多是一致的;
  所以,即使压力降低,最多只是降低最大的TPS水位,这种情况只是让问题出现的更晚一点,但不会不出现的。
本文源自第六十八期《51测试天地》
软件性能测试之性能分析5部曲》一文
查看更多精彩内容,请点击下载:
  版权声明:本文出自《51测试天地》第六十八期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号