欢迎交流测试经验

性能测试开展指导 (转自CSDN博客)

上一篇 / 下一篇  2007-06-05 08:55:11 / 个人分类:技术文摘

查看( 141 ) / 评论( 3 )

本文档从性能工程的角度提出开展性能测试工作流程,和进行性能测试工作的策略,下面我们讨论性能工程的需求阶段、设计阶段、实施阶段、产品部署阶段、维护阶段所要开展的工作,和相应要采取的策略。TestAge 中国软件测试时代/Nq8G"nzl

2.1性能测试需求的确立

2.1.1         性能测试需求的来源

性能测试需求的来源有三个方面:TestAge 中国软件测试时代2~!nep"Vm9\ ]

1、 需求文档TestAge 中国软件测试时代WdkH[od

2、 设计文档TestAge 中国软件测试时代dH$a S+u,nOj

3、 客户备忘录TestAge 中国软件测试时代nh I!@8b#i+E@b

 TestAge 中国软件测试时代$r4C|'M b KV0yx$o4j)q

2.1.2         确定性能测试需求的解决方法

在没有需求文档和设计文档的情况下,我们需要对TSP系统上的客户业务使用情况进行分析,提出我们所关注的性能测试需求,并告知业务人员。让业务人员来判断我们的性能需求是否能满足客户的真实要求。

.xr`e8@N\N0

在通过TSP系统分析业务使用状况时,我们可以从以下方面来关注:

Gx{7z)m FA3D0

1、确定当前系统的业务使用状况:通过TSP的日志记录-客户端模块使用情况了解在某个时间段内,客户执行某个操作的具体情况。TestAge 中国软件测试时代j.K5v/o6`V

2、了解不同视角的用户性能:

%E"xE8U|%K:y3w0

ⅰ)用户视角:TestAge 中国软件测试时代2kyW%f nN,j

响应时间:用户所能感受到的响应时间,也是用户最重视的性能体验。

d$V%k(dh]Y!?y+SH0

       确立响应时间的原则:2/5/10原则TestAge 中国软件测试时代g2oL'^*R\A

                           22秒钟用户会觉得是一个很好的体验。TestAge 中国软件测试时代qMmX/Z"BX

                           55秒钟用户可能会觉得差了一点,还行,比较好。

Hk6s%W#Ol2v0

                           1010秒钟是用户所能承受的最大极限。

"lC3A;[@6A@%bN4~0

鉴于不同地区的网络环境,将用户所能承受的响应时间极限定为1215秒。TestAge 中国软件测试时代(o,t|2W2O%d ~D

此部分需与业务人员讨论。

0mm}"`$D-Um~0

稳定性:系统长时间运行不会出现错误的能力。TestAge 中国软件测试时代F+_ea2L5xE#x

验证方法:系统在满负载的运行8小时,系统是否会出现服务不可用,Connection Refused

H"w F i js0

     HTTP 404,500错误。TestAge 中国软件测试时代_[@Sr5t^

ⅱ)系统视角:延迟,系统资源使用状况

3qoV*V1p:{/Q'r0

             延迟:包括数据库延迟和网络延迟TestAge 中国软件测试时代.wK*LO6mX_eYx0w

此部分需与DBA及系统部人员讨论。TestAge 中国软件测试时代%s @/d5E2a-`$PY

             系统资源使用状况:服务器的CPU使用率是否长期高于80%,达到90%,100%的程度,整个磁盘的I/O是否达到极限。内存的使用数是否只剩下极少的几兆,几十兆。

fj\"i2F I(a6t B0

ⅲ)开发者视角:从代码实现和数据库实现来考虑性能。看看这两方面得到实现是否足够好。TestAge 中国软件测试时代z&Ke ^+ZRf9C

3、了解真正的性能测试需求TestAge 中国软件测试时代0b}4~'Bi

方法:ⅰ)识别项目干系人:指的是和项目相关的人,开发人员,设计人员,需求人员,业务人员,上层领导,了解他们对性能测试的考虑。

j[xL[w&@$Q0

     ⅱ)隐藏在“性能测试”之后的实际想法,比如:是因为开发人员对所完成的代码没有信心,又不愿意做修改,要求我们对其所作的程序进行性能测试,还是设计人员使用了一项新技术,心里没低,所要求作的性能测试,等等。TestAge 中国软件测试时代\'P4I GJ

 

'|1}dd*|*C7e#B0

2.2确立性能测试目标

2.2.1         确立性能测试目标的原则

1、以“需求”为本

3N/@V|S%q2_0

考虑系统需不需要作性能测试,性能测试的内容和范围。TestAge 中国软件测试时代B ~"} ~E{!i'`;J

 TestAge 中国软件测试时代GJnL#X%u

2、测试目标确定的经济性考虑

;y9EllG9b0

ⅰ)投入到性能测试的人员是多少?

jT/o6AA @isv0

ⅱ)具备可以确定性能测试需求,制定性能测试方案的人员是多少?可以执行性能测试的人员是多少?TestAge 中国软件测试时代7A(F%?;P?YT7~w(h

ⅲ)这些人员需要投入多长时间?

;z+\ m#D1GY%Lz0

ⅳ)所要开发系统的运行环境和设备,这些设备的配置对于性能测试的影响,比如说:tomcat4.1应用服务器,它的配置文件缺省的jvm的使用空间是64M,一个机器的内存为1G,我们将jvm的使用空间设置为512M对性能测试的影响。TestAge 中国软件测试时代/d2mL1IH

ⅴ)内部的人员无法满足性能测试的要求,通过外聘,采用外聘的方式,公司所能承受的成本是多高。TestAge 中国软件测试时代_K'uL pp9c0|pL~

 TestAge 中国软件测试时代7bW.^2L(]td s

3、基于风险的测试目标确定

g"X;WR6k6m,j/v0

ⅰ)系统如果不做性能测试,会有多大的风险,如果在性能指标上达不到用户的要求会有多大的风险。需要进行评估

*M6H ? h2T0

ⅱ)如果做性能测试会有多大的风险,性能测试的投入会有多大,会有多大的风险需要进行评估。

"U N:H+W"F!k.N:O0

2.2.2         确定性能测试目标的方法

我们要确定系统的吞吐量和并发用户数的设计目标可以采用以下三种方式:TestAge 中国软件测试时代 [$LH.m] o

l        确定在某个特定时间端内,估计系统会有多少用户同时访问

B;@q|m\0

l        在某个特定的时间端内,正在访问系统的用户的典型操作是什么?哪个页面的访问量最大?TestAge 中国软件测试时代@wC0wvM

l        在某个特定的时间端内,系统需要处理多少种用户场景TestAge 中国软件测试时代3GV3?x??4V~1H

这些数据可以在系统服务器的日志文件、TSP监视数据种找到,也可以通过监视数据库的活动情况来获得。

,DAU)Df3y0

2.3不同阶段的性能测试目标

2.3.1         设计阶段的性能测试目标

设计阶段的性能测试目标为考察系统是否满足预期的性能要求。

(zB D/hM,l0

 

.geW){(?E8_0

 

pC+\zg0

2.3.2         开发阶段的性能测试目标

ⅰ)将开发阶段的性能测试目标作为对系统进行调优的参考:考虑在每个开发阶段,性能是否能够达到标准,考虑当前阶段的性能瓶颈,及其性能瓶颈出现的原因是在于数据库访问(SQL语句或者存储过程写的不够好)还是其他的原因。

ykx4j\c0

 ⅱ)用性能测试手段发现系统存在的问题:通过模拟真实场景,发现在现场测试中可能存在的问题,比如说:用户数的突然增加,导致的应用程序崩溃,服务器崩溃的问题。

a,i#TY GB0

 

0B7d-J4SWFi3V0

2.3.3         产品部署阶段的性能测试目标

提供部署方案的参考,确定合适的硬件设备,虽然更高的设备可以获取商业上的利益,但应考虑客户的具体情况。

IQ+i3OL"wM1|k0v0

2.3.4         系统维护阶段的性能测试目标

考察系统的可扩展性:从系统的视角考虑,在用户数扩大,在业务量增大的情况下,是一个怎样的表现。

ic*kb ^o8i"P,I0

 

u9f/T BRtd"Z|0

 

9dd8ce`5Wi0

3         设计阶段

3.1性能测试方案的确立

在确立性能测试方案之前,需要作的工作

%H~(] bJL3g*m#y3X0

1、确定测试目标和需求TestAge 中国软件测试时代BD8e7WsnP5gal

这里的灵活性比较大,与性能测试成败有很大的关系。TestAge 中国软件测试时代mk E5^ ?_

 

(sRj;H@"H-X0

2、了解现状

c(E9W qX#I0

ⅰ)业务使用状况TestAge 中国软件测试时代O,OQ8C$eG:]

通过日志记录,在某个时间段内,用户的操作。

p%@'X;B)v&J}E&iBB0

ⅱ)了解环境:包括网络条件,服务器条件,软硬件条件,应用服务器环境及各种配置信息。

"Z$W+l}d%{ ]/j%C0

 

j~#R5_"ST;?7E&r0

3、确定需要监控的指标:

%X+u+f(k2^eE? aJ0

ⅰ)CPU使用率TestAge 中国软件测试时代4Q$I7\.p6~/MP;S

ⅱ)内存使用情况TestAge 中国软件测试时代:M*~2L(j M!E C.t

在此应优先监控应用服务器的性能指标。对于Tomcat或者Weblogic来说,监控他的JVM使用状况,连接池的连接数量,内存使用状况等信息。对于数据库来说监控cache的命中率,索引的使用状况,数据库的连接数。

le5m5C6t} Q/X*ld'z9L0

 

E`d&yHv0

3.2用例和场景设计

用例和场景设计的步骤:TestAge 中国软件测试时代+P5h,i?6P!_+pv

1、对业务的分析和分解TestAge 中国软件测试时代,O2^%n#}h6I O/b

2、根据业务确定用例TestAge 中国软件测试时代1b5vf X2x7~-g+Iq

3、不同用例按照不同的发生比例组成场景 

"o0U%T U `5fD h8?7M0

4、了解每个场景的实际意义(对场景执行测试,收集结果)

K}']x0mb5F2a0

了解业务的分布情况,根据业务确定用例,在设计用例的时候,根据前期收集的数据,设计不同的场景来组成用例,并了解每个场景的实际意义,执行场景,收集结果数据。

"f O I C-TI ]*D2^0

场景设计的例子(主要是根据业务的使用状况):

'AJEvzQK/R0

l      场景110%登录,10%入库,30%订单,20%出库,30%查询(1000用户)——日常

'V"G,D5u%@L?0

l      场景210%登录,90%查询(400用户)——周末盘点TestAge 中国软件测试时代3@_vFL2p4S

 TestAge 中国软件测试时代:L J?~st

3.3设定需要监控的资源

设定需要监控的资源主要有一下几个方面:TestAge 中国软件测试时代.AIB7RCs0H

1CPU利用率

2H,T1N9K%U4S0

2、内存使用情况TestAge 中国软件测试时代 Rf5N1H7Xz_

3、数据库监控TestAge 中国软件测试时代Vp-ipXL S

4JVM使用状况监控TestAge 中国软件测试时代 NBf*` { n!Z.\H

应优先监控应用服务器的性能指标。对于Tomcat或者Weblogic来说,监控他的JVM使用状况,连接池的连接数量,内存使用状况等信息。对于数据库来说,cache的命中率,索引的使用状况,数据库的连接数,具体的监控指标请性能测试工程师,根据性能需求确定。

1gq`_ INRyt0

 

y~}y?0

 

/\|^&EU0

4         性能测试的应用领域

40系统性能测试的主要应用领域是验证能力、性能调优。

s"U fS(xC*a(rXf'O$R0

1、验证能力包括TestAge 中国软件测试时代L#F1mfxzvO

ⅰ)验证新的系统,新的架构能否满足用户的需求。TestAge 中国软件测试时代 KI@$wlu

ⅱ)向用户提供性能测试报告,说明系统的性能达到了预期设计的标准。

&vcPF Am%u0

ⅲ)确定新平台的产品架构,假设以前用ASP,现在用.net,或者换到j2ee平台上,验证新系统架构是否满足性能要求,这个要求不是用户提出来的,也不是直接用户体验的,而是在架构设计过程中要确定的指标。

2K|r.b,d'FV0

 

d,@ ww7~t%q0

2、性能调优

,}7Wr.ep6S0

在系统开发过程中,通过性能测试,了解当前系统瓶颈(比如说在于数据库访问,SQL语句或者存储过程写的不够好,或者说数据库设计的问题,索引做的不够好),所选择的应用服务器有问题,或者说代码这一层,业务逻辑实现的不够好,导致它性能的缺陷。以确定问题出现在应用层,数据库层,代码层。

:w@/g-Q$?0

 

:\%x]F[+C;l0

5         实施阶段

5.1分析影响性能因素的步骤

将影响性能的因素按照以下顺序进行判断:TestAge 中国软件测试时代 ]`*nF Vnx,}_%B

1、网络状况

Hk!K4dn/i @ Z0

2、硬件设备

Kk:M&b9?AZ4b,F/L0

3、系统/应用服务器/数据库配置

!b)k.b$e AB'k$\0

4、数据库设计和数据库访问实现(SQLSPTestAge 中国软件测试时代(q[(l9Z){![

5、业务的程序实现TestAge 中国软件测试时代Eu7t6V"So f9W"B

 

,x(i5q'{/r-w%q$c:]h-X`0

但是在开发阶段做性能调优时关注的顺序:请更多的关注SQL一级和代码一级。

GZgo(?w0

若是对于一个实际在线上运行的系统,请直接按照以上5点的顺序。TestAge 中国软件测试时代 S"GZ8A.NH

 

^[/y3TG ??0

注:很多的性能问题,是由于应用服务器的配置完全不合理,比如:tomcat4.1的应用服务器,没有修改它的配置文件中缺省的jvm的使用空间。TestAge 中国软件测试时代)_i:F$B |zh$yj*b3U

 TestAge 中国软件测试时代p GgZ%^DZo

5.2开发角度性能问题的原因

1、对所使用的技术不熟悉

i d2SA RLl1_0

这是影响最大的因素。对于.net平台,j2ee平台的架构不熟悉,开发人员对于有哪些架构和哪些模式对于性能会有影响不了解,建议开发部门做一下调研。对于性能测试工程师来说,应多了解一些平台的知识,平台的性能。J2ee的平台和它的性能问题是怎么产生的,如何来调整它的性能。

%h3LNw6G(w0

 TestAge 中国软件测试时代!Air7aW/z/Ik:_

2、系统架构设计的不合理

#Pq6B m D/?,G2l)uf0

 

|GS?8r0

3、程序员的实现错误

c*A4C b+clV t0

 TestAge 中国软件测试时代`?}2`;D z x

6         产品部署阶段

产品部署阶段的性能测试主要用来确立客户需要什么样的硬件配置。

p3N g,iC e0

 

S t0v `*D!m0P0

7         维护阶段

维护阶段的性能测试主要在于考察系统的可扩展性:从系统的视角考虑,在用户数扩大,在业务量增大的情况下,系统是一个怎样的表现。TestAge 中国软件测试时代q,s1W q)s]]

 TestAge 中国软件测试时代+ab ~l;c&o$Cc Z1I

 TestAge 中国软件测试时代#qBz#o/r Ezr

 TestAge 中国软件测试时代2_(n9}u U1F:uW

 

w s*{y-P8k%ot6a0

8         性能测试的策略

鉴于我们当前的性能测试工作开展情况,先对3.0系统进行一个容量测试,确定现有系统所能承受的最大用户数及最大业务处理能力。并将这个结果告知用户,让用户了解当前系统条件下的运行水平,系统所能支撑的最大用户数,每个用户的响应时间是多长。并将结果作为以后进行4.0系统制定性能测试目标的一个参照标准。

Tz-^/} bC0

 TestAge 中国软件测试时代 \pp$]Da

9         各阶段所要进行的性能测试

除了需求阶段都需要进行性能测试。其他阶段的性能测试需要依据你的性能测试目标:

LL6E(mk"n;^4_f0

9.1设计阶段的性能测试

在设计阶段的性能测试主要的目的是验证你的架构。验证的方式有两种:TestAge 中国软件测试时代Sqd [eR6qz"sP

1、在对于系统架构有一个预期的性能目标的情况下,去验证当前架构能否满足预期的性能目标。TestAge 中国软件测试时代.f K7gch2G q

2、系统架构是基于以前的架构修改过来的,对于两者进行一个对比测试,了解两种架构各有什么优势。TestAge 中国软件测试时代?&Cj+?)U _

 TestAge 中国软件测试时代@X;d!@ @%l

 TestAge 中国软件测试时代+VI!I ZzCmW-l

9.2实施阶段的性能测试

在实施阶段进行性能测试的目的是为了阶段性的验证系统性能,进行性能调优,并通过系统调优发现系统缺陷。

$W#`G:Iz] D#x'{0

9.3产品部署阶段的性能测试

在产品部署阶段,将性能测试作为验收测试的一部分。TestAge 中国软件测试时代j,Z as(N]0j

9.4维护阶段的性能测试

TAG:

我爱手机发布于2007-06-05 18:09:38
这是什么?就这么一点?Testage 中国软件测试技术第一门户网站1_&s`z7G-_:D)jX

'p].Tmw bTestAge 中国软件测试时代还来源于经验
aken的个人空间 aken 发布于2007-06-14 10:55:36
没写完吧。呵呵
panthe_boo发布于2007-07-20 11:06:26
应该是复制时出错了吧
我来说两句

(可选)

我的栏目

日历

« 2008-07-15  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 1187
  • 日志数: 9
  • 建立时间: 2007-05-15
  • 更新时间: 2007-06-05

RSS订阅

Open Toolbar