压力测试实例
上一篇 / 下一篇 2006-12-14 15:48:21 / 个人分类:软件测试技术
51Testing软件测试网0x6L8nZQ+Ca`*j`
利用现代的设计技术和正式的技术复审可以减少代码中存在的初始错误,但是错误总是存在的,如果开发者找不到错误,那么,客户就会找到它们。越来越多的软件 组织认识到软件测试是软件质量保证的重要元素之一,很多软件开发组织将30%—40%甚至更多的项目资源用在测试上,软件测试技术和软件测试策略受到了高 度的重视和广泛的应用。51Testing软件测试网S2M b&H]
51Testing软件测试网9Ro&HZ7`*N|Yn-m
本文不想就软件测试技术和软件测试策略作深入的理论分析,而是列举一个在软件系统测试阶段进行的压力测试实例,希望能通过这个实例与从事软件测试相关工作的朋友进行交流。
A9Ab\6r?e8`051Testing软件测试网!T}h_+j6f
首先介绍一下实例中软件的项目背景,该软件是一个典型的三层C/S架构的MIS系统(客户端/应用服务器/数据库管),中间层是业务逻辑层,应用服务器处 理所有的业务逻辑,但应用服务器本身不提供负载均衡的能力,而是利用开发工具提供的ORB(对象请求代理)软件保证多个应用服务器间的负载均衡。本次测试 的目的是:进行单个应用服务器的压力测试,找出单个应用服务器能够支持的最大客户端数。测试压力估算的依据是:假定在实际环中,用户只启用一个应用服务器 进行所有的业务处理。方法是:按照正常业务压力估算值的1~10倍进行测试,考察应用服务器的运行情况。51Testing软件测试网2e!I$n5}a"f
51Testing软件测试网9K{INp
压力测试的详细计划如下:51Testing软件测试网5IA)G+}_1W(M
3I-\{W'o`h0压力测试计划51Testing软件测试网 | K1DI:s5E
51Testing软件测试网8j"s&}rsY
1、测试计划名称51Testing软件测试网gU-ZqvrQ P
河北省公安交通管理信息系统压力测试计划。51Testing软件测试网h3O.z5pY
2、测试内容51Testing软件测试网U*H.i7bgDP9ib
2.1背景51Testing软件测试网J6x}JbMlS&Q
本次测试中的压力测试是指模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时 间运行测试软件来测试被测系统的可靠性,同时还要测试被测系统的响应时间。
'c(?z3U {$^:psn&V4l0用户的实际使用环境:51Testing软件测试网 @},z U O
◇由两台IBM XSeries250 PC Server组成的Microsoft Cluster;51Testing软件测试网3S.lSdX9EGm4|+o
◇数据库管理系统采用Oracle8.1.6;51Testing软件测试网(B'^A A3Y(f+[rm
◇应用服务器程序和数据库管理系统同时运行在Microsoft Cluster上。
_kX-h[E0◇有200个用户使用客户端软件进行业务处理,每年通过软件进行处理的总业务量为:150万笔业务/年。51Testing软件测试网5|Vm j)yUG[1R)W
2.2测试项
[M|!]B5[0应用服务器的压力测试;51Testing软件测试网2Q-?i Qk F'c7}2_
2.3不被测试的特性51Testing软件测试网~z0Iu;L W6N
◇系统的客户端应用程序的内部功能;
#]Fv3]\^4g _:JU0◇数据库中的数据量对程序性能的影响。
ZeW'H8\'G\"nW*K03、测试计划
iG2D e-zzBm'm oj03.1测试强度估算
:t^f5p4X7e`6Z{0测试压力估算时采用如下原则:51Testing软件测试网$k-US$l o8O
◇全年的业务量集中在8个月完成,每个月20个工作日,每个工作日8个小时;51Testing软件测试网,Ucf JQ$s-Z
◇采用80—20原理,每个工作日中80%的业务在20%的时间内完成,即每天80%的业务在1.6小时内完成;51Testing软件测试网i3l5T/C:e,n*l+v
测试压力的估算结果:
6l l pL T0p S0去年全年处理业务约100万笔,其中15%的业务处理每笔业务需对应用服务器提交7次请求;70%的业务处理每笔业务需对应用服务器提交5次请求;其余 15%的业务每笔业务向应用服务器提交3次请求。根据以往统计结果,每年的业务增量为15%,考虑到今后三年业务发展的需要,测试需按现有业务量的2倍进 行。
0~ uS7[M#u0每年总的请求数量为:(100*15%*7+100*70%*5+100*15%*3)*2=300万次/年。
:L mC7h#H*JU"\VQ l0每天的请求数量为:300/160=1.875万次/天。51Testing软件测试网#]%o!{(d6r
每秒的请求数量为:(18750*80%)/(8*20%*3600)=2.60次/秒。
f]7G1GukJg0正常情况下,应用服务器处理请求的能力应达到:3次/秒。51Testing软件测试网 |/[&W(_3c:n]
3.2测试环境准备
`+b\+F3Z.\;J3F03.2.1基本硬件及软件环境的准备
Lk!BMa:P5@&J)_01)网络环境:公司内部的以太网,与服务器的连接速率为100M,与客户端的连接速率为10/100M自适应。51Testing软件测试网![|pof(ICOh
2)使用两台IBM XSeries250(1G内存)PC Server作Microsoft Cluster,安装系统软件 Windows 2000 Advance Server及Microsoft Cluster Server(MSCS)。
TE_d_6K$Iq6]&~T'p(PP03) 数据库管理系统的安装及配置:在测试用的IBM XSeries服务器上安装Oracle8.1.6,数据 库采用Oracle Fail Safe(ofs)的Active/Passive配置。 安装数据库管理系统及支撑软件(包括VisiBroker和BDE Administrator)。
\ F){Ay9Z)m Z04)安装被测的应用服务器程序。51Testing软件测试网l{FkP2`3h9Lg
5)客户端的PC机:10台(PⅢ600/128M RAM)。
)r#TsG]03.2.2系统客户端测试程序的编写系统客户端测试程序使用Delphi编写,要求测试程序实现如下功能:
/h1a$\7cuG;\v01)模拟一个主要的向应用服务器发送请求并接收响应信息的功能。要求交替模拟两种情况:第一种,发送的请求至少包括10个参数,参数类型涵盖字符、日期、 数字种类型;接收的 响应信息不少于1个参数;第二种,发送的请求不少于1个参数;接收的响应信息至少包括10个参数,参数类型涵盖字符、日期、数字种类型。
`t`H^02)必须能够通过参数设定在每台PC机上运行的客户端测试程序个数、请求的时间间隔(单位:毫秒)、运行时间(单位:小时)。
?e$N+R5M\6} N03) 在数据库中建立测试记录表,生成测试记录,向数据库写入测试记录的功能不通过被测的应用服务器实现。日志内容包括:发送测试请求的机器名、客户端测试程序 序号、发出请求时间、收到响应时间、处理是否成功。表名:TEST_LOG,字段名:MACHINE、ID、START_TIME、END_TIME、 FLAG。51Testing软件测试网}&Y2_cB2w T4e7F(~
3.2.3系统本底数据的准备
JX?GQ-Q5]0为考察系统运行一段时间后系统的响应性能,参照实际运行情况及发展进行系统的本底数据准备。业务处理中涉及到的业务表中都要求按设计规模进行本底数据的准备。要求准备的数据记录的有效性符合系统要求,数据有效性的具体要求参见数据库设计及系统设计文档。51Testing软件测试网Y1{b8o2l x qY(NG C_
3.3破坏性测试
Y bi$HJ\Hc0按照设计连接的客户端连接数量进行测试,把应用服务器处理请求的设计频度增加1-10倍,分别测试出现错误的状态和和出现错误的比率,考察是否出现不可恢复错误,系统设计要考 虑出现严重错误情况下负荷减轻错误自动恢复的实现方法。
&q?g5k)h%uv7Mj0计划时间:2天;这个时间包括破坏性的修复和自动恢复的实现需要的时间。
-D S+b&[)~$V-? K|+N0在测试过程中每10分钟记录一次IBM Xseries PC Server的内存及CPU使用情况,包括被测程序的内存占用百分比、数据库管理系统的内存占用百分比、操作系统的内存占用百分比。
R"o7n!Ez6T%aG y03.4强度稳定性测试
7Na$[)b*{1Q?h-h0选择一种负荷比设计负荷重的情况(应用服务器处理请求的频度为应用服务器处理请求的 设计频度的1.5倍),进行24小时稳定性测试。
`4hxco6hF0J03.5测试方法和工具
8Wu+^6q#r r6u0黑盒测试
pt*K:ZUk0测试工具:无外购的测试工具,自己编制的测试工具。
4IX _"u?&h]g4h03.6测试时间计划51Testing软件测试网*Yb K;Y5}
3.6.1环境准备:2天。
LSe[r!B0其中:基本硬件、软件环境及系统本底数据的准备:1天,51Testing软件测试网a%{n4q6{3I
系统客户端测试程序的编写及测试:1天。51Testing软件测试网g)qih(`i
3.6.2破环性测试:2天。51Testing软件测试网;Y4wF8Tph$}
3.6.3强度稳定性测试:1天。51Testing软件测试网N3Zzh a)w2Ma
3.7测试中的问题及处理
hcm({9_b'{M03.7.1暂停标准和再启动要求51Testing软件测试网Gm_7qG
暂停标准:被测试软件在强度稳定性测试中频繁出现异常(每小时出现1次以上)时。用户或公司要求暂停测试时。
n%Em:[R_3U O0再启动要求:通过调试后,预计被测试软件的可靠性有所提高时,可再次启动测试。
)f bKp1BR6a03.7.2不可预见问题51Testing软件测试网3zDA3i!Pi&z
不可预见问题包括:
-[hb)D8xRY0◇测试环境被破坏而导致测试无法进行;
S2X/_ZGg t0◇当出现上述不可预见问题时,测试终止,就已完成的测试内容编制测试总结报告,并在报告中说明测试终止的原因。51Testing软件测试网W4gF+qrs9Y+}
3.8测试报告 2002.06.2151Testing软件测试网 Y)R$?l/rN7~gE
测试总结报告提交日期:2002.06.21。
q)Tb gw3rQ?03.8.1应生成的测试文件
!| cZ }e*F$T!Xq"y0测试记录(测试负责人和参与测试的人员签字);51Testing软件测试网XB"Xa I9o
测试总结报告。
AqqKt^D0M-x03.8.2测试总结报告中必须包含的内容
利用现代的设计技术和正式的技术复审可以减少代码中存在的初始错误,但是错误总是存在的,如果开发者找不到错误,那么,客户就会找到它们。越来越多的软件 组织认识到软件测试是软件质量保证的重要元素之一,很多软件开发组织将30%—40%甚至更多的项目资源用在测试上,软件测试技术和软件测试策略受到了高 度的重视和广泛的应用。51Testing软件测试网S2M b&H]
51Testing软件测试网9Ro&HZ7`*N|Yn-m
本文不想就软件测试技术和软件测试策略作深入的理论分析,而是列举一个在软件系统测试阶段进行的压力测试实例,希望能通过这个实例与从事软件测试相关工作的朋友进行交流。
A9Ab\6r?e8`051Testing软件测试网!T}h_+j6f
首先介绍一下实例中软件的项目背景,该软件是一个典型的三层C/S架构的MIS系统(客户端/应用服务器/数据库管),中间层是业务逻辑层,应用服务器处 理所有的业务逻辑,但应用服务器本身不提供负载均衡的能力,而是利用开发工具提供的ORB(对象请求代理)软件保证多个应用服务器间的负载均衡。本次测试 的目的是:进行单个应用服务器的压力测试,找出单个应用服务器能够支持的最大客户端数。测试压力估算的依据是:假定在实际环中,用户只启用一个应用服务器 进行所有的业务处理。方法是:按照正常业务压力估算值的1~10倍进行测试,考察应用服务器的运行情况。51Testing软件测试网2e!I$n5}a"f
51Testing软件测试网9K{INp
压力测试的详细计划如下:51Testing软件测试网5IA)G+}_1W(M
3I-\{W'o`h0压力测试计划51Testing软件测试网 | K1DI:s5E
51Testing软件测试网8j"s&}rsY
1、测试计划名称51Testing软件测试网gU-ZqvrQ P
河北省公安交通管理信息系统压力测试计划。51Testing软件测试网h3O.z5pY
2、测试内容51Testing软件测试网U*H.i7bgDP9ib
2.1背景51Testing软件测试网J6x}JbMlS&Q
本次测试中的压力测试是指模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时 间运行测试软件来测试被测系统的可靠性,同时还要测试被测系统的响应时间。
'c(?z3U {$^:psn&V4l0用户的实际使用环境:51Testing软件测试网 @},z U O
◇由两台IBM XSeries250 PC Server组成的Microsoft Cluster;51Testing软件测试网3S.lSdX9EGm4|+o
◇数据库管理系统采用Oracle8.1.6;51Testing软件测试网(B'^A A3Y(f+[rm
◇应用服务器程序和数据库管理系统同时运行在Microsoft Cluster上。
_kX-h[E0◇有200个用户使用客户端软件进行业务处理,每年通过软件进行处理的总业务量为:150万笔业务/年。51Testing软件测试网5|Vm j)yUG[1R)W
2.2测试项
[M|!]B5[0应用服务器的压力测试;51Testing软件测试网2Q-?i Qk F'c7}2_
2.3不被测试的特性51Testing软件测试网~z0Iu;L W6N
◇系统的客户端应用程序的内部功能;
#]Fv3]\^4g _:JU0◇数据库中的数据量对程序性能的影响。
ZeW'H8\'G\"nW*K03、测试计划
iG2D e-zzBm'm oj03.1测试强度估算
:t^f5p4X7e`6Z{0测试压力估算时采用如下原则:51Testing软件测试网$k-US$l o8O
◇全年的业务量集中在8个月完成,每个月20个工作日,每个工作日8个小时;51Testing软件测试网,Ucf JQ$s-Z
◇采用80—20原理,每个工作日中80%的业务在20%的时间内完成,即每天80%的业务在1.6小时内完成;51Testing软件测试网i3l5T/C:e,n*l+v
测试压力的估算结果:
6l l pL T0p S0去年全年处理业务约100万笔,其中15%的业务处理每笔业务需对应用服务器提交7次请求;70%的业务处理每笔业务需对应用服务器提交5次请求;其余 15%的业务每笔业务向应用服务器提交3次请求。根据以往统计结果,每年的业务增量为15%,考虑到今后三年业务发展的需要,测试需按现有业务量的2倍进 行。
0~ uS7[M#u0每年总的请求数量为:(100*15%*7+100*70%*5+100*15%*3)*2=300万次/年。
:L mC7h#H*JU"\VQ l0每天的请求数量为:300/160=1.875万次/天。51Testing软件测试网#]%o!{(d6r
每秒的请求数量为:(18750*80%)/(8*20%*3600)=2.60次/秒。
f]7G1GukJg0正常情况下,应用服务器处理请求的能力应达到:3次/秒。51Testing软件测试网 |/[&W(_3c:n]
3.2测试环境准备
`+b\+F3Z.\;J3F03.2.1基本硬件及软件环境的准备
Lk!BMa:P5@&J)_01)网络环境:公司内部的以太网,与服务器的连接速率为100M,与客户端的连接速率为10/100M自适应。51Testing软件测试网![|pof(ICOh
2)使用两台IBM XSeries250(1G内存)PC Server作Microsoft Cluster,安装系统软件 Windows 2000 Advance Server及Microsoft Cluster Server(MSCS)。
TE_d_6K$Iq6]&~T'p(PP03) 数据库管理系统的安装及配置:在测试用的IBM XSeries服务器上安装Oracle8.1.6,数据 库采用Oracle Fail Safe(ofs)的Active/Passive配置。 安装数据库管理系统及支撑软件(包括VisiBroker和BDE Administrator)。
\ F){Ay9Z)m Z04)安装被测的应用服务器程序。51Testing软件测试网l{FkP2`3h9Lg
5)客户端的PC机:10台(PⅢ600/128M RAM)。
)r#TsG]03.2.2系统客户端测试程序的编写系统客户端测试程序使用Delphi编写,要求测试程序实现如下功能:
/h1a$\7cuG;\v01)模拟一个主要的向应用服务器发送请求并接收响应信息的功能。要求交替模拟两种情况:第一种,发送的请求至少包括10个参数,参数类型涵盖字符、日期、 数字种类型;接收的 响应信息不少于1个参数;第二种,发送的请求不少于1个参数;接收的响应信息至少包括10个参数,参数类型涵盖字符、日期、数字种类型。
`t`H^02)必须能够通过参数设定在每台PC机上运行的客户端测试程序个数、请求的时间间隔(单位:毫秒)、运行时间(单位:小时)。
?e$N+R5M\6} N03) 在数据库中建立测试记录表,生成测试记录,向数据库写入测试记录的功能不通过被测的应用服务器实现。日志内容包括:发送测试请求的机器名、客户端测试程序 序号、发出请求时间、收到响应时间、处理是否成功。表名:TEST_LOG,字段名:MACHINE、ID、START_TIME、END_TIME、 FLAG。51Testing软件测试网}&Y2_cB2w T4e7F(~
3.2.3系统本底数据的准备
JX?GQ-Q5]0为考察系统运行一段时间后系统的响应性能,参照实际运行情况及发展进行系统的本底数据准备。业务处理中涉及到的业务表中都要求按设计规模进行本底数据的准备。要求准备的数据记录的有效性符合系统要求,数据有效性的具体要求参见数据库设计及系统设计文档。51Testing软件测试网Y1{b8o2l x qY(NG C_
3.3破坏性测试
Y bi$HJ\Hc0按照设计连接的客户端连接数量进行测试,把应用服务器处理请求的设计频度增加1-10倍,分别测试出现错误的状态和和出现错误的比率,考察是否出现不可恢复错误,系统设计要考 虑出现严重错误情况下负荷减轻错误自动恢复的实现方法。
&q?g5k)h%uv7Mj0计划时间:2天;这个时间包括破坏性的修复和自动恢复的实现需要的时间。
-D S+b&[)~$V-? K|+N0在测试过程中每10分钟记录一次IBM Xseries PC Server的内存及CPU使用情况,包括被测程序的内存占用百分比、数据库管理系统的内存占用百分比、操作系统的内存占用百分比。
R"o7n!Ez6T%aG y03.4强度稳定性测试
7Na$[)b*{1Q?h-h0选择一种负荷比设计负荷重的情况(应用服务器处理请求的频度为应用服务器处理请求的 设计频度的1.5倍),进行24小时稳定性测试。
`4hxco6hF0J03.5测试方法和工具
8Wu+^6q#r r6u0黑盒测试
pt*K:ZUk0测试工具:无外购的测试工具,自己编制的测试工具。
4IX _"u?&h]g4h03.6测试时间计划51Testing软件测试网*Yb K;Y5}
3.6.1环境准备:2天。
LSe[r!B0其中:基本硬件、软件环境及系统本底数据的准备:1天,51Testing软件测试网a%{n4q6{3I
系统客户端测试程序的编写及测试:1天。51Testing软件测试网g)qih(`i
3.6.2破环性测试:2天。51Testing软件测试网;Y4wF8Tph$}
3.6.3强度稳定性测试:1天。51Testing软件测试网N3Zzh a)w2Ma
3.7测试中的问题及处理
hcm({9_b'{M03.7.1暂停标准和再启动要求51Testing软件测试网Gm_7qG
暂停标准:被测试软件在强度稳定性测试中频繁出现异常(每小时出现1次以上)时。用户或公司要求暂停测试时。
n%Em:[R_3U O0再启动要求:通过调试后,预计被测试软件的可靠性有所提高时,可再次启动测试。
)f bKp1BR6a03.7.2不可预见问题51Testing软件测试网3zDA3i!Pi&z
不可预见问题包括:
-[hb)D8xRY0◇测试环境被破坏而导致测试无法进行;
S2X/_ZGg t0◇当出现上述不可预见问题时,测试终止,就已完成的测试内容编制测试总结报告,并在报告中说明测试终止的原因。51Testing软件测试网W4gF+qrs9Y+}
3.8测试报告 2002.06.2151Testing软件测试网 Y)R$?l/rN7~gE
测试总结报告提交日期:2002.06.21。
q)Tb gw3rQ?03.8.1应生成的测试文件
!| cZ }e*F$T!Xq"y0测试记录(测试负责人和参与测试的人员签字);51Testing软件测试网XB"Xa I9o
测试总结报告。
AqqKt^D0M-x03.8.2测试总结报告中必须包含的内容