性能测试方法详解(验收性能、负载、压力、配置、并发、可靠性、失败恢复)

一、性能测试

性能测试时通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行,通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况,压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别测试。

 

二、性能测试包括的方法:

1、验收性能测试

2、负载测试

3、压力测试

4、配置测试

5、并发测试

6、可靠性测试

7、失败恢复测试

 

 

验收性能测试:通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。

特点:

1、这种方法主要目的验证系统是否具有系统宣称具有的能力。方法包括确定用户场景、给出需要关注的性能指标、测试执行、测试分析几个步骤,这是一种完全确定了系统运行环境和测试行为的测试方法,目的只能是依据事先的性能规划,验证系统是否达到其宣称的具有的能力。

2、这种方法需要事先了解被测试系统的典型场景,并具有确定的性能目标。

验收性能测试方法需要首先了解被测系统的典型场景,所谓的典型场景,是指具有代表性的用户业务操作,一个典型场景包括操作序列和并发用户数量条件,这种方法需要有确定的性能目标,性能目标的描述方式一般为“要求系统在100个并发用户的条件下进行A业务操作,响应时间不超过5秒”。

3、这种方法要求在已确定的环境下运行。

验收性能测试方法的运行环境必须是确定的。软件系统的性能表现与很多因素相关,无法根据系统在一个环境上的表现去推断其在另一个不同环境中的表现,因此对这种验证性的测试,必须要求测试时的环境(硬件设备、软件环境、网络环境、基础数据等)都已经确定

 

负载测试方法在被测系统上不断增加压力,直到性能指标(如响应时间)超过预定指标或者某种资源使用已经达到饱和状态。负载测试方法可以找到系统的处理极限,为系统调优提供数据,有时也被称为可置性测试。

1、这种性能测试方法的主要目的是找到系统处理能力的极限。

负载测试方法通过“检测—加压—性能指标超过预期”的手段,找到系统处理能力的极限,该极限一般会用“在给定条件下最多允许120个并发用户访问”或是“在给定条件下最多能够在1小时内处理2100笔业务”这样的描述来体现。而预期的性能指标一般会被定义为“响应时间不超过10秒”、“服务器平均CPU利用率低于65%”等指标

2、这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。

负载测试方法由于涉及预定的性能指标等需要进行比较的数据,也必须在给定的测试环境下进行,负载测试方法在“加压”的时候,必须选择典型场景,在增加压力时保证这种压力具有业务上的意义。

3、这种性能测试方法一般来了解系统的性能容量,或是配合性能调优来使用。

负载测试方法可以用来了解系统的性能容量(系统在保证一定响应时间的情况下能够允许多少并发用户的访问),或是用来配合性能调优,比比较调优前后的性能差异

 

压力测试:方法测试系统在一定饱和状态下,例如CPU、内存等在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。

特点:

1、这种性能测试方法主要目的检查系统处于压力情况下时应用的性能表现。

压力测试方法通过增加访问压力(如增加并发的用户数据等),使应用系统的资源使用保持在一定的水平,这种测试方法的主要目的是检验此时应用表现,重点在于有无出错信息产生、系统对应用的响应时间等。

2、这种性能测试一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。

一般情况下,会把压力设定为“CPU使用率达到75%以上、内存使用率达到70%以上”这样的描述,在这种情况下测试系统响应时间、系统有无产生错误,除了CPU和内存使用率的设定外、JVM的可用内存、数据库的连接数、数据库服务器CPU利用率等都可以作为压力的依据。

3、这种性能测试方法一般用于测试系统的稳定性

用压力测试的方法考察系统的稳定性是出于这样的考虑:“如果一个系统能够在压力环境下稳定运行一段时间,那么这个系统在通常的运行条件下应该可以达到令人满意的稳定程度。”在压力测试中,会考察系统在压力下是否会出现错误,测试中是否有内存等方面的问题

 

配置测试通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。

特点:

1、配置测试性能方法的主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作。

此配置测试方法不同于于功能测试并列的那个“配置测试”方法。对整个系统来说,配置测试时针对软件而言,其主要目的是验证软件能够在不同的软硬件环境中正常运行,是功能上的验证,而这里提到配置测试方法,是在测试领域内的配置测试方法,其主要目的是了解各种因素对系统性能的影响程序,从而判断出对性能影响最大的因素。

2、这种性能测试方法一般在对系统性能状况有初步了解后进行

配置测试方法需要在确定的环境、操作步骤和压力条件下进行。该方法在每次执行测试时更换、扩充硬件设备,调整网络环境,调整应用服务器和数据库服务器的参数设置,比较每次测试结果,从而确定各个因素对系统性能的影响,找出影响最大因素。

3、这种性能测试方法一般用于性能调优和规划能力

配置测试方法主要用于性能调优领域,可以实现调优的持续进行,在规划能力领域内,该方法也常被用来评估如何调整才能实现系统的扩展性。

 

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

特点:

1、这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题

并发测试方法是通过并发的手段发现系统中存在问题的最常用方法

2、这种性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用的问题;并发测试在测试过程中主要关注系统中的内存泄漏、死锁等问题。

3、这种性能测试方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持

并发测试可以针对整个系统进行,也可以仅仅为了验证某种架构或是设计的合理性进行,因此其可以在开发的各个阶段使用。一般来说,并发测试除了需要性能测试工具进行并发负载的产生外,还需要一些其他工具进行代码级别的检查和定位,Compuware公司的DevPartner工具、ej-technologie公司的JProfile工具、Quest公司的JProbe工具等可以在这方面发挥作用

性能测试方法详解(验收性能、负载、压力、配置、并发、可靠性、失败恢复)_第1张图片

 

可靠性测试:通过给系统加载一定的业务压力(例如资源在70%~90%的使用率),让应用持续运行一段时间,测试系统在这种条件下能否稳定运行

特点:

1、这种性能测试方法的主要目的是验证系统是否支持长期稳定的运行,

可靠性测试方法的目的是验证系统是否能够支持长期稳定的运行,直观来说,在较大的压力下进行一个较长时间的测试,如果系统在测试中不出现问题或是不好的征兆,基本上可以说明系统具备长期稳定运行的条件。

2、这种性能测试方法需要在压力下持续一段时间的运行。

既然是稳定性测试,至少需要让系统在压力下运行一段时间,这段时间的具体数值需要根据系统的稳定性要求确定,对一般的非关键的大型应用来说,一般让系统处于可能的峰值压力下,进行2~3天的稳定性测试即可。

3、测试过程中需要关注系统的运行状况

在运行过程中,一般需要关注系统的内存使用状态、系统的其他资源使用以及系统响应的时间有无明显变化。如果测试过程中发现,随着时间的推移,响应时间又明显变化,或是系统资源使用率有明显波动,都可能是系统不稳定的征兆,重点关注

 

失效恢复测试:方法是针对有冗余备份和负载均衡的系统设计的,这种测试方法可以用来检验如果系统局部发生故障,用户是否能够继续使用系统,以及如果这种情况发生,用户将受到多大程度的影响。

特点:

1、这种性能测试方法的主要目的是验证在局部故障情况下,系统能够继续使用

一般关键业务系统都会采用热备份或负载均衡的方式来实现,这种业务系统一般要求如果有一台或几台服务器出现问题,应用系统仍然能够正常执行业务。失效恢复测试方法可以在测试中模拟一台或几台设备故障,验证预期的恢复技术是否能够发挥作用。

2、这种性能测试方法还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。

当一台或多台服务器出现问题后,系统一定会受到性能甚至是功能上的部分损失。必须在测试中明确得出“当问题发生时,系统还能支持多少用户的并发访问?是否要采取某些必要措施?”这种问题的明确答案

3、一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试

不是所有的系统都需要进行失效恢复测试,尤其是并没有明确给出系统持续运行指标的系统。

你可能感兴趣的:(性能测试)