学习积累再学习再积累~~~ 喜欢下雨……特别喜欢坐在窗边安静的听雨、看书或者发呆

如何制定一份详尽的性能测试计划

上一篇 / 下一篇  2008-07-19 08:52:12 / 个人分类:性能测试

作者:不详   网络转载  51Testing软件测试网Sh N s"]D&B:`/T
   进行任何性能测试之前,都需要制定一份详尽的测试计划,从业务角度到技术角度详细地说明性能测试将如何进行。一份性能测试计划应该至少包含以下方面:

{"u&Z'aL0V8A0        总体方法 51Testing软件测试网2A J_,f3OF9O
        依据与基本假定 51Testing软件测试网 R}zl3t?*Sy9p
        性能测试前的操作 51Testing软件测试网 Mi5DL#Is'} I
        性能测试方法 
f {r{$E;s8Z$SXN0        性能测试操作 51Testing软件测试网*|!e@5]#D
        业务范围内的过程 51Testing软件测试网1f'U%seskk
        业务范围外的过程 
}Zj.T N f ]6R.l J!t0yG0        性能测试方案 51Testing软件测试网 N)g#n6Z1`+_+Jl
        性能测试的执行 51Testing软件测试网6^8QY_Af!V
        性能测试指标 
'l?a9s{+f.nJ0        和任何测试计划一样,这份性能测试计划的文字要做到尽量精简,可以使用列表清晰明确地将信息表达出来。这将减少因为沟通问题产生的误解。

&KT XwVx4vq0

y,T3m:P+P0  总体方法

'P|}/z;b#tZ7l0

0z o fMu0{Kq*w0        这一部分是指用非技术性术语将性能测试的总体方法描述出来。目标受众是管理部门与业务部门。样例如下:
Q]\/cq0  51Testing软件测试网/ml1dan;~VKA$X
        “此性能测试方法主要用来对新部署的系统所支持的业务过程进行测试。通过部署这次性能测试,我们将:51Testing软件测试网!u$V]&h9?

51Testing软件测试网@2z@,I%D,`,KRWj$@._

        以减少这次新部署所带来的性能问题为主要目的。 
*o A+`/l/lxN4]R ?0        做出基本的运行假定,确定部署中需要进行性能测试的部分。 51Testing软件测试网4Gpm6I6SV.B[`,RK?
        就这些假定取得一致意见,决定性能与压力测试的适当等级,并在有限的任务时间内完成。 51Testing软件测试网 @ c:eQ1I2q)WPo]
        这份文件是即时更新的。随着我们收集到越来越多的信息,并就适当的性能测试方法达成一致协议时,将再次更新这份文件。”

QzE*U5WNyu}051Testing软件测试网^1`s.{N[G

  依据与基本假定51Testing软件测试网z(l[z,ZSJ8x3r+W

Ck6}i7r k4op6`0        在这一部分中,要清晰地描述测试前必须满足的依据(必须完成的任务)与基本假定(测试时假定为真)。样例如下:51Testing软件测试网0z/F _2kg J#E)}$Dy
  
jp3{ _ mvRuO0  “继续部署任何性能测试之前,必须满足以下条件:

*Ld|r5N@ X051Testing软件测试网t:k,}1dr+Q

        要进行性能测试的组件必须能完全正常运行。 
0c_%w,W-g0        要进行性能测试的组件要安装在可以代表(或按比例可调的)预期的生产系统的硬件或固件中。 
V0[,j7nzy f/Iv0        数据存储库要能代表(或按比例可调)预期的生产系统。 51Testing软件测试网1r4z}n}d4g4u
        有确定的性能测试目标,包括运行情况的假定与测试方案。 51Testing软件测试网@&l!H9['|
        安装好性能测试工具并提供所需的技术支持。” 
[ TkX#B0        性能测试前的操作

#`"B{k_n%]s0@-z051Testing软件测试网&z*zaEQxIc

        这部分要清楚地说明在正式进行性能测试之前为确定系统已经就绪而进行的预测试操作。相当于功能测试中的烟雾测试(smoke testing)。样例如:51Testing软件测试网lW ztHTqY|xI
  
`5^N1E n$?)w'vp0  “为减少性能测试中的风险,可以进行几项预测试操作:51Testing软件测试网c(v;l7G8aB8{:~H

51Testing软件测试网ge7]/R'P9j

        在质量保证测试环境下利用‘桩(stub)’或‘实用程序(utilities)’测试事务处理能力,即投影最大负载(projected peak loads)。 
zN1gT%UKi0        用‘桩’或‘实用程序’代替无需测试或只需进行有限测试的B2B类事务。这将取消任何关于B2B事务的依据。 51Testing软件测试网:AB}8_bIi
        用‘桩’或‘实用程序’代替性能测试中无法使用的内部组件。这将移除所有关于此类组件的依据。 51Testing软件测试网pp6F ^'i
        在所有大规模服务器上部署合适的性能监控器。”
b"@gs!z-rC0  性能测试方法51Testing软件测试网I;oar(p

51Testing软件测试网b6s.e/NDB!X.W

        这一部分是前面总体方法的扩展,但考虑到了业务与技术两个方面。样例如: 
VZ)F2[4P(x Jh+b0        “本性能测试方法主要用来测试新部署的系统的逻辑。通过部署这次性能测试,我们将:

*q.O IS(V3C"W7S0

%K-JF|zY0        以减少这次新部署所带来的性能问题为主要目的。 51Testing软件测试网H.v*[%d7i
        做出基本的运行假定,确定部署中需要进行性能测试的部分。 51Testing软件测试网'T2Wk5O\4ND.V
        就这些假定取得一致意见,确定即将完成的性能的适当等级。 
g-lE\"^,EW0        使用可以模拟预期生产规模的一流的性能测试工具。 51Testing软件测试网OKR&P/]
        模拟需要进行性能测试的组件(将在生产中使用的组件)构成测试环境,检测所有异常。 51Testing软件测试网!d{o#go
        在性能测试期间同时使用生产与非生产(测试)监控器器检测系统的性能。”51Testing软件测试网;d|q b+t3B"x

:D6OF'J2A J0性能测试操作

%sR6^D/W6] X-}/U3_051Testing软件测试网Nph g)fQ B H+X2o.u

  这一部分详细说明了性能测试中所进行的操作。样例如:51Testing软件测试网F|| d%h1p,D r C
  51Testing软件测试网d5}0FJ{,_9b3j
  “性能测试中将进行以下操作:

2s'}Rv V.p.}8s0

u6UzQ8qn0  根据既定方案对系统进行合适的负载测试。方案包括:51Testing软件测试网/L$W @4G-F\
    > 用户操作(业务流程)
yeAa daF+m0    > 既定负载(每分钟的事务处理次数)51Testing软件测试网;y?2U2?8~ j
    > 既定指标(响应时间)51Testing软件测试网9Z.e C:V\'j d

*c?"Z_R#KOh&X2bl0  性能测试期间将进行手工测试和自动化的功能测试,保证在当前负载下用户操作不会受到影响。51Testing软件测试网;w.W(tYx#@NLV^{
  将使用系统监控器监测测试涉及的所有服务器的性能,保证其达到预期的性能要求。51Testing软件测试网(R(`?"[v(R(q,G rI
  部署后支持团队将在性能测试现场观察性能测试结果并提供支持。”51Testing软件测试网r0N$i L(Y }}*J3}.^+q

OE+i5OV6g j,w+G&w0业务范围内的过程

f D8KNUa&?oL\051Testing软件测试网 h5RjW6M%Z N1Kw

  这一部分指定系统的哪些方面属于业务范围内(基于标准)。样例如:51Testing软件测试网Z0}c R ]!\9a
  
n ^Q5b0p0  “性能测试时将以下过程视为业务范围内的过程:

K+T(`/tR4h!T$W6x051Testing软件测试网.Tl| LieP+rw

用户注册
0T5R3Hu{,w7]0登录/访问
9z{P*c7h;e,z)X+\0用户对内容进行浏览
-y8B_Va0D3s?(D7k,{0销售条款与执行
.X$u/Ux \.Op0账目计算51Testing软件测试网u9NIp6`8x*s+q0L
    业务过程目录与以下人员商议制定:业务分析员、市场分析员、基础组织和业主。”51Testing软件测试网BCT };u)d1} }

Ae/O3s {)T$vU C0  业务范围外的过程

|Qy5V,P,xP/N(^#?051Testing软件测试网6@8L(\3nsw%j9D

  这一部分指定系统的哪些方面属于业务范围外(基于标准)。样例如:
L+L~&p6|@3W0~Uq0  51Testing软件测试网&?s w c:e-NHLs9N
  “性能测试时将以下过程视为业务范围外的过程:51Testing软件测试网,{'S;W2FizE.I

t a5VS!cY'cS*J0信用检查51Testing软件测试网m9Io;w2P2P$y X[
    > 前提:信用检查将委托第三方进行――因此不会对性能产生明显的影响。

$b9aDzR\E1TG4_0

,}~e3| T1C0所有在当前未被列为业务范围内或范围外的业务功能。
M G#t B+QL:f sP0    > 前提:所有未在本文件中列出的范围内或范围外的业务都不会对业务产生明显的性能影响。”

9xO:{cW0

N_9gR.B|E?%p&e0  制定性能测试方案51Testing软件测试网oo*Uo`G(A7CB0h

x5m3p8k#o@5M0  这一部分在测试计划中的位置要取决于企业在性能测试领域的成熟度。如果企业几乎或者完全没有这一领域的经验,就在计划中包括这一部分,否则可以将其作为附录部分。样例如:51Testing软件测试网3[b:c'I@2g
  51Testing软件测试网H(S+EX&Y,m2j,D`
  “制定性能测试方案需要大量来自IT与业务部门的信息。51Testing软件测试网0bS,d*GnB

6l/P f+l$RdC0业务方案51Testing软件测试网W,e+I)a*k(p*?|B
    > 业务方案首先要用简单的文本描述待测的业务过程。
S0e9hi?xB7U8?8Co0    > 然后业务方案扩展到一系列包含准确的数据需求的详细步骤。51Testing软件测试网7k{| Z.Jb
    > 最后直到当IT部门确定了应用/服务器的行为(比如缓存)需要(或不需要)哪些额外的数据需求,业务方案就算完成。51Testing软件测试网Sn5~L w

9m~ \@;L$K0预期吞吐量(峰值)
a`q-U&mp9]0    > 预期吞吐量首先要说明高峰时段和非高峰时段用户对某一业务的预期操作量。51Testing软件测试网;ig \8Kj:FH
    > 然后扩展到一系列不同的、终端用户可能无法分辨(或可以分辨)的业务过程。
f KzG)^4qX}0    > 直到IT部门确定哪些额外的因素(如果有的话)会影响到负载(比如负载平衡),预期吞吐量这部分就算完成了。

$B8G!@ q.L;tl051Testing软件测试网J%C!ly-h[X4kq\

验证性能标准(验证不同负载条件下的响应时间)51Testing软件测试网 fixA#{1y:iy$kzs
    > 性能标准验证是指在低、中、高负荷条件下可接受的业务响应时间。根据一天的系统负载情况为参考。这可以用其它的性能方案进行模拟。51Testing软件测试网@/\"_z4i
    > 然后性能测试团队便能用可测的系统事件对验证标准进行阐述。然后这些标准就提交到业务部门以供验证。
(p]LM|"PO Z,fKW.x0    > 直到IT部门确定了如何在性能测试过程中对系统性能进行监控,验证标准过程部分就完成了。这其中包括性能测试团队的指标。51Testing软件测试网}a(G4UK k/B9LN

51Testing软件测试网!_ K!e k$w

数据需求(方案与部署的具体内容)51Testing软件测试网*W@4f[9qd+S/b
    > 业务部门确定会影响到终端用户体验的主要数据部分。
e a4pj-Fk+t0    > IT部门对这些数据需求进行扩展以包含终端用户不可见的一些因素,比如缓存。
On i:\*|aB0    > 性能测试团队与IT和业务部门合作创建所需的数据存储库以支持性能测试。”

,m#CIR F0

E#c`4U.X+Kd0  性能测试的执行

$SQ,Gg U0

s(o^r$ZEY0  这一部分在测试计划中的位置仍然取决于企业在性能测试领域的成熟度。如果企业有大量的性能测试经验,那么这一部分可以作为辅助性的附录。样例如:
"mz.n0H5h9R!x)D _0  
b%fy G a q'KWIa0    “性能测试通常按照一定的顺序进行:51Testing软件测试网P0ib#Isp*d)\

M8aWcT jh0F!]I0  制定性能测试方案。
:\lJ'} O/LS0  根据制定的方案定义一天的负载。
0V}'jd.h-gQ5U~k0  单独执行性能测试以检测特定的业务流程中可能存在的问题。51Testing软件测试网7@~&BBh Z {#J4K+L
  以封包的方式执行性能方案,模拟一天的活动,并根据性能标准进行评测。
4Y%iWqJ0  报告性能测试的结果。51Testing软件测试网[i5] a![-i(x1M
  调节系统。51Testing软件测试网&K9p0a!]{%N+M
  根据需要重新进行测试。”
&y/q'z1^sa|Gy9{0  性能测试指标51Testing软件测试网 qJ7a9jXt

51Testing软件测试网e|1LOCQRTK`s

  性能测试指标是与性能测试方案中制定的性能验证标准相对应的。如果企业预备将其作为性能要求,那么就应该在性能测试计划中增加性能要求的部分。最基本的性能测试指标包括检测响应时间和给定性能负载下事务处理的失败率(如性能测试方案中所述)。然后用这些指标与性能要求对比,确定系统是否符合业务要求。

S TXn|*w0

\2M9gC)wZ6M0  结束语51Testing软件测试网!i a C&U5P@

51Testing软件测试网)O1|M0r#_ u"Q3S!G

  本文只能描述性能测试计划的一般情况,具体则要根据所测试的系统和情况而定。最后要说的是,许多非性能测试操作经常被视为性能测试——我喜欢称之为假寐的(warm-and-fuzzy)性能测试。如果你没有模拟预期的生产负载,那就不能说是在做性能测试。

R d4Q,\U4p;l9c0

f*u.zkW(F0
y$a7o9F6bb @)U0

)x g|8O3Bj3fx0

TAG: 性能测试 测试计划

 

评分:0

我来说两句

Open Toolbar