^*Pa:d[)_\0 相信本文会对处于下面两种状态的测试工程师朋友会有所启发和帮助51Testing软件测试网/CGq!c*e
51Testing软件测试网-d"i@"RiCp0t1. 正要但还没开始做性能测试的朋友,除了loadrunner,不知道从哪里下手
~e2MDs"ME2u051Testing软件测试网q8Le?Nw$?0A2. 已经开始做性能测试,正在被一堆问题困扰得焦头烂额的朋友。51Testing软件测试网_/Fxl2d-^
51Testing软件测试网d jek {IXA!S 51Testing软件测试网0{k\[C$R&rG
51Testing软件测试网K7C_3A`3S2Itk%L-|听说过有的工程师运行几轮性能测试,就能迅速定位性能bug;更多地是听到某工程师运行N多次,就是不能复现问题,甚至整个研发部门开发人员测试人员齐上阵,都无法找到性能问题所在。这是为什么呢?是运气不好么?还是技术能力不强?
LV?'CHi051Testing软件测试网6G)}/UX^r说说我看过的一个真实的案例:某大型外企的产品上线后,当用户数超过某个值的时候,在线的软件系统就会重启。这是一个严重的bug,但非常糟糕的是,在测试环境里,测试人员无论如何,都复现不出这个bug,研发部门的老总调用了精兵强将,包括众多开发骨干,苦苦搜索一个多月,也都无终而归,最后的结果是企业最终失去了这个大客户。其实这样一个大型系统,面对这种问题,别说开发人员,就是比尔盖茨来了,也无济于事。
-HRF!Sr?6j@051Testing软件测试网S3?c1EN显然这不是技术能力范畴内能解决的困境,怎样使得性能诊断变得更加容易和方便?这其实是一个软件开发要考虑的可测试性问题。51Testing软件测试网lcYc1_-V$p+V
1g*UM%b4w6Ee!C5^2`0对于性能测试来说,有必要在软件设计开发阶段遵守规范,建立一整套性能度量体系。体系包括51Testing软件测试网4f#yr,S
`0G M ^
51Testing软件测试网(|M'wB O ro1. 性能诊断日志51Testing软件测试网-H$|
iE;u;x
8`7n"[{$CeBL~02. 在应用系统层次上建立性能度量51Testing软件测试网$ACPj |`.sFB
f0e$]j_+\V"N03. 数据库系统性能度量51Testing软件测试网$V'T7U2k/z'O:L T
Ao&[ yMP~/P)E*r0
Dl ^\.v @051Testing软件测试网O~H6M!y3m&Q性能诊断log包括一系列log等级设置和log格式,使得性能问题能够在log层次上被捕捉到,比如下面是一个SMPP协议网关实现的log
&@5L^;vg8I@!C051Testing软件测试网JiBL9O'y
D OTimeStatistic --------51Testing软件测试网ep8L#tU J
Statistic name : EnquireLength51Testing软件测试网DSQ.eG P/C? z
Description : Time taken for a round trip ENQUIRE_LINK PDU.51Testing软件测试网[Rwb;v
Measurement unit : MILLISECOND51Testing软件测试网]O
CV|f
Measurement start time : 122421407488551Testing软件测试网:x)hXN4D*f1M{)]e
Last measurement time : 1224219511193
q\9l&]S6~/R0# times the operation was invoked : 351Testing软件测试网Z
r.Q6lO0]2{
max time : 19
@UkB}9Y0min time : 1251Testing软件测试网"eiSI)E(x
total time : 46
YaWu$T3wY4u0&DjpM%^^$v0在性能诊断模式开启后,软件程序就会每隔10秒钟打印如上信息,从以上信息可以很清楚地看到SMPP网管处理多少个PDU,每个PDU花了多长时间。这样会第一时间内捕获网管的性能处理效率。
6ST4i8c5C v5B@5`%Y"R051Testing软件测试网.Y#[R:E]grU8A 51Testing软件测试网VWC]IQ;lqB
51Testing软件测试网oMI#z(x*i3j,J在应用层次上的度量多种多样,根据应用的不同,也有不同的度量方法。比如我们最常见的web 处理能力一般用每秒请求数(requests/second),每秒吞吐量(throughoutputs/second)。其实针对每一个应用,开发人员都应该建立相应的度量。
0Vs.q7v-Xmc051Testing软件测试网-Lf9AK kh比如一个email 的IMAP server,我们为其建立如下度量
oizeInQK0'e'd'pf`!l:i*i0 APPEND Average Time (milliseconds)
e0s N7yr051Testing软件测试网E2J.l.]&iA$f APPEND Failure Rate (Failures/minute)
ix)qRe051Testing软件测试网mP
D!S8K Zc\APPEND Rate (Requests/minute)
S$oA}QU0B
r6?,SH(vN/I0AUTHENTICATE Average Time (milliseconds)51Testing软件测试网3uJF0n$of4i
51Testing软件测试网~"L.{{4cYUlAUTHENTICATE Failure Rate (Failures/minute)51Testing软件测试网7@g#R,ar
51Testing软件测试网4\cWk5[CO3K\f等等。51Testing软件测试网 k:V(vpOpg
51Testing软件测试网N%x:O
}5xNh7J+n一般地,度量要分为度量名,采集频率,预警值设置,预警信息等等。
.B"p:J#[iS
ALc:K0Vz^/_!z.I G0开发人员则遵循规范,在开发过程中实现以上度量信息的采集。
W/@
p)aD1X`0V8u0n(M)|FVd$C0
R.sE'|Av]6c,m0M%oO*\.[0在建立一个完善的性能度量体系后,性能的诊断和定位就变得更加容易,也完成了定性分析到定量分析的转变。
(?Tr6?^
G)f0{nLq&mOuXI0(有兴趣的朋友可以参看oracle的AWR报告,这是一个典型的基于度量的report)
nnw\3dW!Z:i0