《测试框架》摘选-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;XRm k051Testing软件测试网|8BJ8fh#c
51Testing软件测试网KKz(M,U @8U`1.1 案例1:脚本开始处首先进行环境检查51Testing软件测试网?~4P| N
下面是一段linux系统上运行的perl脚本代码,功能是调用产品后台管理位于$ORACLE_HOME/bin目录下的add_user命令,根据存储在users.txt中的用户信息列表,依次在产品系统中创建测试账户。
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%fHXrv
print “$ORACLE_HOME/bin/add_user –firstname $val –loginid $val –initial_password 123456 –email_address$val@gmail.com“;
M2j
{^W0}
上面的这段脚本由负责产品安装测试的工程师小李开发,每次安装完被测软件系统版本后,自动地运行这段脚本,就能直接把测试用户信息等初始数据创建到数据库中去。
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“;
0~U\t:SE3U2L0但这段脚本显然忽略了一个很有可能发生的场景,那就是在脚本运行之前,如果测试人员忘了设定或者设错了$ORACLE_HOME环境变量,脚本就会因为找不到add_user命令,报出一堆莫名其妙的错误。这会降低测试脚本执行的效率,提高诊断错误的难度。51Testing软件测试网e&IS@0il-Fyq
要想解决这个问题,就应该增强脚本的健壮性,在脚本开始处检测$ORACLE_HOME环境变量是否存在,并作相应地处理。修改如下:
7kO AV9E6M0#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*gH6y0 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;