性能测试应用领域

大概说说性能测试的五种应用领域吧,可能纯文字内容太多,没耐心的话,能够跳过不看。。。    ————参考书籍《软件性能测试过程详解与案例剖析》算法

 

归纳来讲,能够将性能测试的应用领域划分为下面五个不一样领域:数据库

·能力验证服务器

·规划能力网络

·性能调优架构

·瓶颈发现并发

·性能基准比较函数

1、能力验证工具

能力验证是性能测试中最简单也是最多见的一个应用领域。一个典型的能力验证的问题会采起这样的描述方式:某系统可否在A条件下具备B能力?性能

能力验证领域的特色与性能测试的特色很是接近:单元测试

①要求在已肯定的环境下运行

只有在一个肯定的环境下运行,软件性能的验证才是有意义的;由于没法或很难根据系统在一个环境中的表现去推断其在另外一个不一样环境中的表现,所以这种应用领域内的测试

必需要求测试环境(如硬件设备、软件环境、网络条件、基础数据等)已肯定。

②根据典型业务场景设计测试方案和用例

能力验证须要了解被测系统的典型业务场景,并根据典型场景设计测试方案和用例;一个典型场景包括操做步骤和并发用户量条件,设计用例时,须要肯定响应的性能指标。

可靠性测试的内容也能够纳入到该应用领域。由于从用户角度出发,对软件可靠性的保证也是承诺的软件性能的一部分。

在能力验证领域,通常采用的测试方法有:性能测试、可靠性测试、压力测试和失效恢复性测试。

 

2、规划能力

规划能力领域一般关心的是:如何使系统具备咱们要求的性能能力或者某种可能发生的条件下,系统具备如何的性能能力?

它一般会被描述为:某系统可否支持将来一段时间内的用户增加或者应该如何调整,使系统可以知足增加的用户数的需求?

能力规划领域具备如下特色:

①它是一种探索性测试

规划能力领域侧重点是规划。即该领域不依赖预先设定的用于比较的目标,而要求在测试过程当中了解系统自己的能力;这种测试与能力验证领域内的测试最大区别在于其探索性。

②它可被用于了解系统性能以及得到扩展性能的方法

规划能力领域的问题是指望了解系统如今的能力,得到扩展系统性能以应对未来的业务增加的方法。该领域在测试过程当中,除了要经过负载测试等方法获知系统性能表现外,还须要经过

诸如更换设备、调整参数等方法获知系统性能可扩展的元素。

在规划能力领域,通常采用的测试方法有:负载测试、配置测试和压力测试。

 

3、性能调优

性能调优领域主要对应于系统性能进行调优。通常来讲,性能调优和其余性能测试应用领域交杂在一块儿的;性能调优可调整的对象众多,并且在系统应用的各个阶段均可以进行调优。

对于已部署在实际生产环境中的系统应用,对其进行性能调优可能会首先关注应用系统部署环境的调整,例如:对服务器的调整、对数据库参数以及对应用服务器的参数调整等;

对正在开发中的应用来讲,性能调优会更多关注应用逻辑的实现方法、应用中涉及的算法、数据库访问层的设计等因素;此时并不要求是测试仍是生产环境,只要整个调优过程当中具备

一个可用于比较的测试基准环境便可。

一个标准的性能调优过程大概以下:

一、肯定基准环境,基准负载和基准性能指标

基准负载是指一种可被用来衡量和比较性能调优测试结果的标准(每次执行性能测试时环境要严格保持一致)的运行环境、测试操做脚本和可被用来衡量调优效果的性能指标。

二、调整系统运行环境和实现方法,执行测试

这是性能调优过程当中的核心步骤,目的是经过调整,提升应用系统的性能表现;主要包括以下三个方面:

①硬件环境的调整

主要对系统运行的硬件环境进行调整,包括改变系统运行的服务器、主机设备环境(改用具备更高性能的机器,或调整某些服务器的物理内存总量,CPU数量等)、调整网络环境(更换

更快速的网络设备,或采用更高宽带的组网技术)等;

②系统设置的调整

主要对系统运行的基础平台设置进行调整,好比:根据应用须要调整Unix系统的核心参数,调整数据库的内存池大小,调整应用服务器使用的内存大小或采用更高版本的JVM环境等;

③应用级别的调整

主要是对应用自己的调整,包括选用新的架构、采用新的数据访问方式或修改业务逻辑的实现方式等;

PS:实际性能调优过程当中,具体的调整视具体状况而定;并且不要一次调整过多的参数或应用实现方法,不然很难判断具体哪一个调整对性能产生了影响(通常3~5处最好)。

三、记录测试结果,进行分析

该步骤和上一步骤构成了一个性能调优循环,循环的出口是“达到预期的性能调优目标”。

性能调优主要使用的测试方法有:配置测试、负载测试、压力测试和失效恢复性测试。

 

4、瓶颈发现

瓶颈发现应用领域的主要目的是经过性能测试手段来发现系统中存在的缺陷,瓶颈。

常常在工做中遇到这样的问题:应用在测试环境下运行正常,部署到生产用户环境,就会出现莫名其妙的错误;这些状况并不彻底是并发或者性能问题致使,大多数状况下,都是因为

并发时的线程锁、资源竞争或内存问题引发的。

瓶颈发现应用领域通常做为系统测试阶段的一种补充手段;在测试过程当中发现并发时的应用问题,或做为系统维护阶段的问题定位手段,对系统运行过程当中出现的问题进行重现和定位。

该应用领域的主要目的是发现缺陷、瓶颈,并没有可参照的性能指标或须要达到的性能目标,所以主要采用并发测试的方法。

 

5、性能基准比较

性能基准比较一般用于敏捷开发过程当中。

敏捷开发:大约兴起于2000年,与传统重量级软件开发方式相比,敏捷开发采纳轻量级的软件开发过程,更注重“产出可用的软件”,“沟通胜于文档”等概念,使用“拥抱变化”的态度来

面对开发中不断的需求变动。

敏捷开发将软件开发过程划分为多个短期周期迭代,每一个迭代定义了本次迭代须要完成的目标,一个迭代中保持需求的不变以“交付了迭代目标的可工做软件”做为每一个迭代完成的标志。

因为敏捷开发采用“递增”的开发模式,很难再每一个迭代周期内定义明确的性能需求。所以,性能基准比较,就是在不设定目标的状况下,经过每次迭代的比较来获得性能表现的变化,根据

这些变化决定迭代是否达到了预期的目标。

在实际操做中,能够将性能测试造成固定的脚本,并在固定环境上对模块执行相应的性能测试,测试结果经过工具直接写入数据库并经过图形展示工具将其展示成折线图,其能够直观的反应

模块的每一个迭代中性能表现的变化,甚至能够做为验收条件的一部分。

另外,在敏捷开发中,设定性能基准比较的不只仅是模块,还能够在单元测试中为给定的函数设置性能基准比较。

 

下表将性能测试的方法和应用领域作了关联,实际执行中可根据须要选用合适的方法:

PS:颜色越深,表明越重要。。。

 

总结:性能测试应用领域的划分主要按照性能测试的目的和目标进行划分,不一样应用领域的性能测试采用不一样的方法;固然,实际的性能测试中,状况每每比这个更复杂,这种状况下,

应该按照具体状况设计测试实施计划,分解拆分,为其设计规划不一样的测试方法。