性能测试的目标和分类

背景

最近看了一些资料,对性能的分类又重新进行了整理,在这里做好笔记和记录

性能测试的目标和类型

性能测试

  通过模拟生产运行的业务压力量和使用场景组合,量化的评估被测系统的响应时间和容量等维度的指标。

目标,要点

  1. 这种方法是对系统性能已经有了解的前提,并对需求有明确的目标,并在已经确定的环境下进行的。
  2. 这种方法的主要目的是验证系统是否有系统宣称具有的能力。
  3. 这种方法要事先了解被测试系统经典场景,并具有确定的性能目标。
  4. 这种方法要求在已经确定的环境下运行。

负载测试

  通过改变系统负载方式、增加负载在被测系统上不断加压,直到性能指标达到极限等来发现系统中所存在的性能问题。这种方法是对一个系统持续不段的加压,看你在什么时候已经超出“我的要求”或系统崩溃。

目标,要点:  

  1. 这种性能测试方法的主要目的是找到系统处理能力的极限。
  2. 这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测试系统的业务压力量和典型场景、使得测试结果具有业务上的意义。
  3. 了解系统性能的极限,拐点
  4. 当超过极限的时候,系统的行为是什么
  5. 帮助我们遭到系统的瓶颈

压力测试

   在高负载情况下来对系统的稳定性进行测试,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题。

目标,要点:

  1. 这种性能测试方法的主要目的是检查系统处于压力性能下时,应用的表现。
  2. 这种性能测试一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。
  3. 这种性能测试方法一般用于测试系统的稳定性。

耐久性测试

  在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。

目标,要点:

  1. 这种性能测试方法的主要目的是验证是否支持长期稳定的运行。
  2. 这种性能测试方法需要在压力下持续一段时间的运行。(2~3天)
  3. 测试过程中需要关注系统的运行状况。

可扩展性/配置测试

  配置测试方法通过对被测系统的软硬件环境的调整,了解各种不同对系统的性能影响的程度,从而找到系统各项资源的最优分配原则。这种测试关注点是“微调”,通过对软硬件的不段调整,找出这他们的最佳状态,使系统达到一个最强的状态。

目标,要点:

  1. 这种性能测试方法的主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作。
  2. 这种性能测试方法一般在对系统性能状况有初步了解后进行。
  3. 这种性能测试方法一般用于性能调优和规划能力。

并发测试

  并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。

目标,要点:

  1. 这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题。
  2. 这种性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。
  3. 这种性能测试方法可以在开发的各个阶段使用需要相关的测试工具的配合和支持。

负载测试(Load testing)、压力测试(Stress Test,应称为强度测试)和性能测试,这三个概念常常引起混淆,难以区分,从而造成不正确的理解和错误的使用。

性能测试是为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据,而负载测试、压力测试是为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等。通过负载测试,也是为了获得系统正常工作时所能承受的最大负载,这时负载测试就成为容量测试。通过压力测试,可以知道在什么极限情况下系统会崩溃、系统是否具有自我恢复性等,但更多的是为了确定系统的稳定性。

 负载测试

通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。负载测试的加载方式也有很多种,可以根据测试需要来选择。

实际操作以模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。

性能测试

为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。

压力测试

在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

实际操作是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

原文地址:https://www.cnblogs.com/YatHo/p/6073531.html