对性能测试方法有很多不同的分类,我觉得从一种大的范围上来进行分类的话,主要有几种:性能测试、负载测试、压力测试、配置测试、并发测试、可靠性测试和失效恢复测试。现对每种测试方法的目的分别描述一下我的理解,望各位多提意见
rz;UH0Xw!~f2{01、 性能测试(performance testing):它是一种我们常见的一种方法,它是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能的要求。简单地说就是要在特定的运行条件下验证体系统的能力状况。
8s,x/~3V;c7[0这种方法的主要特点有:51Testing软件测试网HIr$X1{2uI
cr/]
1) 这种方法的主要目的是验证系统是否有系统说明具有的能力
Rr)S4] D$p02) 这种方法需要事先了解被测试系统典型场景,并具有确定的性能目标51Testing软件测试网xr&\N)ix}6h
3) 这种方法要求在已确定的环境下运行
^3t?*uOKB#k02、 负载测试(load testing):有时被叫做可量性测试,它主要是通过在被测系统上不断增加压力,直到性能达到预定目标或者资源达到饱和状态。它可以找到体系统的处理能力的极限,为系统调优提供数据。
7Zph%Fe4|Y0它的主要特点有
]k]4F&z$L GAY01) 它的主要目的是找到系统处理能力的极限
6r(coP3S02) 需要在给定的测试环境下进行,也需要考虑被测试体系统的业务压力量和典型场景,使得测试结果具有业务上的意义
%PP5WV+Z)J)rm|u03) 一般用来了解系统的性能容量,或是配合性能调优来使用。51Testing软件测试网%w@pTAve
3、 压力测试(stress testing):这种方法测试系统在一定饱和状态下,系统能够处理的会话能力,以及体系学统是否会出现错误。51Testing软件测试网4nAI(s
v8MP
这种性能测试方法具有以下特点51Testing软件测试网vG#vj#T8o"e9Py
1) 它的主要目的是检查系统处于压力情况下时,应用的表现
*{z
KSZ02) 一般通过模拟负载等方法,使得系统的资源使用达到较高的水平
5J.d-{1@,dZ6G4PD
\H03) 一般用于测试系统的稳定性
v8H F.c _04、 配置测试(configuration testing):通过对被测系统的软/硬环境的调整,了解各种不同环境对系统性能影响的程度,从而找到体系统各项资源的最优分配原则。
[3tLm:[uE:A0这种方法的特点有:51Testing软件测试网G]D{)X1GI:S
1) 它的主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优方法。51Testing软件测试网uu5L;xL{+y}
2) 一般在对系统性能状况有一定的了解后进行
6Y!g9}GD-R?03) 一般用于性能调优和规划能力51Testing软件测试网i7{v'{&i8oF
5、 并发测试(concurrency testing):通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一模块或者数据记录时是否存在死锁或者其它性能的问题51Testing软件测试网k|
e
_eJ9Q`%[P
1) 主要目的是发现系统中可能隐藏的并发访问时的问题51Testing软件测试网9W9Cl6HYs
2) 主要关注系统可能存在的并发问题,例如系统中的内存泄漏、死锁等方面的问题51Testing软件测试网S%o2B-zGy
3) 这种方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持51Testing软件测试网%Pb
Ox$U!Ii1n+`
6、 可靠性测试(reliability testing):软件的可靠性包含很多的内容,比如:成熟性、容错性等等,但这里所说的可靠性测试主要是指通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。
rf|\?S8A#N0它的特点有:
i H6{D`O ?k!h;z01) 主要目的是验证系统是否支持长期稳定的运行51Testing软件测试网]wj'N-G2c J
2) 需要在压力下持续一段时间的运行
(^*\e)K(A7Y4?\03) 需要关注系统的运行状况51Testing软件测试网6e#A{
Z%t
7、 失效恢复测试方法(failover testing):它主要是针对有冗余备份和负载均衡的系统设计的。它可以人用来检验如果系统局部发生故障,用户是否能够继续使用系统;以及如果这种情况发生,用户将受到多大程度的影响。51Testing软件测试网co}I7E+w*`L0w&y^
它的主要特点有:51Testing软件测试网,f!^B'{+xPQ3O7W
1) 主要目的是验证在局部故障情况下,系统能否继续使用。51Testing软件测试网2rCAvE-CVN
2) 这种性能测试方还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案
#oNU'W.UH03) 一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试
@C
d)Lb*A0