性能测试总结(B/S架构系统)参考及其引用

上一篇 / 下一篇  2011-12-15 10:22:51 / 个人分类:LoadRunner

1、概述

"Q,U_YwfW*gO*@r0  对于目前以 B/S 结构为主的产品来说,性能是一项必测的内容。

IS%\[Kx[b(k3o0

+K }:Zz%u'Py0  关于性能方面的测试,在很多地方又被细分为:负载测试、强度测试、容量测试、压力测试等等。这种细分在概念描述上有一些用处,但在实际工作中很少会只单独的进行其中的某一项测试,实际测试基本上都是交叉性的。我们这里把所有与性能相关的测试统称为性能测试,不做具体区别。

(]'t@/M%E0DMr6v3E J0

3U+t!?*Upi't0  我们在这里所说的性能测试,指的是对系统整体性能的测试,不涉及单元模块的性能检测。

8I:nC\)UBC0

`3oAai J,@0  我们在这里讨论的内容主要是基于 B/S架构的应用。51Testing软件测试网W+vW0~%RQ(I k#p

51Testing软件测试网\/Q1}Z*TX(U-T9c

  要讨论性能测试,很难不涉及测试工具,我们在这里以 MI 公司的LoadRunner为默认的测试工具。

k+LAzO051Testing软件测试网p#j S Y!M^5b

  2、性能测试的介入时机

L0Z#U2|y`1\;A^0

,GH6b7G(G1S(Yu7]"f0  性能测试应该在什么时候开始?对测试人员来说,在产品的功能稳定下来后,就应该尽早开始对产品进行性能测试。一般建议在产品的 3 轮完整功能测试后开始。51Testing软件测试网Bo)?1e'M3S

51Testing软件测试网7FJ9])z"w {5|8a5ed

  3、测试过程

H,g(l0R:ok0

q3X#N'JP"}9z0  性能测试的整体测试过程如下:51Testing软件测试网C(a(\u,W~1ug

r*MD9Lv`0  3.1   制定性能测试计划

%d@V8^ h0

2_!r'iF"TJ0  3.2   搭建测试环境51Testing软件测试网(t L:`ov&F9Q!N7sF&H

6s?0Tb%jf(S3a0  3.3  编写测试程序/脚本51Testing软件测试网(uog]Ox9O

&v8V}%DIr0  3.4   测试执行和分析

ZiT9VZGI051Testing软件测试网X+Z:nV`"r

  3.5   编写测试报告,结束测试51Testing软件测试网9E[zF:OS5Hj%n

51Testing软件测试网G*E;Se`gR IJ%J

  4、过程说明

l4A9T9} k8cZY0

#y5EU^+m {uz0  各个子过程的具体说明:

Y[+`c!EY0

'g"H%e%D5ls0  4.1   制定性能测试计划51Testing软件测试网+c{5t:WlfB6q(O

i _cCJ.y P%}0  分析被测试系统的情况,收集性能测试需求。制定测试计划,形成文档。测试计划应考虑以下内容:

_.S3c m2[h1Q(C0

:U{6dp4k Q0  测试对象和场景。即我们要测试的内容是什么。系统最后对外提供的功能有很多,我们不可能也没有必要对系统所有的功能点都进行性能测试。挑选性能测试对象的一般原则是:选取那些在系统实际投入使用后,并发访问量较大的、算法比较复杂的、占用系统资源较多的功能点,也就是压力点。设定好要测试的压力点后,需要详细的描述出具体的操作过程,以及预期应该达到的性能指标。51Testing软件测试网1a.mE.hbAK;lVF

51Testing软件测试网O6z/hxCKsFyj

  注:在制定测试计划时,对于系统预期应该达到的性能指标,常常是不能获得一个准确的数字。但即使是在没有任何参考数据的情况下,也应该和开发人员一起,设定一个初步的性能指标,作为后面测试的一个参照。有一个初步指标,也比没有任何指标要好。51Testing软件测试网E%]g4gAwb#Sc

0w&r"P ^F(l;af0  测试环境。具体包括:选用什么样的硬件环境(计算机配置,网络结构);什么样的软件环境(操作系统数据库,应用服务器Web服务器);多大的数据量(数据库,文件系统)。

!O/cy!SKUM0

.xM A4g2P0  需要监控的资源。进行性能测试时,需要监控的系统软硬件资源的占用情况。这和产品的具体情况有关,一般可以考虑的因素包括: CPU 使用情况、 Memory 的使用情况、磁盘的 I/O 、网络的占用情况、数据库运行状况、 Web/ 应用服务器运行状况等。

B9e5hq9xS;k051Testing软件测试网{$B)?9re#DJ9opP

  测试工具。选用什么工具进行性能测试,是自己开发,还是选用第三方的测试工具。

6a'e4W})PY-H5O*ypb]0

l7G&]kk/Iq x0  进度安排。各阶段的工作内容、时间安排。

9ui,Nb'xC \n-J2U0

-N6|x[}G0  4.2   搭建测试环境

!G*M1uwB3]1YIP051Testing软件测试网'nzM D6s'Ltm!b6a

  依照测试计划中的测试环境要求,搭建实际的测试环境,安装配置还好硬件、软件,准备好测试数据。

Bs|M L4|c051Testing软件测试网/{Y"o-qH#a-C(o

  4.3   编写测试程序/脚本

*M{ f/@"p {T U0

7z W}"wvP&k0  编写实际的测试程序脚本。如果能够使用现有的成熟测试工具则尽量选用,如果现有工具不能满足测试要求,则需要编写定制的测试程序。51Testing软件测试网D9b[mP]p8P7LB

,|x#Y#~CLW0  同时,要为脚本编写说明文档,文档的内容主要是脚本的名称,以及其对应的测试内容。51Testing软件测试网x Wd\4b7g0B%K

e#k1`}z P h*a,V0  4.4   测试执行和分析51Testing软件测试网5s.gC1aw3fgO

ncS-v\q|I0  设定多种测试场景组合,反复运行测试,记录结果数据,逐步优化系统,最后达到一个可接受的性能结果。测试执行过程中,注意每次测试后下次测试开始前的测试环境恢复工作。51Testing软件测试网sH;FC;z%qU r f

51Testing软件测试网-f-ROUj

  性能测试和功能测试一样,也有测试迭代的过程,也会有产品版本的更新。在性能测试过程中,需要和开发人员协同工作,一起调优系统。

D _7og;ny051Testing软件测试网8O Vb"WF#i4m

  4.5   编写测试报告,结束测试51Testing软件测试网4Ud Rd O%y.?#|q

51Testing软件测试网$KB aLU-t0h7c

  整理测试数据,总结测试结果,编写测试报告,结束测试。51Testing软件测试网Th+BAQ$v?@H

51Testing软件测试网4B(H)U}go(@

  附录 1 保证LoadRunner测试脚本的正确性51Testing软件测试网L#Z}IC%yx

51Testing软件测试网'emv/tv a

  在用 LoadRunner 编写完测试脚本后,要保证脚本在以下情况下能够正确运行:51Testing软件测试网1xx~"k*y6`s$Q9I

0c|O_U I-E!X0  在脚本编辑器中:单用户单循环运行脚本;单用户多循环运行脚本。51Testing软件测试网p T%~-TWX%fd

51Testing软件测试网Ap"F\+nBs6W

  在 controller 中:多用户单循环运行脚本;多用户多循环运行脚本。

3d |,dJe.U0

D N M+j` h0  附录 2 性能测试术语解释

#?#d+S @W0

-f$^ o ]YW \6b9AGXC0  测试场景:包含一个或多个脚本,设定并发数量,运行方式,模拟系统在现实中的一个情景。51Testing软件测试网-uAR"] w l"a|

"Hphz4T9a0  事务:是指一组相关的操作,是性能测试中的计时单位。比如‘登录应用系统’就可以作为一个事务。51Testing软件测试网.P)G9h7A`Hp1N9F9Lt

j'NFB y ZPr8O0  集合点:设置集合点后,先到达的请求会等待,直到所有的请求都到达,然后一起发送请求。设置集合点,是为了进行更严格和精确的并发测试。51Testing软件测试网'RJ OL6N!i

`u`D{a0  checkpoint :也叫检查点。和功能测试一样,性能测试也需要检验结果的正确性。当返回标准的 HTTP 错误时(状态码不是 200 +时),Loadrunner能够识别出来,但如果返回的不是标准HTTP错误,Loadrunner则无法识别,这时只能通过我们设置的check point来发现错误。

8xP;VX6O051Testing软件测试网VSu2`@9\

  参数化:为了更真实的模拟现实操作,我们经常需要对测试输入进行参数化。比如登录时的用户名。51Testing软件测试网$a#`#{9rlG6g9s#H

51Testing软件测试网6Iv {3kI9b0uX9?

  关联:对于脚本中动态变化的部分,需要对其进行参数化, Loadrunner 提供了对这种变量进行参数化的功能,叫做关联。比如下面这种情况: 在一个基于 WEB 的应用中,用户每次登录时会被服务端赋予了一个 SessionID ,该用户的后续操作都必须给出这个 SessionID 。在这种情况下,由于被赋予的 SessionID 是由服务端给出的,每次执行脚本时,获得的 SessionID 都会不同,因此就需要在脚本中取得用户每次登录,服务端返回的 SessionID ,在后续步骤中使用。这时我们就需要对 SessionID 进行参数化。即 Loadrunner 提供的关联功能。51Testing软件测试网|y{Dky o7A`x

51Testing软件测试网7c)d7Or gNi

  迭代次数:在性能测试中,对于一个场景,我们需要运行多次取其平均值,即迭代运行多次。目的是为了避免意外因素对测试结果的影响。

X A9@i7a!`g0

9o,quY(X4sId8K,|0  think time :思考时间。在进行长时间的稳定性测试时,要考虑在脚本中加入适当的 think time ,来更好的模拟现实中的情况。51Testing软件测试网D9cM:]QX


TAG:

 

评分:0

我来说两句

Open Toolbar