更多的文章,访问我的个人博客:www.cesoo.info

《测试框架》摘选-9 高质量测试脚本范例

上一篇 / 下一篇  2009-11-23 23:28:04 / 个人分类:自动化测试框架

!OL;Y3K3J"l0“不积跬步,无以至千里;不积小流,无以成江海”。51Testing软件测试网-Xc-J b~+g&~us
—荀子《劝学》51Testing软件测试网Uv,Th!p#uv
如果说自动化测试的成功实施是一副壮丽的山水画卷,那么测试脚本/程序的一行行代码就是这幅画卷里一个个彩色元素;如果自动化测试框架是一幢雄伟坚实的大厦,那么函数代码就是其中的一砖一瓦。51Testing软件测试网 `V$mIl yx pBQ-~&cK
因此,对于我们自动化测试开发人员来说,要想成功地构建并实施自动化测试框架,切勿好高骛远,必须要踏踏实实地掌握基本功,从学习开发高质量的测试程序或脚本代码开始,这才是一个训练有素自动化测试开发人员的成长之道。51Testing软件测试网$^ ?n3?%ecO
什么样的代码才算得上是高质量的代码?高质量的代码到底是怎样开发出来的呢?本章将以案例进行介绍并点评。51Testing软件测试网 _4C'RuR*i

_W L!`y+I;XRmk051Testing软件测试网|8BJ8fh#c

51Testing软件测试网KKz(M,U@8U`

1.1  案例1:脚本开始处首先进行环境检查51Testing软件测试网?~4P| N
下面是一段linux系统上运行的perl脚本代码,功能是调用产品后台管理位于$ORACLE_HOME/bin目录下的add_user命令,根据存储在users.txt中的用户信息列表,依次在产品系统中创建测试账户。

;}j.D$_q?+Q051Testing软件测试网Pxj)mp p

my $data;51Testing软件测试网9Zj!pbb.`;e
open FH, “< users.txt”;
@3A:|f5~4G!W0while (<FH>) {51Testing软件测试网}h't8k)^,ro y,Z
 chomp;51Testing软件测试网0yRS%}7|W
 print “users are $_\n”;51Testing软件测试网0J Xv&y%ek(g
 $data=$_;
z/[#c|9zf:G0}
r|_ F7D0my @users=split(’,', $data);51Testing软件测试网)bbaAb Nk
foreach my $val (@users){51Testing软件测试网BV%fH Xrv
print “$ORACLE_HOME/bin/add_user –firstname $val –loginid $val –initial_password 123456 –email_address$val@gmail.com“;
M2j {^W0}

(xYK(gQ"?!t*^051Testing软件测试网t2T.K)SY`})?0O7o

上面的这段脚本由负责产品安装测试的工程师小李开发,每次安装完被测软件系统版本后,自动地运行这段脚本,就能直接把测试用户信息等初始数据创建到数据库中去。
6NDc!sV4~.k0但,可以看出要想能够成功运行该脚本,其前提条件是$ORACLE_HOME必须已经在linux系统环境变量设定,如下:
:j|)B"^ W*}0export ORALCE_HOME=/home/oracle/10123/Orahome1
/B2] k#?.gL0这时,脚本代码
*iY2\@$SY0print “$ORACLE_HOME/bin/add_user –firstname $val –loginid $val –initial_password 123456 –email_address$val@gmail.com“;
0u'p8j;e:Ud)SD0会将$ORACLE_HOME替换成环境变量里设定的实际目录,实际执行如下:
D3ByC6k#H"i*vy4y0print “/home/oracle/10123/Orahome1/bin/add_user –firstname $val –loginid $val –initial_password 123456 –email_address$val@gmail.com“;

ZLx)[ Nm0

0~U\t:S E3U2L0但这段脚本显然忽略了一个很有可能发生的场景,那就是在脚本运行之前,如果测试人员忘了设定或者设错了$ORACLE_HOME环境变量,脚本就会因为找不到add_user命令,报出一堆莫名其妙的错误。这会降低测试脚本执行的效率,提高诊断错误的难度。51Testing软件测试网e&IS@0il-Fyq
要想解决这个问题,就应该增强脚本的健壮性,在脚本开始处检测$ORACLE_HOME环境变量是否存在,并作相应地处理。修改如下:

7]+l,wc;\y6x0

7kOAV9E6M0#detect the $ORACLE_HOME, if not exist, then prompt info to user and exit51Testing软件测试网%Ra6fM:i~2k2MNi
if($ORACLE_HOME eq “”)51Testing软件测试网jfPMy,}"H]h
{51Testing软件测试网/UN~if%U3q+A.j
        print “Error: Please specify the Beehive Home\n”;51Testing软件测试网b6? })_b6_ i3K$G
        print “\n”;51Testing软件测试网 z`J0KBJvh
        print “Usage:\n”;
'l*Zm.nQ*g H6y0        print “  perl create_user.pl -beehome <BEE_HOME>\n”;51Testing软件测试网-E`} N3xg H0E_*Q Z
        print “- beehome: The location of the Beehive Home.\n”;
gw*gM_)VT0{0        exit;
?$MGD*H4x{0}51Testing软件测试网6F4t6C"{ Xp2{U@
#end detect51Testing软件测试网6k X7Kch.mx8l5|5P Ly
my $data;51Testing软件测试网 U W`c v+Z
open FH, “< users.txt”;
t6gy-ojc7w~zZp0while (<FH>) {
])p3J#q{b'sb:K;O0 chomp;
Cr(ui*K.Rt/`AM0 print “users are $_\n”;51Testing软件测试网%pF3I8}8SQR
 $data=$_;51Testing软件测试网oI;],SU
}
JV G?m%v:@Fv)c0my @users=split(’,', $data);
:{duIHi/lr(b0foreach my $val (@users){
2CQ_"Cb\$t `.^0print “$ORACLE_HOME/bin/add_user –firstname $val –loginid $val –initial_password 123456 –email_address$val@gmail.com“;51Testing软件测试网l$Z'R^2q/V
}51Testing软件测试网6s0E`HEn)^

51Testing软件测试网"cG|ls]@

修订后,脚本能够在第一时间内检测到环境变量的错误,并提示用户,然后退出,避免了错误扩散。51Testing软件测试网O!Mae D}"qq

r9mP ^f;{ea0【思考1】
#W&s(Wm{yL0一个产品安装脚本,在脚本开始处应该考虑做哪些环境检查?
IR/rbB0【思考2】51Testing软件测试网4Z'@$v7^ g\bC
在脚本开始时进行环境检测,那么在脚本结束时应该做哪些操作?

&?OSa:l^0

TAG:

追寻 引用 删除 wanghq081126   /   2012-03-21 15:08:07
5
cocaxiaojing的个人空间 引用 删除 cocaxiaojing   /   2010-11-05 16:20:18
支持哦,嘻嘻
cocaxiaojing的个人空间 引用 删除 cocaxiaojing   /   2010-11-05 16:20:01
5
 

评分:0

我来说两句

Open Toolbar