不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           it is no use doing what you like, you have got to like what you do.

SQABasic头文件--声明

上一篇 / 下一篇  2006-12-22 15:42:17 / 个人分类:Robot技术

SQABasic头文件包含一系列的声明,头文件可以应用
H7p#@.A I;t0
51Testing软件测试网0X0A-}%pg ]
一.声明共有或则全局常量,变量和用户定义类型
CE {?DA,e5U*rV0
3D&_wI}L5@'I(C!s%t2F"O0二.声明自定义sub,procedures和function
s)}s.DPu uO'W$X0
;O'|,hEQw#k&M3S(f0头文件中的声明可以应用到任何模块(脚本或者类库文件)。用’$include关键字,放在模块开始的地方-例如:51Testing软件测试网DV yQ+x
51Testing软件测试网'V mnP"|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软件测试网hM1hA#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软件测试网T5j B0Iy ?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:`4z L o3pr
二.动态连接库文件(扩展名.dll)
C&K3j:fu ]P v"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!Ug v\+}y0依靠位置51Testing软件测试网I%e'm3jqi

$U M'fI1po,j0验证点
"T%g'D:Ia0不支持
5B3Z\/nP;z ?0支持标准的robot验证点51Testing软件测试网8Q/J}$F$[
支持自定义验证点
6s0H8L1b!X0{&b z051Testing软件测试网*j J;HYo&u

+i-Z7N-C%x4?L$mM0任何.rec文件都能作为库文件。不管怎样,如果一个.rec文件作为脚本(可以从robot中直接运行或者用callscrīpt命令),他必须有一个main过程。51Testing软件测试网8n"i$b KG

/r ]k9U3u0在SQABasic库文件中声明过程51Testing软件测试网/c0f2QpJ,L\:D
51Testing软件测试网7W(XBo&O
51Testing软件测试网e#yJlQl
如果在SQABasic过程中有一个自定义的过程,你声明类文件的方法同样适用声明过程。51Testing软件测试网 G4W0? D-v7x4X
51Testing软件测试网tU s0l C X#M5v2y!R eL
下边的例子是在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!Tu9q vOO|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%R c(l0
9H'Uw D*_%NJ0一.在脚本或者其他库文件,仅在模块中应用过程
1{ Z@ Z f4p+d051Testing软件测试网#X;S5RP X#CD4|"v
二.头文件中,用道的模块51Testing软件测试网6?T&M+|3yf:|/b
51Testing软件测试网&X {9B!O p4UFX
库文件包含不需要指定的例程或者’include头文件51Testing软件测试网p{aZ(Xjp
51Testing软件测试网u1Y)F`|:W4G
在dll文件声明过程文件
`/q#z"{R/\0
qix3j+I6]0?0
x4sb5kc.sAf0如果在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+oD w: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
6Jqvt%f y9Q"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,?-p jdD+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,I f0           i.              仍没有明确在robot中定义sqabasic51Testing软件测试网 OAV|)E3\9m(b
51Testing软件测试网7OP/d6nX(V
         ii.              已经在rational Aministrator建立新的工程和数据仓库
2i y6KxU4\ 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&L SkP:`G| h01)        点Tools->General Options
K:v@G f p(m0
3Qq2G$\)r]02)        点Preferences页面51Testing软件测试网#D3_ Dqqd |

Ab:zU4oI?03)        在SQABasic路径中输入路径51Testing软件测试网:f&hV9ku7i\
51Testing软件测试网$W:J:D1[.N!F
Rational test早期版本没有提供菜单选项来设置sqabasic路径 – 参阅sqa common directory片断
GK!DR/KU0
w(Ecu+G7{0指导使用头文件和库文件
Of\c}0
4G4x!s n%T'Qc051Testing软件测试网y\#x!`%U?
推荐下边使用库文件方法:
,t,T/r3D8eFdW051Testing软件测试网f*a)wUXA
a)         自定义函数或者过程应该使用有同样文件名字的头文件(.sbh)和库文件(.sbl),比如DataFunctions.sbh和DataFunctions.sbl。这个过程和函数在头文件中定义(指定声明头文件)和在库文件中定义。看下边的例子
$n y 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
kTV f&z;@h!f051Testing软件测试网~8lN Ec S9hu0E/G
f)         库文件的注释有合理的解释,通过读注释可以知道过程的逻辑51Testing软件测试网 q~B9OP)Uw5b5k g

5i$` CN"H A6h051Testing软件测试网Nh3?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#i I&WA07 December 20, 200151Testing软件测试网Zef{3Z~6s
51Testing软件测试网0zMg ]{d
51Testing软件测试网*q0a2VK(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)]*u D
51Testing软件测试网[g)H5X n1A5zQSV
'# 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.a E!w fv
'#
nm mI { U[J051Testing软件测试网PDx^5]a um
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
pU k7u2G\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.TUi0'# Excel.sbl Source Code and Documentation
e%|tf,ry Z#V051Testing软件测试网G6gBL'YLU
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,?mt0GC N'j(F
'# HISTORY:
WH3_ R,~,|051Testing软件测试网8GwosK] G z$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;Z Uf"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%].s h

i%D B;t:O0_Z4ESv*l0?0
"kt4h'b _ T$t0'#51Testing软件测试网G8ap~Sbp!}
51Testing软件测试网m v;@.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软件测试网,P2w LI[6g@t$E

:KrH$Y:m4Wv6Fc0
2M k+K_!xRY0'# COPYRIGHT:51Testing软件测试网!dB3z5m6H1DX

rol&I;];pc051Testing软件测试网Z6p1v1{!R
'# This code is copyright 1998-2002 by Andy Tinkham <andy@tinkham.org>.51Testing软件测试网o E z9KuVV
51Testing软件测试网~7`o9{)B

"u'^Il^0'# except where otherwise indicated. Permission is given for use by the
0Z.sN;lI&{051Testing软件测试网@S,V"Bz4Am

3s6[&t2am0'# Rational TeamTest community. Redistribution is allowed as long as no charge
:^.f(l%TaF5x#q3[051Testing软件测试网9m#H S&s+[G:o
51Testing软件测试网"yx-F(Rnm K-N`
'# is made for this code and all authorship credits remain intact.
2m-wpzWU051Testing软件测试网"Q'T JA3@$dp#X*y'`{

@(G tH i(qT P2w0'##############################################################################51Testing软件测试网X},\#BP@^[
51Testing软件测试网[9Lc5\!ax%y/n

I z6f8t_0'# CONSTANTS, VARIABLES, DATATYPES

TAG: Robot技术 软件测试技术

 

评分:0

我来说两句

Open Toolbar