首页 > 技术文章 > 性能测试应用领域

richered 2018-03-10 23:12 原文

 

取自<软件性能测试过程详解与案例剖析>--段念

性能测试的应用领域划分为5个不同领域:

1、能力验证领域的特点与性能测试的特点非常接近

  <1>要求在已确定的环境下运行

    能力验证要求运行环境必须是确定的。只有在一个确定的运行环境下,软件的性能的的承诺和规划才是最有意义的。因为无法或很难根据系统在一个环境中的表现去推断其在另一个不同环境中的表现,因此在这种应用领域内的测试必须要求测试时的环境已经确定(如硬件、软件、网络条件、基础数据等)

  <2>需要根据典型场景设计测试方案和用例

    能力验证需要了解被测系统的典型场景,并根据典型场景设计测试方案和用例。一个典型场景包括操作序列和并发用户数量条件。在设计用例时,需要确定响应的性能指标。

    (测试方法包括性能测试、可靠性测试、压力测试、失效恢复测试)

2、规划能力

  规划能力关心“应该如何使系统达到我们要求的性能能力”或是在“某种可能发生的条件下,系统具有如何的性能能力”。规划能力应用领域内的问题常常会被描述为“某系统能够支持未来一段时间内的用户增长”或是“应该如何调整系统配置,使系统能够满足增长的用户数需要”。

  <1>它是一种探索性测试。

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

  <2>它可被用于了解系统性能以及获得扩展性能的方法。

    规划能力领域的问题是期望了解系统的能力,或是获得扩展系统性能的方法。该领域在测试过程中,除了要通过负载测试等方法获知系统性能表现外,还需要通过更换设备、调整参数等方法获知系统性能可扩展的元素。

  (测试方法包括负载测试、配置测试、压力测试)

3、性能调优

  性能调优应用领域主要对应于对系统性能进行调优。一般来说,性能调优活动会和其他性能测试应用领域的活动交杂在一起。由于性能调优可以调整的对象众多,而且并不要求在系统全部完成后才能进行调优,因此可以在多种不同的测试阶段和场合下使用。

  对已经部署在实际生产环境中的应用系统来说,对齐进行的性能调优可能会首先关注应用系统部署环境的调整,例如,对服务器的调整、对数据库参数的调整及对应用服务器的参数调整,此时的性能调优需要在生产环境在这个确定的环境下进行;但是对正在开发中的应用来说,性能调优会更多地关注应用逻辑的实现方法、应用中设计的算法、数据库访问层的设计等因素,此时并不要求测试环境是实际的生产环境,只要整个调优过程中具有一个可用于比较的测试基准测试环境即可。

  一个标准的性能调优过程如下:

  <1>确定基准环境、基准负载和基准性能指标

    所谓基准负载是指一种可以被用来衡量和比较性能调优测试结果的标准的应用运行环境、测试操作脚本和可被用来衡量调优效果的性能指标。

  <2>调整系统运行环境和实现方法,执行测试

    这就是性能调优的核心步骤。性能调优的目的是通过调整,提高应用系统的性能表现。

    (1)硬件环境的调整。主要是对软件硬件环境进行调整,包括改变系统运行的服务器、主机设备环境、调整网络环境等

    (2)系统设置的调整。主要是对系统运行的基础平台进行调整,例如根据系统需要调整unix系统的核心数量,调整数据库的内存池大小,调整服务器的内存大小,JVM版本等。

    (3)应用级别的调整。主要是对应用实现本身进行调整,包括选用新的架构、采用新的数据访问方式或修改业务逻辑的实现方式等。

   在实际的性能调优过程中,具体调整那部分的内容要具体根据实际情况而定。以达到最高的投入产出比为核心。

4、缺陷发现:

  缺陷发现性能测试应用领域的主要目的是通过性能测试的手段来发现系统中存在的缺陷。经常会出现在测试环境下没有什么问题,可是在生产环境就会出现莫名奇妙的错误。其原因也并不能说明是由并发和性能原因引起的。但是在测试环境运行正常,在生产环境中经常出现卡死、多人访问时速度时快时慢、甚至崩溃几率都很大,则基本上都是由于并发时的线程锁、资源争用或内存问题引起的。

  该领域的主要目的便是发现缺陷,并没有可以参照的性能指标或是需要达到的性能指标,因此主要采取并发测试的方法。如果还需要关注压力及失效恢复过程中出现的问题,则可以采用压力测试和失效恢复测试方法。

 

5、性能基准比较:

  性能基准比较,顾名思义,就是在不设定明确的性能目标的情况下,通过比较得到每次迭代中的性能表现的变化,根据这些变化决定迭代是否达到了预期的目标。

 

          性能测试应用领域与测试方法的关联

  由于性能测试项目一般比较复杂,一个真实的性能测试项目通常同时包括了几个领域的性能测试目标,这种情况下也可以利用性能测试应用领域的方法,将其分解为多个不同的性能测试应用领域,并为其规划不同的测试方法。

 

推荐阅读