WEB应用性能测试之需求分析

上一篇 / 下一篇  2011-12-09 10:51:15 / 个人分类:性能测试

51Testing软件测试网Hy)vP%L}V

以前在做WEB性能相关测试的时候,接触的系统主要都是J2EE架构,千篇一律,只是因为系统的耦合性问题会产生一些新的问题

j"|0^|[$z,{*D0

wL:x`c0。中间价管理和DBA技术和设备都很强大,所以我们做性能测试基本都是体力活,主要的工作其实也只是集中在测试需求分析上了51Testing软件测试网(@QQ,J(M D ?'K

51Testing软件测试网8jqw:|#oAw1b

。下面是一个我们公司养老险业务系统群的系统性能测试的简单分析指南,有一些通用的内容还是引用了一些前辈的经验。51Testing软件测试网m5l7WP)j ~9KY-i
 
51Testing软件测试网f\^X\

5UJe&L,P&_,Nn01.  编写目的1)  规范性能测试流程:
YaSQ L0(a)明确系统各方
负责人的责任,给压力测试、分析提供明确的依据。51Testing软件测试网Q gaB1ect
2)  提供测试分析思路:51Testing软件测试网f!H? |%M{ ];x
a)   便于开发、业务、测试、运营维护同事进行了解沟通,对测试合理性和
可行性进行严格评审,在测试方法上达成共识;
oEd8A q*mCU-c!z0b)   尽量在测试前就明确需要获取的资源和协助,以便及早完成,保证测试进度和质量。
cehfK)a fy0c)   有效引导开发组和用户对性能测试形成正确的认识。
~1lP$`BF(Ri+`02.  简单介绍本文简单描述了应用系统性能测试开始时开发、业务、测试、运维人员等同事需要提供的支持和数据、测试方案设计

1S[ w!e;B7X051Testing软件测试网IT fepEa

时测试人员应开考虑的事项和测试结束时结果分析的简单指标要求。
"P:YZ0I)^;HTc$m4f03.  主要内容1. 需求获取A. 用户需求:
0X(^Y+G'X,[6}K0由用户提出他们自己认为必须达到的指标要求(根据SLA协议),并且简单归纳出典型的系统性能所体现的方面,例如:51Testing软件测试网:WElBbX8@:r
1. 上传下载、批次打印处理时间51Testing软件测试网;N~5QgH5{
2.页面初始化、打开工作台时间
"ajx#P)h |dBg03.批量数据提交写入处理时间
p4Z!FqS!}04.高频使用查询
功能响应时间51Testing软件测试网.V+b)t,Wru U
5.机构数量以及操作员比例
/BSBu;Qh/_eF06.明确服务类型:5*24、7*24、7*8、5*8……51Testing软件测试网0Vka6?(m X
7.业务前景以及发展速度(综合以上得出并发量)51Testing软件测试网pE.L)]2E1m!C2Q
B. 开发分析:
y5?b eLJ g4]0[5A0开发组同事对用户原始需求评估的时候可能会考虑的关键点:51Testing软件测试网?$ra2t Ws
1.系统逻辑设计复杂度
nae%[6y`02.数据库设计复杂度
G/f2j*mr hP n03.工作流设计复杂度
9em;Sy __ f0C. 系统运维:
zf Q5DZ-f3J a}3cy0应用服务组同事需要提供相关的数据和要求,例如:
`8Bls.s4C01.生产数据集中分析:51Testing软件测试网3Uk+T^F(YQ5k{
a)统计年数据量
Zx\n/J(_0b)高峰时段最大值
q6x3JN.~5k \.e3z_F0c)或者直接给出年度关键事务(.do)统计表
^[ jg6L9J*E I02.敏感操作提示:提供相关性能多发时段、功能点等(历史经验)
8t Pq+qqo03.定时任务、JOB等在不同业务时段消耗系统资源比例对比51Testing软件测试网R#u9o u ~
(b)测试准备51Testing软件测试网8T Dn:o%t
1.组织评审(需求、方案、测试数据、场景)
&x7s,},H FD%a'y:bL02.功能点选取
].pSD h x2}03.环境搭建、硬件资源(明确测试目的,特殊需求特殊对待)51Testing软件测试网 M3X*i+cF'U&B
4.监控申请、服务器使用协调(立项之初必须完成)51Testing软件测试网(s"bb Cy2R
(c)测试需求分析
o4UW:II A8?s01.2-8原理:
A,J BF!By.zX0每个工作日中80%的业务在20%的时间内完成。每年业务量集中在八个月中,每个月有20个工作日工作,每个工作日有8小时,即
51Testing软件测试网 ^ d I2T6J(~

51Testing软件测试网W&kl%K/XNKi3{

每天80%的业务在1.6个小时内完成。例如:
#b{O4iL lF p02.需求描述:51Testing软件测试网1g y-l;r4k#_:z
去年全年处理业务约100万笔,其中15%的业务处理中,每笔业务对应用服务器提交7次请求;70%的业务处理中,每笔业务对应
51Testing软件测试网9_2AH8iAT

b7R8f'B D p oe HK t0用服务器提交5次请求;其余的15%的业务处理中,每笔交易对应用服务器提交3次请求。根据以往的统计结果,每年的业务增量

`H`/mP$N:n0

,}"rfZ1C X/U"cd0为15%,考虑到今后3年的业务发展,测试按照现有业务的2倍进行。51Testing软件测试网&n8X3L.Z?&Zx
3.测试指标计算如下:51Testing软件测试网 \i#fxO Gy
a)每年总的请求数:51Testing软件测试网 g4rf)KA3^
(100×15%×7+100×75%×5+100×15%×3)×2=1000万次/年51Testing软件测试网!Cl Nhv9A q.vE
b)每天请求数:
L4D,c/P'Y5n01000/160=6.25万次/天
(W1E~d!mP0c)每秒请求数:
EQ{*eKW-LJY/@:Q"s#V0(62500×80%)/(8×0.20×3600)=8.68次/秒
"e%T'q*_`{9OK j04.即服务器的处理请求的能力要达到9次/秒(TPS >= 9),其他指标以此为例。
%U['DI#yRz0(d)测试功能点和场景
3aglC!Se$P5M01.功能点
J9R0jnk|*@0a)业务统计中几种典型业务的比例51Testing软件测试网I1zn*d/H6Mn"c
b)调用频繁、占用空间大的数据库表的交易51Testing软件测试网*l3cG_ Y{A3D5`%k7DC&\0Fw
c)占用最大存储空间或其它资源的交易
]4U6Lj u nM0d)对磁盘、常驻内存的数据过度访问的交易
N,@6fX)}Mz0e)直接针对每个需求点选取功能点(如上载响应的测算选取上载操作最多的功能)51Testing软件测试网$uJBC-C8L5y.~"uS
2.测试场景定制分析
rE3\!gPq @%]$}$A wof0a)考虑业务类型,单行任务:打印、查询等,串行任务:契约出单、保全、理赔等等,针对不同业务操作类型决定单点、串行测试

%NkF*T8V.}8rbS0

2mDI ~ HEB051Testing软件测试网 \A%n'k"Me]+q
b)尽量不要单点独自测试,因为很多操作是否存在互锁情况必须多用户同时操作才能发现,单点测试往往会忽略掉这些问题;51Testing软件测试网%b^$o{$rr,qp\:k)i
c)测试用户尽量使用多个,例如100个并发使用100个UM用户,而不要使用1个用户虚拟多个,以免用户退出时其他的操作受影响

;E9a8m:W8b6OZ051Testing软件测试网T/JSkZEsTl*v{

,而且这也关系到CIF2同步和F5负载均衡的机制问题。
#Rb la+H0根据具体情况决定是否使用集合点,尽量考虑实际情况,一般情况下,内网使用系统50个用户及以上不建议使用集合点,由经验
51Testing软件测试网fr Y8y*G

51Testing软件测试网'p^ML&u

值可以看出这样操作基本不会发生,这样测试的意义不是很大,反倒容易使应用系统及其关联系统服务受很大的影响;而公网应用51Testing软件测试网Ph]_:\Y3xx`Q&q

51Testing软件测试网D5{@8w G+^ |"Vp

系统(如PA18等),则需考虑使用,因为客户使用公网系统的时间比较集中(如中午下班时间),而且用户很多,很容易对应用51Testing软件测试网QjM`W9qj(G

V8fuAs3w&uv0系统产生很大的浪涌式冲击,这点测试时必须考虑清楚。51Testing软件测试网6g5|[sSq

ngGo%I!NOC0(e)测试结果分析51Testing软件测试网3k+FA|QCIq
A.      交易处理性能评估
a.T1vsT5I0a)        并发用户数
-q%K$oD#s7\ t$h0b)       交易响应时间51Testing软件测试网J0G2y0Ic+S%{
c)        交易通过率
H`2`sF4D0d)       吞吐量51Testing软件测试网l4`Z cO ~Xk Gc
e)        点击率
3Qv[%HD6tsR0B. 资源占用
6v8C+N%Op0a)        CPU
2DeMn7J$X[ L0b)       Memory51Testing软件测试网&Gpzw_C-o(^
c)        Hard Disk51Testing软件测试网,Zk3w:Sk.n i x
d)       Network51Testing软件测试网:FW6ZtE0VK
C.      性能监控指标及常见问题:51Testing软件测试网D3\z$])x"?idkhG(U,f
a)       内存:51Testing软件测试网\.y8[+dUiu
a)        UNIX资源监控中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,

C5E Z2F"` m }051Testing软件测试网7\ gvE)\

则内存可能是瓶颈。也可能是内存访问命中率低。51Testing软件测试网0h#s/` W3fK
b)       Windows资源监控中,如果Process\Private Bytes计数器和Process\Working Set计数器的值在长时间内持续升高,同时

S3Nbp[&aK7n0

9U(F"s(` G*iF+U0Memory\Available bytes计数器的值持续降低,则很可能存在内存泄漏。
6v$V5z.^&u3j|R0内存资源成为系统性能的瓶颈的征兆:
B0K [V$U5s-b01.        很高的换页率(high pageout rate)51Testing软件测试网,Rs%n OiEPxg
2.        进程进入不活动状态51Testing软件测试网vC;Y r7[2}
3.        交换区所有磁盘的活动次数可高
^^%B,w y6z-p/YV0P04.        可高的全局系统CPU利用率
OPvG `6?&x(zj05.        内存不够出错(out of memory errors)51Testing软件测试网(N] L${Z8oD"R
b)       处理器:
Ml YS;m)U ^0a)        UNIX资源监控(Windows操作系统同理)中指标CPU占用率(CPU utilization),如果该值持续超过95%,表明瓶颈是

P1kS_9dB I#W0

O q5m&k1z$YQ0CPU。可以考虑增加一个处理器或换一个更快的处理器。
5m4o ^y\ o[0b)       Windows资源监控中,如果System\Processor Queue Length大于2,而处理器利用率(Processor Time)一直很低,则
51Testing软件测试网\8k#W U8?^]9dy8_k

51Testing软件测试网3`1N{`'p#\S

存在着处理器阻塞。
F/X qx$p)]0CPU资源成为系统性能的瓶颈的征兆:51Testing软件测试网l9jIyf`1e
1.        很慢的响应时间(slow response time)
FwS9d'\ h"C6fC02.        CPU空闲时间为零(zero percent idle CPU)
/QJ7q6x9}H~03.        过高的用户占用CPU时间(high percent user CPU)51Testing软件测试网5W0w5b~5mZ ix
4.        过高的系统占用CPU时间(high percent system CPU)51Testing软件测试网%Cm|%h+HM C Ch6W
5.        长时间的有很长的运行进程队列(large run queue size sustained over time)
vN"UkM tzu5dm0c)        磁盘I/O:
'u X@e"o&g0a)        UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate),如果该参数值一直很高,表明I/O有问题。可

Hb Z:x{/u@)`|e051Testing软件测试网-T&~YjW}!s7D0O

考虑更换更快的硬盘系统。51Testing软件测试网#g3O/C0ff"q8S+p
b)       Windows资源监控中,如果Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,
51Testing软件测试网cjN!WGoA

51Testing软件测试网a7G W5D3Qlb

则可能存在磁盘瓶径。
#G)~Z(`?.yC!dz7|0I/O资源成为系统性能的瓶颈的征兆:
B]9N2cB_ W k01.        过高的磁盘利用率(high disk utilization)51Testing软件测试网plhNce
2.        太长的磁盘等待队列(large disk queue length)
{M@(kQ z03.        磁盘I/O等待的时间百分比太高(large percentage of time waiting
fordisk I/O)
&G.DO&Y*C"D*M04.        太高的物理I/O速率:large physical I/O rate(not sufficient in itself)
*d*Z FgIN8`5q05.        过低的缓存命中率(low buffer cache hit ratio(not sufficient in itself))51Testing软件测试网%x"]|9^h5Ek&eye e
6.        太长的运行进程队列,但CPU却空闲(large run queue with idle CPU)51Testing软件测试网4v ~"w*@L
d)       数据库服务器:
~8_NHG([*q3O5UR0目前我们公司的应用服务一般都使用Oracle服务,故下面只针对Oracle进行简单分析:
k SeDIr^*E0a)        如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。
gy Nc!N m:{f0快存(共享SQL区)和数据字典快存的命中率:
$^nM R _)IvJ0A0  select(sum(pins-reloads))/sum(pins) from v$librarycache;
(?/A|n3~%q0  select(sum(gets-getmisses))/sum(gets) from v$rowcache;
[8NH?+p|:V0 自由内存:
0cN4H:o6t#|)o lpY0select * from v$sgastat where name=’free memory’;
'fT4os,S(OV0b)       如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。51Testing软件测试网K/V1p#^+HM7U3w
缓冲区高速缓存命中率:
(^-[#U*xe&m-yZ0select name,value from v$sysstat where name in ('db block gets’,
p"v,vM1@k+?0'consistent gets','physical reads') ; 51Testing软件测试网5V ix!yr5}%]
Hit Ratio = 1-(physical reads / ( db block gets + consistent gets)
2@ xs-nF(D"|N SW0c)        如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。51Testing软件测试网i;QB9rYj,J
日志缓冲区的申请情况 :51Testing软件测试网%{8D1bj5F
select name,value from v$sysstat where name = 'redo log space requests' ;51Testing软件测试网W@y JM r
d)       如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序。
/Z X9_|X;M\0  内存排序命中率 :
Sy[*]~})?p0select round((100*b.value)/decode((a.value+b.value), 0, 1, (a.value+b.value)), 2)from v$sysstat a, v$sysstat b where

J*E%xN+|\051Testing软件测试网O {G#g D*I6sH1{%H'a`

a.name='sorts (disk)'andb.name='sorts (memory)'51Testing软件测试网I8l;m)Ik#C;^~5T;L
51Testing软件测试网0[ f2aAM)l


TAG:

 

评分:0

我来说两句

Open Toolbar