软件性能测试过程
上一篇 / 下一篇 2011-12-09 16:08:41 / 个人分类:性能测试
摘要:本文简单介绍软件的性能测试过程,将性能测试过程分为性能测试设计、性能测试执行、测试结果分析三个阶段,并介绍了每个阶段的主要工作内容和方法,配有简单的例子进行解释。
2W,YH1jzn&Ce051Testing软件测试网$C ]r3~W关键字:性能测试 性能测试设计 测试场景 结果分析51Testing软件测试网!D%TGI6C&k-yl?-a1c Q
51Testing软件测试网+uHt)d-[!_k随着企业需求的日益增长以及计算技术的不断进步,企业级系统的应用已经从早期的单机时代转换到了服务成千上万个用户的因特网时代。随着企业业务量的增加,企业的应用系统承载的负荷越来越重,对应用系统的要求越来越高。系统性能的好坏直接影响企业对外提供服务的质量,而性能测试在软件的质量保证中起着重要的作用。
_C @wb051Testing软件测试网fsT)H]&^;K'}BbC-N_`本人结合自己的经验,从技术角度简单讨论一下软件性能测试的测试过程。软件性能测试过程分为三个阶段:51Testing软件测试网C\ikFSc!p
51Testing软件测试网[0`/vGq#\#w-p● 性能测试设计
TWQk^NFJ0["I5E`:_M9cw0 ● 性能测试执行51Testing软件测试网A%t V Ow P
!}+]NIttf-W Z0 ● 测试结果分析
I-kK-J1G@}:e3z051Testing软件测试网(B-h"n3@i6\3L8h1.性能测试设计51Testing软件测试网y%G6aX~Y J
?0Ue,o8`'uO_`0 性能测试设计是性能测试过程中一个非常重要的环节,性能测试设计的好坏直接关系到测试的充分性和测试结果的有效性。
_3e#W)NX%Vi}\L"x051Testing软件测试网"L#hhe3f bV7H性能测试设计阶段主要包括性能需求分析、测试场景制定等。
j7E+Ow#c0(Phz0[GKtl%fJ0 1.1 性能需求分析51Testing软件测试网:s+C _(scS
51Testing软件测试网b7\ ^E2Q/S"h)h性能需求分析主要包括测试目的和性能指标确定。51Testing软件测试网j/F.p0m6_
'src2i y7M0 进行性能需求分析,需要明确性能需求。性能需求可以从被测软件的相关文档中获得,也可以通过与用户沟通来获得。仔细阅读被测软件附带的相关文档,包括需求文档、使用文档、数据库设计文档等,提取有关软件性能相关的描述,例如“要求操作响应时间在……以内”、“要求……能够快速……”、“要求……能够支持……用户访问”、“要求……能快速稳定运行”、“要求系统连续……无故障运行”等,然后对提取的测试需求进行分析。51Testing软件测试网4P*\9i+@2{J^
p6rmA%zY D0 (1)确定测试目的
^6Pw X-o2Hl$y c&V0j7i8ZKb8P0 进行需求分析,首先要明确性能测试目的,测试目的不同直接影响后序的性能测试场景的制定。测试目的可以总结为三类:符合性验证、性能考察、性能调优。51Testing软件测试网0H)^ Eh5Dq*L4JYY
i6ieljM;X{Yi0 ● 符合性验证―主要验证软件是否满足规定的性能指标要求。如测试软件在某一条件下的平均响应时间,或者吞吐率,或者并发用户数等是否满足规定的要求。
oc!NXrC051Testing软件测试网elN-aZ● 性能考察―主要测试软件在某种条件下运行的性能状况。如测试软件所能支持的最大并发用户数或者最大数据量,软件在不同环境下的性能状况,随用户数量的变化或者数据量的变化情况下软件的性能变化状况等。51Testing软件测试网|~7@$\w#jG;?
~}.k?~#UC0 ● 性能调优―主要是通过性能测试找出软件的性能瓶颈,分析出引起软件性能缺陷的原因,并进行针对性的性能优化,以改进软件性能。如对软件进行性能测试,确定是软件否存在性能方面的问题,并定位性能瓶颈,对其进行性能优化。51Testing软件测试网kvF*wT+H
51Testing软件测试网6jp)tGFe.t8?将测试需求与上述目的进行比较,确定出本次测试的测试目的。
'QU$z+v e/RBX0_aZ$k0sDI{/FcCNC7l0 (2)确定性能指标
f8]~ p7S} JIl051Testing软件测试网 P)nfc-C }9Jn此处确定的性能指标指的是性能需求中要求的,且通过性能测试直接得到的性能指标,主要包括响应时间、吞吐率、资源利用率、交易成功率等,是测试结果分析和判断的依据。性能测试需要有明确的性能指标,某些软件系统具有明确的性能指标,而有的软件系统则需要和用户一起,通过对软件系统的业务特点、技术特点、应用情况等进行综合分析来获得。51Testing软件测试网+D9Or`.~t
dC!W-Hgf a)`0 如,一软件系统,要求1个小时内必须完成7 200笔业务。可以得出每秒需要完成的业务为7 200/3 600=2笔,则可以得出该系统需要关注的性能指标为服务器处理请求的能力,即吞吐率,值为2笔/秒。51Testing软件测试网0h6KdYy/E a
#P@l3Zw6EY@ M ~01.2 测试场景制定51Testing软件测试网+kZrL!ES
5q.@Fn [;j0 测试场景是指导测试执行的依据。测试场景主要是模拟软件系统一些实际的应用情况,包括测试时执行的业务、每种业务执行的用户数量、模拟的总用户数、数据库数据量、用户增长方式、测试循环方式、用户退出方式、执行过程中的相关参数设定等,还包括测试中需要监视的性能计数器,主要是服务器端操作系统相关的计数器、应用服务器相关的计数器、数据库相关的计数器等。不同的测试目的,其测试场景是不同的。
tN @*ZNJ@0s*cs{;N|`-c0 ● 符合性验证主要是验证软件性能是否符合用户使用的要求,则测试中应模拟软件系统的实际使用情况。如,在各功能操作中加入适当的思考时间和迭代间隔时间,用户增长方式采用逐渐加压方式等。软件实际使用时,主要是多用户执行多项功能操作,所以测试场景主要是多用户、多任务的并发测试。当软件系统有长时间连续运行的情况时,还需要有疲劳测试的测试场景。51Testing软件测试网.l#x%\1t CK;MdQ,H6K
k/UmZt4B\0 ● 性能考察中对于测试软件性能极限的情况,如支持的最大用户数、最大的数据量等,测试场景应该尽可能的模拟极限情况。为了保证测试中对软件施加足够的压力,用户增长方式采用同时加载,思考时间、迭代间隔时间都忽略等。测试软件性能极限,需要不断调整影响软件性能的要素,并分别进行并发测试。如,测试软件支持的最大并发用户数,应不断调整并发用户数,在每组用户数下对系统进行并发测试。对于有长时间运行要求的软件系统,则需要进行疲劳测试。51Testing软件测试网~4u6Z5d$U
51Testing软件测试网 H0p[m{UD {性能考察中检测软件在不同条件下的性能状况时(非性能极限),测试场景应该尽可能与实际使用情况相接近,与符合性验证类似。
E\QpN0M0x0b9{ Hxi#R2I^0 ● 性能调优主要是为了软件实际应用中的性能优化,则测试中应模拟软件系统实际应用中的多用户、多任务的并发测试场景,与符合性验证类似。为了验证软件系统是否存在内存泄漏等问题,还需要对其进行疲劳测试。51Testing软件测试网2G;L'{6} mt{ Xf
51Testing软件测试网.Hr,S-Oyh~2.性能测试执行
pcQ R4bR^07a,]}{eqF0 根据制定的测试场景,开始执行测试。测试执行不仅包括测试场景的执行,还包括测试场景执行前的一些准备工作,如,测试环境搭建、测试脚本准备、测试场景布置、测试场景执行等。51Testing软件测试网W:x Yw7]t;L
|/sP~(uP0 2.1 测试环境搭建51Testing软件测试网q} f!whh
51Testing软件测试网%BhI X:Kr;]测试环境主要包括软件运行的软硬件环境和数据环境。51Testing软件测试网KXN)Sr"Td,[4X[ K7F
51Testing软件测试网&]} VuL#v首先,需要根据测试执行方案搭建测试环境。确保测试结果的有效性,要求搭建一个独立、无毒、逼真的软、硬件环境及网络环境,安装调试被测软件,安装测试工具等。51Testing软件测试网n5nQW9X5jBV
:|*d1EJ)SV"f.jnnd#`0 其次,需要准备测试数据。以有利于测试为原则,可以自己准备,也可以从用户处获得满足要求的测试数据,或通过以上两种方式相结合获得。自己准备的数据要符合业务规范,同时避免增加垃圾数据。准备好测试数据后,应及时备份数据库。
v.Pu/T ^!OYG0,AX1CN|BX0 2.2 测试脚本准备
(v-@w&DHTgD^o0B dE/g+PVz!e-k%q2s0 根据测试执行方案中制定的测试功能,准备测试脚本。测试脚本可以通过测试工具来准备,也可以通过自己编写来完成。51Testing软件测试网)VOYr_7RW f
+_q9bMZjt4N0 准备测试脚本前,首先确定测试功能运行无误,防止影响测试结果。测试脚本录制或编写完毕后,需要进行相应的编辑,如参数化、调试等,并需要验证测试脚本的有效性:
a!Z+Vp;S"Y)_H0