如何制定一份详尽的性能测试计划
上一篇 / 下一篇 2008-07-19 08:52:12 / 个人分类:性能测试
进行任何性能测试之前,都需要制定一份详尽的测试计划,从业务角度到技术角度详细地说明性能测试将如何进行。一份性能测试计划应该至少包含以下方面:
{"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.TN
f ]6R.lJ!t0yG0 性能测试方案 51Testing软件测试网
N)g#n6Z1`+_+Jl
性能测试的执行 51Testing软件测试网6^8QY_Af!V
性能测试指标
'l?a9s{+f.nJ0 和任何测试计划一样,这份性能测试计划的文字要做到尽量精简,可以使用列表清晰明确地将信息表达出来。这将减少因为沟通问题产生的误解。
y,T3m:P+P0 总体方法
'P|}/z;b#tZ7l00zo
fMu0{Kq*w0 这一部分是指用非技术性术语将性能测试的总体方法描述出来。目标受众是管理部门与业务部门。样例如下:
Q]\/c q0 51Testing软件测试网/ml1dan;~VKA$X
“此性能测试方法主要用来对新部署的系统所支持的业务过程进行测试。通过部署这次性能测试,我们将:51Testing软件测试网!u$V]&h9?
以减少这次新部署所带来的性能问题为主要目的。
*oA+`/l/lxN4]R
?0 做出基本的运行假定,确定部署中需要进行性能测试的部分。 51Testing软件测试网4Gpm6I6SV.B[`,RK?
就这些假定取得一致意见,决定性能与压力测试的适当等级,并在有限的任务时间内完成。 51Testing软件测试网@
c:eQ1I2q)WPo]
这份文件是即时更新的。随着我们收集到越来越多的信息,并就适当的性能测试方法达成一致协议时,将再次更新这份文件。”
依据与基本假定51Testing软件测试网z(l[z,ZSJ8x3r+W
Ck6}i7r
k4op6`0 在这一部分中,要清晰地描述测试前必须满足的依据(必须完成的任务)与基本假定(测试时假定为真)。样例如下:51Testing软件测试网0z/F_2kg
J#E)}$Dy
jp3{_
mvRuO0 “继续部署任何性能测试之前,必须满足以下条件:
要进行性能测试的组件必须能完全正常运行。
0c_%w,W-g0 要进行性能测试的组件要安装在可以代表(或按比例可调的)预期的生产系统的硬件或固件中。
V0[,j7nzy f/Iv0 数据存储库要能代表(或按比例可调)预期的生产系统。 51Testing软件测试网1r4z}n}d4g4u
有确定的性能测试目标,包括运行情况的假定与测试方案。 51Testing软件测试网@&l!H9['|
安装好性能测试工具并提供所需的技术支持。”
[
TkX#B0 性能测试前的操作
这部分要清楚地说明在正式进行性能测试之前为确定系统已经就绪而进行的预测试操作。相当于功能测试中的烟雾测试(smoke testing)。样例如:51Testing软件测试网lW ztHTqY|xI
`5^N1E
n$?)w'vp0 “为减少性能测试中的风险,可以进行几项预测试操作:51Testing软件测试网c(v;l7G8aB8{:~H
在质量保证测试环境下利用‘桩(stub)’或‘实用程序(utilities)’测试事务处理能力,即投影最大负载(projected peak loads)。
zN1gT%UKi0 用‘桩’或‘实用程序’代替无需测试或只需进行有限测试的B2B类事务。这将取消任何关于B2B事务的依据。 51Testing软件测试网:AB}8_bIi
用‘桩’或‘实用程序’代替性能测试中无法使用的内部组件。这将移除所有关于此类组件的依据。 51Testing软件测试网pp6F ^'i
在所有大规模服务器上部署合适的性能监控器。”
b"@gs!z-rC0 性能测试方法51Testing软件测试网I;oar(p
这一部分是前面总体方法的扩展,但考虑到了业务与技术两个方面。样例如:
V Z)F2[4P(xJh+b0 “本性能测试方法主要用来测试新部署的系统的逻辑。通过部署这次性能测试,我们将:
%K-JF|zY0 以减少这次新部署所带来的性能问题为主要目的。 51Testing软件测试网H.v*[%d7i
做出基本的运行假定,确定部署中需要进行性能测试的部分。 51Testing软件测试网'T2Wk5O\4ND.V
就这些假定取得一致意见,确定即将完成的性能的适当等级。
g-lE\"^,EW0 使用可以模拟预期生产规模的一流的性能测试工具。 51Testing软件测试网OKR&P/]
模拟需要进行性能测试的组件(将在生产中使用的组件)构成测试环境,检测所有异常。 51Testing软件测试网!d{o#go
在性能测试期间同时使用生产与非生产(测试)监控器器检测系统的性能。”51Testing软件测试网;d|qb+t3B"x
:D6OF'J2A J0性能测试操作
%sR6^D/W6] X-}/U3_051Testing软件测试网N phg)fQ B H+X2o.u 这一部分详细说明了性能测试中所进行的操作。样例如:51Testing软件测试网F||
d%h1p,Dr C
51Testing软件测试网d5}0FJ{,_9b3j
“性能测试中将进行以下操作:
u6UzQ8qn0 根据既定方案对系统进行合适的负载测试。方案包括:51Testing软件测试网/L$W@4G-F\
> 用户操作(业务流程)
yeAadaF+m0 > 既定负载(每分钟的事务处理次数)51Testing软件测试网;y?2U2?8~ j
> 既定指标(响应时间)51Testing软件测试网9Z.eC:V\'jd
*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+i5OV6gj,w+G&w0业务范围内的过程
f D8KNUa&?oL\051Testing软件测试网 h5RjW6M%Z N1Kw 这一部分指定系统的哪些方面属于业务范围内(基于标准)。样例如:51Testing软件测试网Z0}c
R]!\9a
n^Q5b0p0 “性能测试时将以下过程视为业务范围内的过程:
用户注册
0T5R3Hu{,w7]0登录/访问
9z{P*c7h;e,z)X+\0用户对内容进行浏览
-y8B_Va0D3s?(D7k,{0销售条款与执行
.X$u/Ux\.Op0账目计算51Testing软件测试网u9NIp6`8x*s+q0L
业务过程目录与以下人员商议制定:业务分析员、市场分析员、基础组织和业主。”51Testing软件测试网BC T };u)d1}
}
Ae/O3s {)T$vUC0 业务范围外的过程
|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[
> 前提:信用检查将委托第三方进行――因此不会对性能产生明显的影响。
,}~e3| T1C0所有在当前未被列为业务范围内或范围外的业务功能。
M G#t
B+QL:f sP0 > 前提:所有未在本文件中列出的范围内或范围外的业务都不会对业务产生明显的性能影响。”
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部门确定哪些额外的因素(如果有的话)会影响到负载(比如负载平衡),预期吞吐量这部分就算完成了。
验证性能标准(验证不同负载条件下的响应时间)51Testing软件测试网
fixA#{1y:iy$kzs
> 性能标准验证是指在低、中、高负荷条件下可接受的业务响应时间。根据一天的系统负载情况为参考。这可以用其它的性能方案进行模拟。51Testing软件测试网@/\"_ z4i
> 然后性能测试团队便能用可测的系统事件对验证标准进行阐述。然后这些标准就提交到业务部门以供验证。
(p]LM|"PO Z,fKW.x0 > 直到IT部门确定了如何在性能测试过程中对系统性能进行监控,验证标准过程部分就完成了。这其中包括性能测试团队的指标。51Testing软件测试网}a(G4UKk/B9LN
数据需求(方案与部署的具体内容)51Testing软件测试网*W@4f[9qd+S/b
> 业务部门确定会影响到终端用户体验的主要数据部分。
ea4pj-Fk+t0 > IT部门对这些数据需求进行扩展以包含终端用户不可见的一些因素,比如缓存。
On i:\*|aB0 > 性能测试团队与IT和业务部门合作创建所需的数据存储库以支持性能测试。”
E#c`4U.X+Kd0 性能测试的执行
$SQ,GgU0