花儿一样,2008--2011

性能测试入门篇(2)

上一篇 / 下一篇  2007-09-14 21:53:40

 

二,软件性能测试

1、 概念

  软件性能测试即是针对与衡量软件性能的测试方法。网上常有朋友说性能测试是最有前途的测试职业,我想这也从侧面表现了性能测试的重要性吧。

 

2、 方法论

在进行性能测试时,有一些比较常见的方法。具体有:

SEI负载测试计划过程,RBI方法,性能下降曲线分析法等等,这些方法对于我们实施测试很有帮助,在段念老师的书中解释的很具体,具体实施过程中只要按部就班就可以了。书中作者还提出了一个PTGM模型,后面的案例分析方法就是利用这个方法进行的。

 

3、 内容

性能测试属于一个比较大的范畴,具体而言,它又包括这样一些内容,内容也可看作是性能测试的具体方法:

(1)  性能测试(performance tesing)

   这是个小概念的性能测试,即通过模拟生产运行的业务压力和使用场景组合,测试系统的性能是否满足生产性能的要求。其实我开始有点不明白,为什么用一样的名字,容易混淆,但我想它必然有他的道理吧,从它的测试手段和过程来看,应该是性能测试这个大概念中最基本的测试。

具体而言,有以下特点:

主要目的是验证系统是否有系统宣称的能力;需要事先了解被测试系统的典型场景,并具有确定的性能指标;要求在已经确定的环境下运行。

(2)  负载测试

负载测试是通过给被测系统不断施加压力,直到系统达到处理极限。该测试可以理解为破坏性的测试,它不断施压以至于达到崩溃地步。该测试的特点为:

主要目的是找到系统处理能力的极限;需要在给定的测试环境下进行;用来了解系统的性能容量或是配合性能调优来使用。

 

(3)  压力测试

   压力测试容易和负载测试混淆。压力测试是测试系统在一定饱和状态下,系统能够处理的会话能力,以及系统是否会出现错误。不过这里的压力一般是既定的,不像负载那样不断施压。压力测试的特点:

     主要目的是检查系统处于压力情况下应用的表现。

     一般通过模拟负载等方法,使得系统资源使用达到较高的水平;压力测试一般用于测试系统的稳定性。

 

(4)  配置测试

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

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

 

(5)  并发测试

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

主要目的是发现系统中可能隐藏的并发访问时的问题,主要关注系统可能存在的并发问题,例如内存泄露,线程锁等;这种测试方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持。

 

(6)  可靠性测试

 可靠性测试是通过系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。可靠性测试的特点:

主要目的是验证系统是否能够支持长期稳定的运行,其原理在前面用非常粗糙的方式进行了一个解释;这种测试需要在压力下持续一段时间的运行;测试过程中需要关注系统的运行状况。

 

(7)  失效恢复测试

失效性测试是针对有冗余备份和负载均衡的系统设计的。用来检验系统发生故障时用户是否能够继续使用系统。失效性恢复测试的特点:

主要目的是验证在局部故障情况下,系统能否继续使用;该测试方法还需指出当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。而且一般来讲,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。

4、 应用领域

(1)  能力验证

   能力验证就是要验证系统在既定条件下能否满足某种能力需求。一般采用的测试方法有:性能测试,可靠性测试,压力测试和失效性测试。能力测试的两个特点是:要求在已确定的环境下运行;需要根据典型场景设计测试方案和用例。

(2)  能力规划

   规划能力是要回答“系统能否支持未来一段时间内的用户增长或性能需求”的问题。一般采用的方法有:负载测试,配置测试,压力测试。能力规划的两个特点:能力测试是一种探索性的测试;用来了解系统的性能已经获得扩展性能的方法。

(3)  性能调优

  性能调优就是通过一些调整,如硬件环境,软件环境等,来达到优化性能的目的。一般采用的方法有:配置测试,负载测试,压力测试和失效性测试。性能调优的过程:确定基准环境,基准负载和基准性能指标;调整系统运行环境和实现方法,执行测试(包括硬件环境,系统设置以及应用级别的调整;纪录测试结果,进行分析。

(4)  缺陷发现

   发现缺陷顾名思义就是通过测试来发现系统存在的缺陷。主要用的是并发性测试。有时也用压力测试和失效性测试。

 

我们看到测试方法是和具体的应用领域紧密联系的,下面我们归纳下它们之间的关系;

 

能力验证

规划能力

性能调优

发现缺陷

性能测试

  *

 

 

 

负载测试

 

 

压力测试

  

配置测试

 

 

并发性测试

 

 

 

可靠性测试

 

 

 

失效性测试

 

 


TAG: 性能测试

 

评分:0

我来说两句

Open Toolbar