SQABasic头文件--声明
上一篇 / 下一篇 2006-12-22 15:42:17 / 个人分类:Robot技术
51Testing软件测试网0X0A-}%pg]
一.声明共有或则全局常量,变量和用户定义类型
CE {?DA,e5U*rV0
3D&_wI}L5@'I(C!s%t2F"O0二.声明自定义sub,procedures和function
s)}s.DPuuO'W$X0
;O'|,hEQw#k&M3S(f0头文件中的声明可以应用到任何模块(脚本或者类库文件)。用’$include关键字,放在模块开始的地方-例如:51Testing软件测试网DVy Q+x
51Testing软件测试网'VmnP"|R
’$include “global.sbh”51Testing软件测试网w2J(P^$A'k,BC)gcA!X v
4Uv z1Ba2BBl7wj0SQABasic头文件类型
:V#ez&Amb051Testing软件测试网K3HE]?a?]&n
Sqabasic支持两种头文件类型:
Z|~0Lq4lg r5C051Testing软件测试网W,tC;e?(K-^
一. 头文件保存在sqabasic路径。不用指定任何路径信息就可以在本工程或者其他工程中应用他们51Testing软件测试网eyu%VE%E`
51Testing软件测试网h M1hA#UC%eS-N
二. 工程头文件可以保存在TMS_scrīpt文件夹中。不用指定任何路径信息就可以在同一个工程中处理。51Testing软件测试网`Rf4_Dg^F:h
51Testing软件测试网8H\3h9_S-F;A9W
这两种SQABasic头文件都有同样的扩展名- .sbh51Testing软件测试网r%z0L*F9q6AXJ%@
? n4s t5I6Wp.Z:g0库文件51Testing软件测试网[+|@-Z \L;g
51Testing软件测试网A#tAhs)KrTWn
51Testing软件测试网T5jB0Iy ?0Z`bjLH
库文件包含一个或者更多供procedure从其它文件调用的sub,procedure和function。51Testing软件测试网.J,T(H4l:U$T,V
"tw#d Cx0一.SQABasic库文件(扩展名为.sbl或则.rec)51Testing软件测试网|u `t.s&c{
fIE1s/gQl }0注意,.rec文件可以作为脚本文件或者库文件,但是.sbl只能被用作库文件。51Testing软件测试网1[$Cp2@t7q
51Testing软件测试网#V:`4zL o3pr
二.动态连接库文件(扩展名.dll)
C&K3j:fu ]Pv"U0
5R(cgD`0下边的表格这几种类库文件不同的总结:51Testing软件测试网\0n#L_*e}A`*s
&`G1k%^zY!u0
mZ`,}%a"yO,B0.sbl
4@s#T|6b5~CS0.rec
.pM1AU-o0.dll51Testing软件测试网S2b;r/OZ^$u
`5g)m.F;V#[S0位置
2H&j9t*^Y9g0SQABasic路径
/r~8OOT7q|6[0当前工程文件中Datastore(文件夹 TMS_scrīpt)51Testing软件测试网{&V1E-Z}])^"]
TMS_scrīpt/dll文家夹或则其他位置51Testing软件测试网;N0~)D1U8|
51Testing软件测试网8H}.W k4HI
范围
1V"G3p1lPC4lX0在SQABasic路径中,对所有工程文件都可用51Testing软件测试网;_#s{}J'^
对同一个工程所有脚本可用
}*c M!Ugv\+}y0依靠位置51Testing软件测试网I%e'm3jqi
$UM'fI1po,j0验证点
"T%g'D:Ia0不支持
5B3Z\/nP;z ?0支持标准的robot验证点51Testing软件测试网8Q/J}$F$[
支持自定义验证点
6s0H8L1b!X0{&b z051Testing软件测试网*jJ;HYo&u
+i-Z7N-C%x4?L$mM0任何.rec文件都能作为库文件。不管怎样,如果一个.rec文件作为脚本(可以从robot中直接运行或者用callscrīpt命令),他必须有一个main过程。51Testing软件测试网8n"i$bKG
/r]k9U3u0在SQABasic库文件中声明过程51Testing软件测试网/c0f2QpJ,L\:D
51Testing软件测试网7W(XBo&O
51Testing软件测试网e#yJ lQl
如果在SQABasic过程中有一个自定义的过程,你声明类文件的方法同样适用声明过程。51Testing软件测试网 G4W0? D-v7x4X
51Testing软件测试网tU s0lCX#M5v2y!ReL
下边的例子是在sqabasic库文件中(mylib.sbl)声明一个自定义过程(mysub):
0d^e8F4HV*E)sA0
;JI~ g8?S@?0 Declare Sub MySub Basiclib “MyLib”( arg1 as string,arg2 as integer)
;i{NP;mlo0
8vyuw4b4e9_(sP0一.关键字basiclib,表示过程mysub在一个sqabasic库文件中
F&K*R)@8i&bWD0
~Kr Y/`L0二.库文件的名字“mylib”,这里不需要写扩展名(.sbl或者.rec)
*o_,|} |0
y!Tu9qvOO|0备注:basiclib关键字特指.sbx库文件的声明(和.dll库文件相对),这里不需要也不推荐带有.sbx扩展名的声明。51Testing软件测试网hP/BVC Ri
51Testing软件测试网sL"z#Eq u
51Testing软件测试网0~2zde&G q:ay4w
什么地方声明SQABasic库文件
f)K]M"@0
t'x4S Unb QK0可以在任何位置声明SQABasic库文件
:N2j.n&Yk%Rc(l0
9H'Uw D*_%NJ0一.在脚本或者其他库文件,仅在模块中应用过程
1{Z@ Zf4p+d051Testing软件测试网#X;S5RP X#CD4|"v
二.头文件中,用道的模块51Testing软件测试网6?T&M+|3yf:|/b
51Testing软件测试网&X {9B!O p4UFX
库文件包含不需要指定的例程或者’include头文件51Testing软件测试网 p{aZ(X jp
51Testing软件测试网u1Y)F`|:W4G
在dll文件声明过程文件
`/q#z"{R/\0
qix3j+I6]0?0
x4sb5kc.sA f0如果在dll文件的自定义过程,声明过程同样可以声明dll文件。
xAu4T8aBX7? u#c051Testing软件测试网%Pf.KP4O-h1Jq
下边是dll文件中(mydll.dll)声明自定义过程(mysub)的例子:
7p#bP0J2B]0
P? P!dS&jw0 declare sub mysub lib “mydll”(byval arg1 as string,Byval arg2 as integer)
5QGHu-hL:``051Testing软件测试网8m6r"[*MNMq
一.声明中加入Lib关键字,表示声明的过程在dll文件中(相对于.sbl或者.rec sqabasic库文件)51Testing软件测试网5gy0E9i%O q(Q
\-v#r+oDw:K0二.库文件名字(mydll),跟随库指定的名称51Testing软件测试网 CQpJxf,N\Sx
4[8{sy&J5k0三.参数声明通常包括关键字byval(参数声明包括任何关键字)51Testing软件测试网'~i OV.\
C[} }_/}.I$J051Testing软件测试网L'|"S9^7V;S u
如果编译位置在sqabas32路径或在系统路径的库文件(.dll),你不用特别声明路径。如果库文件不再sqabas32或者在系统路径,你需要制定路径,比如51Testing软件测试网&_,I1n6xZf
-t"{#yd3F%S1F0 Declare Sub MySub Lib “E:MyDll” (byval arg1 as string,Byval arg2 as integer)
0yx:?%lt0
6Jq vt%fy9Q"x0在什么地方声明dll文件51Testing软件测试网I.eu2HE3Ez!D1gc
Y)x!|$N;`n6[H051Testing软件测试网;kqG-n}
你可以声在任何为指声明dll文件:51Testing软件测试网^7lz,w.M c`
%v6c}y5p8vc*M\'K01. 脚本或者sqabasic库文件,要用过程的模块51Testing软件测试网W(b,?-pjdD+Y0G7v
51Testing软件测试网lf)h"T$ceBm'Z
2. 头文件,任何模块指定的头文件
R5v;c!~q]0
q[^o9g0SQABasic路径
.LR?k v\TqK-p051Testing软件测试网7i*WPS"M7D6O
+Oym&F1W$a{%jo0Sqabasic路径是robot保存和寻找sbl库文件和头文件的地方,用户在robot中也可以定义。51Testing软件测试网g:QH#s;HI
51Testing软件测试网~2F N?f
一旦你在robot中指定sqabasic路径,这个路径是固定的。不管怎样,robot自动设置sqabasic路径,当下列条件是真的时候:51Testing软件测试网maD4c8Y8p|*`
T8Y)ooDHcF,If0 i. 仍没有明确在robot中定义sqabasic51Testing软件测试网OAV|)E3\9m(b
51Testing软件测试网7OP/d6nX(V
ii. 已经在rational Aministrator建立新的工程和数据仓库
2iy6KxU4\ h9Ch051Testing软件测试网E_qZ0Zn/A7r
iii. 打开最近创建的工程和数据仓库51Testing软件测试网 p-vZ2f w2K5XQ
51Testing软件测试网*Qs)Y#SMg6C8v
当上边所有条件为真的时候,robot自动在新工程和数据仓库中设置sqabasic路径到下列位置:
N!w's$sE7K/_0
&i1N1v1Al,x$@0[NewProject][NewDatastore]DefaultTestscrīptDatastoreTMS_scrīptSQABas3251Testing软件测试网 W'Z(Z:VJW5@W T E
:BD+C7hsRp0设置步骤:
)oXcqB3A|"x~I0
/]Z&LSkP:`G|h01) 点Tools->General Options
K:v@G fp(m0
3Qq2G$\)r]02) 点Preferences页面51Testing软件测试网#D3_ Dqq d|
Ab:zU4oI?03) 在SQABasic路径中输入路径51Testing软件测试网:f&hV9ku7i\
51Testing软件测试网$W:J:D1[.N!F
Rational test早期版本没有提供菜单选项来设置sqabasic路径 – 参阅sqa common directory片断
G K!DR/KU0
w(E cu+G[4g7{0指导使用头文件和库文件
Of\c}0
4G4x!sn%T'Qc051Testing软件测试网y\#x!`%U?
推荐下边使用库文件方法:
,t,T/r3D8eFdW051Testing软件测试网f*a)wUXA
a) 自定义函数或者过程应该使用有同样文件名字的头文件(.sbh)和库文件(.sbl),比如DataFunctions.sbh和DataFunctions.sbl。这个过程和函数在头文件中定义(指定声明头文件)和在库文件中定义。看下边的例子
$ny BN&i8jwV0
B)vO;s[ i(n0b) 分离头文件(参阅常量头文件)用于包含常量,变量和用户定义类型用于脚本或者库文件调用。头文件用同样的文件名字后边附加_x或则_C(附加是早期 命名规定)。注意包含常量和变量的头文件必须加入到声明头文件和库文件之前。(DataFunctions.sbh和 DataFunctions.sbl),比如’include “DateFunctions_c.sbh”。这样做很容易维护。51Testing软件测试网(?Ag_o;S\
*e\C6Z7T*v0c) 通过分类或者程序把相关的函数放在同一个库里,例如,把所有日期相关的函数放到DataFunctions.sbh/sbl,或者把所有的函数加入为特定程序开发的函数库中(比如AppName.SBH/SBL)51Testing软件测试网_ ?TB|3X [s
T1h6k8t+@Y0
G,jnls Rt4e9?0d) 函数是在库文件中子程序的的首选方式,处分过程的结果对于调用脚本是不相关的。函数应该返回一个值,或者适当的,数据可以通过变量或者数组返回。在后边的例子中,函数返回的结果表示成果或者失败。
6A!\)^qXDau051Testing软件测试网6a)YC9N6W+g#l&H
51Testing软件测试网nSx}0CG(B
e) 库文件中的所有得函数和子程序必须有“注释“,包含这个过程的目的和用途::
Hk*StwP.D0
v|LQF0请看下边的例子。
4y!ia-pH4p0
kTVf&z;@h!f051Testing软件测试网 ~8lN Ec S9hu0E/G
f) 库文件的注释有合理的解释,通过读注释可以知道过程的逻辑51Testing软件测试网 q~B9OP)Uw5b5kg
5i$` CN"H A6h051Testing软件测试网N h3?is:OH3d
g) 如果开发和维护robot库文件是集中管理的方式,那么你可以加入到’$include 所有库文件到global.sbh头文件中,这样做对所有头文件都有用。这可以加入缺省的脚本模板。作为选择,测试人员在每个脚本中可以选择或者包含需要 的库文件。
0~`'Q&K^b_-?#Z0
0f#nG1k&s0Rational Robot测试指导51Testing软件测试网P3i ZF\
51Testing软件测试网snI w%pl1Lh2P
Paul Downes (Paul_Downes@providian.com)
3Et zJ5D&Jv051Testing软件测试网0c{$P9A"Xr
Carl Nagle (Carl.Nagle@sas.com)51Testing软件测试网]|v|#BCNS
"f0t#iI&WA07 December 20, 200151Testing软件测试网Zef{3Z~6s
51Testing软件测试网0zMg ]{d
51Testing软件测试网*q0a2V K(QRC}%}r!\
头文件和库文件的例子51Testing软件测试网 d5Y)h Q4z`
NY7v@ x7Vz0Zr%zy0(NB. 这只是个例子.)51Testing软件测试网5p]7r*\:b0uCO:v
H5[ Bm5ab)P0___________________ Declarations Header: Excel.sbh ___________________
H4e#W n^U051Testing软件测试网/iXP.Tbb9Y b[
51Testing软件测试网3R(_/O'_*~A
'##############################################################################
1r:DcK;F d&J*J051Testing软件测试网'phA)]*uD
51Testing软件测试网[g)H5Xn1A5zQ SV
'# Excel Function Library v4.0 Library Header File
soY@!w#b.r(sr051Testing软件测试网YOk4Dd%A&[$T
51Testing软件测试网"l{;mz*g,f
'# ===========================
]%PD0U`BC}0
|:gB~2Wf{ bf?051Testing软件测试网Z;p.aE!w fv
'#
nm mI{ U[J051Testing软件测试网PDx^5]aum
51Testing软件测试网5~wSJEoW
'# DEscrīptION:51Testing软件测试网T8\,jL+b
51Testing软件测试网3V iyj q Lfv
q.H r&^-i PW0'# Contains functions that utilize Excel's COM Automation interface to use
pUk7u2G\Z|S~051Testing软件测试网P.Y,MJB]u
51Testing软件测试网1\R0Q1\(G#I.B{
'# spreadsheets. See Excel.sbl for library details.
]6PSHwv5c4k051Testing软件测试网2DGZblG
#F1s'j W ~G,{0'#51Testing软件测试网 c"[a-e]F;Un z4oA
,m*}8L,l#J0a-_3_"g051Testing软件测试网P$l/N6d"@\ }
'# PACKAGE:51Testing软件测试网2P,C7`9J9H:h
B6xR;^,~}Sw0
EA5tGF&O0q~6d?0'# Excel.sbh Library Header File51Testing软件测试网(_)e&d(o e1e r,G&qJ
51Testing软件测试网[\T+E}"[kAn
C_*v.TU i0'# Excel.sbl Source Code and Documentation
e%|tf,ry Z#V051Testing软件测试网G6gBL'Y LU
51Testing软件测试网 iA4I,z Vb5Am n$q
'# Excel_X.sbh Library Include File51Testing软件测试网7V9h&J(rOc~c
51Testing软件测试网xb,p!v#}d^
1f4^8a-^wz5P;_0'#51Testing软件测试网d7|2X[j
4FF3s)x5HY051Testing软件测试网M,?mt0GCN'j(F
'# HISTORY:
WH3_ R,~,|051Testing软件测试网8Gwos K] Gz$s
0pJB)H+[-a0'# Orig Author: Andy Tinkham <andy@tinkham.org>51Testing软件测试网(d~Bx9ybo jX
51Testing软件测试网:lN0}z\} _
51Testing软件测试网%bJi [\~C P
'# Orig Date : 12-10-9851Testing软件测试网`)z4a7z"Nk
51Testing软件测试网9Y:vE-taT
8t;ZUf"vg'f0'#51Testing软件测试网fk@ ? [t&i A
E7MV%?|^0
4K)rmZT@9e0'# Error Handling Code by Mark Butler (MKButler@russell.com) and Andy Tinkham51Testing软件测试网DG\D_ r%].sh
i%DB;t:O0_Z4ESv*l0?0
"kt4h'b_ T$t0'#51Testing软件测试网 G8ap ~Sbp!}
51Testing软件测试网mv;@.a*Z
51Testing软件测试网d1|+J9Y I"Y~D
'# CHANGES:
:j-N@\1I6@ o-fO051Testing软件测试网0s0d6oGw+o6@^V
vKz!P!I5Q*P0'# 00/00/00 Author Change details51Testing软件测试网IU KCCg:bN-M
51Testing软件测试网:~6Y(jo-yAv8H
:y4PMXD*r"y9I0'#51Testing软件测试网,P2wLI[6g @t$E
:KrH$Y:m4Wv6Fc0
2M k+K_!xRY0'# COPYRIGHT:51Testing软件测试网!dB3z5m6H1DX
一.声明共有或则全局常量,变量和用户定义类型
CE {?DA,e5U*rV0
3D&_wI}L5@'I(C!s%t2F"O0二.声明自定义sub,procedures和function
s)}s.DPuuO'W$X0
;O'|,hEQw#k&M3S(f0头文件中的声明可以应用到任何模块(脚本或者类库文件)。用’$include关键字,放在模块开始的地方-例如:51Testing软件测试网DVy Q+x
51Testing软件测试网'VmnP"|R
’$include “global.sbh”51Testing软件测试网w2J(P^$A'k,BC)gcA!X v
4Uv z1Ba2BBl7wj0SQABasic头文件类型
:V#ez&Amb051Testing软件测试网K3HE]?a?]&n
Sqabasic支持两种头文件类型:
Z|~0Lq4lg r5C051Testing软件测试网W,tC;e?(K-^
一. 头文件保存在sqabasic路径。不用指定任何路径信息就可以在本工程或者其他工程中应用他们51Testing软件测试网eyu%VE%E`
51Testing软件测试网h M1hA#UC%eS-N
二. 工程头文件可以保存在TMS_scrīpt文件夹中。不用指定任何路径信息就可以在同一个工程中处理。51Testing软件测试网`Rf4_Dg^F:h
51Testing软件测试网8H\3h9_S-F;A9W
这两种SQABasic头文件都有同样的扩展名- .sbh51Testing软件测试网r%z0L*F9q6AXJ%@
? n4s t5I6Wp.Z:g0库文件51Testing软件测试网[+|@-Z \L;g
51Testing软件测试网A#tAhs)KrTWn
51Testing软件测试网T5jB0Iy ?0Z`bjLH
库文件包含一个或者更多供procedure从其它文件调用的sub,procedure和function。51Testing软件测试网.J,T(H4l:U$T,V
"tw#d Cx0一.SQABasic库文件(扩展名为.sbl或则.rec)51Testing软件测试网|u `t.s&c{
fIE1s/gQl }0注意,.rec文件可以作为脚本文件或者库文件,但是.sbl只能被用作库文件。51Testing软件测试网1[$Cp2@t7q
51Testing软件测试网#V:`4zL o3pr
二.动态连接库文件(扩展名.dll)
C&K3j:fu ]Pv"U0
5R(cgD`0下边的表格这几种类库文件不同的总结:51Testing软件测试网\0n#L_*e}A`*s
&`G1k%^zY!u0
mZ`,}%a"yO,B0.sbl
4@s#T|6b5~CS0.rec
.pM1AU-o0.dll51Testing软件测试网S2b;r/OZ^$u
`5g)m.F;V#[S0位置
2H&j9t*^Y9g0SQABasic路径
/r~8OOT7q|6[0当前工程文件中Datastore(文件夹 TMS_scrīpt)51Testing软件测试网{&V1E-Z}])^"]
TMS_scrīpt/dll文家夹或则其他位置51Testing软件测试网;N0~)D1U8|
51Testing软件测试网8H}.W k4HI
范围
1V"G3p1lPC4lX0在SQABasic路径中,对所有工程文件都可用51Testing软件测试网;_#s{}J'^
对同一个工程所有脚本可用
}*c M!Ugv\+}y0依靠位置51Testing软件测试网I%e'm3jqi
$UM'fI1po,j0验证点
"T%g'D:Ia0不支持
5B3Z\/nP;z ?0支持标准的robot验证点51Testing软件测试网8Q/J}$F$[
支持自定义验证点
6s0H8L1b!X0{&b z051Testing软件测试网*jJ;HYo&u
+i-Z7N-C%x4?L$mM0任何.rec文件都能作为库文件。不管怎样,如果一个.rec文件作为脚本(可以从robot中直接运行或者用callscrīpt命令),他必须有一个main过程。51Testing软件测试网8n"i$bKG
/r]k9U3u0在SQABasic库文件中声明过程51Testing软件测试网/c0f2QpJ,L\:D
51Testing软件测试网7W(XBo&O
51Testing软件测试网e#yJ lQl
如果在SQABasic过程中有一个自定义的过程,你声明类文件的方法同样适用声明过程。51Testing软件测试网 G4W0? D-v7x4X
51Testing软件测试网tU s0lCX#M5v2y!ReL
下边的例子是在sqabasic库文件中(mylib.sbl)声明一个自定义过程(mysub):
0d^e8F4HV*E)sA0
;JI~ g8?S@?0 Declare Sub MySub Basiclib “MyLib”( arg1 as string,arg2 as integer)
;i{NP;mlo0
8vyuw4b4e9_(sP0一.关键字basiclib,表示过程mysub在一个sqabasic库文件中
F&K*R)@8i&bWD0
~Kr Y/`L0二.库文件的名字“mylib”,这里不需要写扩展名(.sbl或者.rec)
*o_,|} |0
y!Tu9qvOO|0备注:basiclib关键字特指.sbx库文件的声明(和.dll库文件相对),这里不需要也不推荐带有.sbx扩展名的声明。51Testing软件测试网hP/BVC Ri
51Testing软件测试网sL"z#Eq u
51Testing软件测试网0~2zde&G q:ay4w
什么地方声明SQABasic库文件
f)K]M"@0
t'x4S Unb QK0可以在任何位置声明SQABasic库文件
:N2j.n&Yk%Rc(l0
9H'Uw D*_%NJ0一.在脚本或者其他库文件,仅在模块中应用过程
1{Z@ Zf4p+d051Testing软件测试网#X;S5RP X#CD4|"v
二.头文件中,用道的模块51Testing软件测试网6?T&M+|3yf:|/b
51Testing软件测试网&X {9B!O p4UFX
库文件包含不需要指定的例程或者’include头文件51Testing软件测试网 p{aZ(X jp
51Testing软件测试网u1Y)F`|:W4G
在dll文件声明过程文件
`/q#z"{R/\0
qix3j+I6]0?0
x4sb5kc.sA f0如果在dll文件的自定义过程,声明过程同样可以声明dll文件。
xAu4T8aBX7? u#c051Testing软件测试网%Pf.KP4O-h1Jq
下边是dll文件中(mydll.dll)声明自定义过程(mysub)的例子:
7p#bP0J2B]0
P? P!dS&jw0 declare sub mysub lib “mydll”(byval arg1 as string,Byval arg2 as integer)
5QGHu-hL:``051Testing软件测试网8m6r"[*MNMq
一.声明中加入Lib关键字,表示声明的过程在dll文件中(相对于.sbl或者.rec sqabasic库文件)51Testing软件测试网5gy0E9i%O q(Q
\-v#r+oDw:K0二.库文件名字(mydll),跟随库指定的名称51Testing软件测试网 CQpJxf,N\Sx
4[8{sy&J5k0三.参数声明通常包括关键字byval(参数声明包括任何关键字)51Testing软件测试网'~i OV.\
C[} }_/}.I$J051Testing软件测试网L'|"S9^7V;S u
如果编译位置在sqabas32路径或在系统路径的库文件(.dll),你不用特别声明路径。如果库文件不再sqabas32或者在系统路径,你需要制定路径,比如51Testing软件测试网&_,I1n6xZf
-t"{#yd3F%S1F0 Declare Sub MySub Lib “E:MyDll” (byval arg1 as string,Byval arg2 as integer)
0yx:?%lt0
6Jq vt%fy9Q"x0在什么地方声明dll文件51Testing软件测试网I.eu2HE3Ez!D1gc
Y)x!|$N;`n6[H051Testing软件测试网;kqG-n}
你可以声在任何为指声明dll文件:51Testing软件测试网^7lz,w.M c`
%v6c}y5p8vc*M\'K01. 脚本或者sqabasic库文件,要用过程的模块51Testing软件测试网W(b,?-pjdD+Y0G7v
51Testing软件测试网lf)h"T$ceBm'Z
2. 头文件,任何模块指定的头文件
R5v;c!~q]0
q[^o9g0SQABasic路径
.LR?k v\TqK-p051Testing软件测试网7i*WPS"M7D6O
+Oym&F1W$a{%jo0Sqabasic路径是robot保存和寻找sbl库文件和头文件的地方,用户在robot中也可以定义。51Testing软件测试网g:QH#s;HI
51Testing软件测试网~2F N?f
一旦你在robot中指定sqabasic路径,这个路径是固定的。不管怎样,robot自动设置sqabasic路径,当下列条件是真的时候:51Testing软件测试网maD4c8Y8p|*`
T8Y)ooDHcF,If0 i. 仍没有明确在robot中定义sqabasic51Testing软件测试网OAV|)E3\9m(b
51Testing软件测试网7OP/d6nX(V
ii. 已经在rational Aministrator建立新的工程和数据仓库
2iy6KxU4\ h9Ch051Testing软件测试网E_qZ0Zn/A7r
iii. 打开最近创建的工程和数据仓库51Testing软件测试网 p-vZ2f w2K5XQ
51Testing软件测试网*Qs)Y#SMg6C8v
当上边所有条件为真的时候,robot自动在新工程和数据仓库中设置sqabasic路径到下列位置:
N!w's$sE7K/_0
&i1N1v1Al,x$@0[NewProject][NewDatastore]DefaultTestscrīptDatastoreTMS_scrīptSQABas3251Testing软件测试网 W'Z(Z:VJW5@W T E
:BD+C7hsRp0设置步骤:
)oXcqB3A|"x~I0
/]Z&LSkP:`G|h01) 点Tools->General Options
K:v@G fp(m0
3Qq2G$\)r]02) 点Preferences页面51Testing软件测试网#D3_ Dqq d|
Ab:zU4oI?03) 在SQABasic路径中输入路径51Testing软件测试网:f&hV9ku7i\
51Testing软件测试网$W:J:D1[.N!F
Rational test早期版本没有提供菜单选项来设置sqabasic路径 – 参阅sqa common directory片断
G K!DR/KU0
w(E cu+G[4g7{0指导使用头文件和库文件
Of\c}0
4G4x!sn%T'Qc051Testing软件测试网y\#x!`%U?
推荐下边使用库文件方法:
,t,T/r3D8eFdW051Testing软件测试网f*a)wUXA
a) 自定义函数或者过程应该使用有同样文件名字的头文件(.sbh)和库文件(.sbl),比如DataFunctions.sbh和DataFunctions.sbl。这个过程和函数在头文件中定义(指定声明头文件)和在库文件中定义。看下边的例子
$ny BN&i8jwV0
B)vO;s[ i(n0b) 分离头文件(参阅常量头文件)用于包含常量,变量和用户定义类型用于脚本或者库文件调用。头文件用同样的文件名字后边附加_x或则_C(附加是早期 命名规定)。注意包含常量和变量的头文件必须加入到声明头文件和库文件之前。(DataFunctions.sbh和 DataFunctions.sbl),比如’include “DateFunctions_c.sbh”。这样做很容易维护。51Testing软件测试网(?Ag_o;S\
*e\C6Z7T*v0c) 通过分类或者程序把相关的函数放在同一个库里,例如,把所有日期相关的函数放到DataFunctions.sbh/sbl,或者把所有的函数加入为特定程序开发的函数库中(比如AppName.SBH/SBL)51Testing软件测试网_ ?TB|3X [s
T1h6k8t+@Y0
G,jnls Rt4e9?0d) 函数是在库文件中子程序的的首选方式,处分过程的结果对于调用脚本是不相关的。函数应该返回一个值,或者适当的,数据可以通过变量或者数组返回。在后边的例子中,函数返回的结果表示成果或者失败。
6A!\)^qXDau051Testing软件测试网6a)YC9N6W+g#l&H
51Testing软件测试网nSx}0CG(B
e) 库文件中的所有得函数和子程序必须有“注释“,包含这个过程的目的和用途::
Hk*StwP.D0
v|LQF0请看下边的例子。
4y!ia-pH4p0
kTVf&z;@h!f051Testing软件测试网 ~8lN Ec S9hu0E/G
f) 库文件的注释有合理的解释,通过读注释可以知道过程的逻辑51Testing软件测试网 q~B9OP)Uw5b5kg
5i$` CN"H A6h051Testing软件测试网N h3?is:OH3d
g) 如果开发和维护robot库文件是集中管理的方式,那么你可以加入到’$include 所有库文件到global.sbh头文件中,这样做对所有头文件都有用。这可以加入缺省的脚本模板。作为选择,测试人员在每个脚本中可以选择或者包含需要 的库文件。
0~`'Q&K^b_-?#Z0
0f#nG1k&s0Rational Robot测试指导51Testing软件测试网P3i ZF\
51Testing软件测试网snI w%pl1Lh2P
Paul Downes (Paul_Downes@providian.com)
3Et zJ5D&Jv051Testing软件测试网0c{$P9A"Xr
Carl Nagle (Carl.Nagle@sas.com)51Testing软件测试网]|v|#BCNS
"f0t#iI&WA07 December 20, 200151Testing软件测试网Zef{3Z~6s
51Testing软件测试网0zMg ]{d
51Testing软件测试网*q0a2V K(QRC}%}r!\
头文件和库文件的例子51Testing软件测试网 d5Y)h Q4z`
NY7v@ x7Vz0Zr%zy0(NB. 这只是个例子.)51Testing软件测试网5p]7r*\:b0uCO:v
H5[ Bm5ab)P0___________________ Declarations Header: Excel.sbh ___________________
H4e#W n^U051Testing软件测试网/iXP.Tbb9Y b[
51Testing软件测试网3R(_/O'_*~A
'##############################################################################
1r:DcK;F d&J*J051Testing软件测试网'phA)]*uD
51Testing软件测试网[g)H5Xn1A5zQ SV
'# Excel Function Library v4.0 Library Header File
soY@!w#b.r(sr051Testing软件测试网YOk4Dd%A&[$T
51Testing软件测试网"l{;mz*g,f
'# ===========================
]%PD0U`BC}0
|:gB~2Wf{ bf?051Testing软件测试网Z;p.aE!w fv
'#
nm mI{ U[J051Testing软件测试网PDx^5]aum
51Testing软件测试网5~wSJEoW
'# DEscrīptION:51Testing软件测试网T8\,jL+b
51Testing软件测试网3V iyj q Lfv
q.H r&^-i PW0'# Contains functions that utilize Excel's COM Automation interface to use
pUk7u2G\Z|S~051Testing软件测试网P.Y,MJB]u
51Testing软件测试网1\R0Q1\(G#I.B{
'# spreadsheets. See Excel.sbl for library details.
]6PSHwv5c4k051Testing软件测试网2DGZblG
#F1s'j W ~G,{0'#51Testing软件测试网 c"[a-e]F;Un z4oA
,m*}8L,l#J0a-_3_"g051Testing软件测试网P$l/N6d"@\ }
'# PACKAGE:51Testing软件测试网2P,C7`9J9H:h
B6xR;^,~}Sw0
EA5tGF&O0q~6d?0'# Excel.sbh Library Header File51Testing软件测试网(_)e&d(o e1e r,G&qJ
51Testing软件测试网[\T+E}"[kAn
C_*v.TU i0'# Excel.sbl Source Code and Documentation
e%|tf,ry Z#V051Testing软件测试网G6gBL'Y LU
51Testing软件测试网 iA4I,z Vb5Am n$q
'# Excel_X.sbh Library Include File51Testing软件测试网7V9h&J(rOc~c
51Testing软件测试网xb,p!v#}d^
1f4^8a-^wz5P;_0'#51Testing软件测试网d7|2X[j
4FF3s)x5HY051Testing软件测试网M,?mt0GCN'j(F
'# HISTORY:
WH3_ R,~,|051Testing软件测试网8Gwos K] Gz$s
0pJB)H+[-a0'# Orig Author: Andy Tinkham <andy@tinkham.org>51Testing软件测试网(d~Bx9ybo jX
51Testing软件测试网:lN0}z\} _
51Testing软件测试网%bJi [\~C P
'# Orig Date : 12-10-9851Testing软件测试网`)z4a7z"Nk
51Testing软件测试网9Y:vE-taT
8t;ZUf"vg'f0'#51Testing软件测试网fk@ ? [t&i A
E7MV%?|^0
4K)rmZT@9e0'# Error Handling Code by Mark Butler (MKButler@russell.com) and Andy Tinkham51Testing软件测试网DG\D_ r%].sh
i%DB;t:O0_Z4ESv*l0?0
"kt4h'b_ T$t0'#51Testing软件测试网 G8ap ~Sbp!}
51Testing软件测试网mv;@.a*Z
51Testing软件测试网d1|+J9Y I"Y~D
'# CHANGES:
:j-N@\1I6@ o-fO051Testing软件测试网0s0d6oGw+o6@^V
vKz!P!I5Q*P0'# 00/00/00 Author Change details51Testing软件测试网IU KCCg:bN-M
51Testing软件测试网:~6Y(jo-yAv8H
:y4PMXD*r"y9I0'#51Testing软件测试网,P2wLI[6g @t$E
:KrH$Y:m4Wv6Fc0
2M k+K_!xRY0'# COPYRIGHT:51Testing软件测试网!dB3z5m6H1DX