自己给公司同事写的一点入门小知识,希望对新同行有些帮助。

  上次性能测试培训后,不少同事反馈性能测试的一些基本概念还是难以理解,所以我在这里把那些看起来比较虚无缥缈的概念实例化生活化一下,一来仅供大家参考,二来当做自己的一个简单总结。

  ● 什么是性能测试?

  性能测试可以用资本家模型来描述。资本家自然是希望工人们多干活少拿工资,同样性能测试也是要求系统多干活少损耗。又要马儿跑得快又想马儿少吃草。

  不少前辈总结过,性能测试是在时间和空间上寻找佳结合点。马儿跑得快是指时间,不吃草是指空间。性能测试则是寻找时间和空间之间的一个平衡点。

  上述为朴素和广义的性能测试。

  ● 性能测试的观点

  性能测试有如下几个观点可以进行关注:

  用户的观点:用户的观点很简单,系统快而稳定!所以如果从用户观点进行性能测试的话,那么性能测试的终效果表现为提高用户体验。大部分门户网站的性能测试是从用户的观点来编写测试用例和脚本的。

  系统的观点:系统观点也不难。在已有得性能硬件软件条件下,进行系统测试从而获取系统的短板,短板可能是硬件瓶颈,也可能是软件的缺陷。系统观点的终测试效果表现为优化系统软硬件,消除系统的显式瓶颈。

  开发的观点:开发的观点与系统观点差不多,但是开发观点对软件关注得更为投入。以开发观点进行性能测试,则性能测试的介入时间会比以上两种观点都要来得早。比如系统数据库设计完毕之后,可以立即利用性能测试来测试数据库设计上的瓶颈,而不像上述两种测试观点一样,必须系统功能测试稳定之后方可进行。

  综上所述,从用户的观点去进行性能测试是满足用户需求的好手段;而从系统角度去进行性能测试则可以确定系统的性能指标。而从开发的观点去进行性能测试则对开发过程很有帮助,也会降低后续出现性能瓶颈的风险。

  ● 性能测试的几种常见方法

  负载测试:负载测试是用户观点的测试行为。简单说来是负载测试是让系统在一定得负载压力下进行正常的工作,观察系统的表现能否满足用户的需求。

  用户的需求从何而来?需求分析——特指性能测试的需求分析。由此看来需求分析是相当重要的。

  负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现。

  负载测试的预期结果是用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等。

  负载测试也是常用的性能测试方法,因此也有不少人将负载测试混淆为性能测试。

  压力测试:压力测试的关键字是“极端”。通过对系统的极端加压,从而观察系统的所表现出来性能问题。再对此性能问题进行分析,从而达到系统优化的目的。所以压力测试是一定要让系统出问题,如果系统没有出问题,那么压力测试的手段和方法肯定存在问题。

  并发测试:验证系统的并发能力。通过一定的并发量观察系统在该并发量的情况下所表现出来的行为特征,确定系统是否满足设计的并发需要。并发测试是系统观点的测试行为。

  基准测试:顾名思义,基准测试要有一个基准点,也是说供比较基点。当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新模块对整个软件系统的性能影响。按照基准测试的方法,需要打开/关闭新模块至少各做一次测试。关闭模块之前的系统各个性能指标记下来作为基准(Benchmark),然后与打开模块状态下的系统性能指标作比较,以判断模块对系统性能的影响。

  稳定性测试:很简单,长时间进行负载测试,从而观察系统的稳定性。