不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           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头文件包含一系列的声明,头文件可以应用51Testing软件测试网B)^amgZ}b

,U0\ D#i:^0一.声明共有或则全局常量,变量和用户定义类型51Testing软件测试网t?3^Q J3TG
51Testing软件测试网)Tc;zO'q2]F"x
二.声明自定义sub,procedures和function
p:WD!tJRS051Testing软件测试网"GDVE V!\ E
头文件中的声明可以应用到任何模块(脚本或者类库文件)。用’$include关键字,放在模块开始的地方-例如:51Testing软件测试网:]:R5RlJ
51Testing软件测试网kI.YDP9I Tmz7X MP
     ’$include “global.sbh”
8vZ"W d[0
bK#q Y Nz`0SQABasic头文件类型
"\)QX!@[Vz2T0
#h-n6XJl&j r!y0Sqabasic支持两种头文件类型:
4tX0_[B0
b%wZD'tCIA~8f0一. 头文件保存在sqabasic路径。不用指定任何路径信息就可以在本工程或者其他工程中应用他们
m0Z6[+?H-] m0
-} ^ ?!J B0二. 工程头文件可以保存在TMS_scrīpt文件夹中。不用指定任何路径信息就可以在同一个工程中处理。
-Uj"B~5x&P;pa051Testing软件测试网 ?G Y1H'~:f4i
这两种SQABasic头文件都有同样的扩展名- .sbh51Testing软件测试网 g&X{ w~R

!|:{)nL0q*C!l%V.|0库文件51Testing软件测试网+@2c5I-b&i[ eTcG

-mw,~:d5Y u%\ m%O0
~#}/_P7U:mik0库文件包含一个或者更多供procedure从其它文件调用的sub,procedure和function。
2y+P#^|3l'r5f T0
E&@ a)LP0一.SQABasic库文件(扩展名为.sbl或则.rec)51Testing软件测试网 Y(U \&?_hR+OZ

+Ks}G(y/O2n/eB;e ol0注意,.rec文件可以作为脚本文件或者库文件,但是.sbl只能被用作库文件。51Testing软件测试网4q?FS!MM/Q?!G

tZ7EY9y:b0二.动态连接库文件(扩展名.dll)
L#v/k;YVkN0
)G4TiV/ZTBE4l0下边的表格这几种类库文件不同的总结:51Testing软件测试网ok2^ui_$]g(l(dk
51Testing软件测试网8PMX@f @h`d'T
51Testing软件测试网1{R2L7^?e ~
.sbl51Testing软件测试网 ^z9f AfDb!A N5E
.rec
7x.B$| ~F!I0.dll
ER\9?.M$Go0
M-QF-EZ P0位置51Testing软件测试网#{3^'S*r:Q%WL
SQABasic路径51Testing软件测试网 {oN D JK
当前工程文件中Datastore(文件夹 TMS_scrīpt)
$[B7lSz`a2V4h0TMS_scrīpt/dll文家夹或则其他位置51Testing软件测试网^O%YB kofp
51Testing软件测试网5v7m-ixk+l
范围
y\4`nsa3yi0在SQABasic路径中,对所有工程文件都可用51Testing软件测试网K&Ub c {6]yb(QH
对同一个工程所有脚本可用51Testing软件测试网e1A1~1S[uks7d*\
依靠位置51Testing软件测试网P#y _5X1f#jA9G#y*p1B,J

*cG~+J s@5Qrvv0验证点
lM(J*Y@t[ k0不支持
;MF.i1H!HQL'VM&N0支持标准的robot验证点51Testing软件测试网U)S2s8i1@'}1c
支持自定义验证点
k+_M+v.N3WX@D"C051Testing软件测试网 BK1O0c y o?gc/[;Q0`
51Testing软件测试网)b E8N0xz+N
任何.rec文件都能作为库文件。不管怎样,如果一个.rec文件作为脚本(可以从robot中直接运行或者用callscrīpt命令),他必须有一个main过程。51Testing软件测试网t8`w!G2v+S

K6V1z`6UAn2y,E0在SQABasic库文件中声明过程
6]e4NH B(o051Testing软件测试网0n``p [M_;rn
51Testing软件测试网gO!?v U{
如果在SQABasic过程中有一个自定义的过程,你声明类文件的方法同样适用声明过程。
2S*~1\F-_j!`0
&ek-UF/\ FuP:jt;r0下边的例子是在sqabasic库文件中(mylib.sbl)声明一个自定义过程(mysub):51Testing软件测试网)tz^#x ]8j``3w1L

"Q;K-s` ^0R4l7u0     Declare Sub MySub Basiclib “MyLib”( arg1 as string,arg2 as integer)
o$mhk1a{051Testing软件测试网jfp'~z.]6sj;Q
一.关键字basiclib,表示过程mysub在一个sqabasic库文件中51Testing软件测试网 c c6a-_%\
51Testing软件测试网 l ~hO&^W
二.库文件的名字“mylib”,这里不需要写扩展名(.sbl或者.rec)51Testing软件测试网'x&QS"Sy~!o

s!t0e6gV6x"n0备注:basiclib关键字特指.sbx库文件的声明(和.dll库文件相对),这里不需要也不推荐带有.sbx扩展名的声明。
[(uQU$OA-D8m8f051Testing软件测试网;I6PLDPo1OJ5U*U
51Testing软件测试网Ag;C1L$ed+l3CCl']
什么地方声明SQABasic库文件51Testing软件测试网;[[U%U P#L|4L
51Testing软件测试网1YS#HGF7|/{%wdD
可以在任何位置声明SQABasic库文件
N(qt |"d\9w | k0
gM&S9IoW8z*j1}%e| A0一.在脚本或者其他库文件,仅在模块中应用过程51Testing软件测试网meWm*P h:s
51Testing软件测试网 PS/^"mR
二.头文件中,用道的模块
6XT:B K"\051Testing软件测试网 P+B\5{,m'l*CM6Z
库文件包含不需要指定的例程或者’include头文件51Testing软件测试网6w4n+\ U@ u_w
51Testing软件测试网Do$Df1Lg l
在dll文件声明过程文件
-NOyS.U#O051Testing软件测试网;Ko-c8R?'d
51Testing软件测试网z4V O!zD7E^Z
如果在dll文件的自定义过程,声明过程同样可以声明dll文件。51Testing软件测试网WA F5wFI"YT9K

[3QM5~$Cl7C0OK4Z0下边是dll文件中(mydll.dll)声明自定义过程(mysub)的例子:
ra-\~S mr051Testing软件测试网"Zc,c7Cn
       declare sub mysub lib “mydll”(byval arg1 as string,Byval arg2 as integer)
SO_].PC0
J%F&I n#q(@S(J9Q0一.声明中加入Lib关键字,表示声明的过程在dll文件中(相对于.sbl或者.rec sqabasic库文件)51Testing软件测试网zAr ib.?

8_:V7U D:lc Z0二.库文件名字(mydll),跟随库指定的名称
9].p0h0F%A2e2B E051Testing软件测试网'~.B)y0j;z~
三.参数声明通常包括关键字byval(参数声明包括任何关键字)51Testing软件测试网$L2JW?%OU)Wd

2hgZ0[4w0
3Nt x9Wq0如果编译位置在sqabas32路径或在系统路径的库文件(.dll),你不用特别声明路径。如果库文件不再sqabas32或者在系统路径,你需要制定路径,比如51Testing软件测试网|:~W&Fj;r$u-Iu:N

~4R)l1g {g]0       Declare Sub MySub Lib “E:MyDll”  (byval arg1 as string,Byval arg2 as integer)
cv[+Y Ka051Testing软件测试网+Zg g*w,rh~$A
在什么地方声明dll文件
.|F#E)Y u G0
Ae2k~kA0
9_I0S YW:z(e0你可以声在任何为指声明dll文件:
AX? Gy%N2G051Testing软件测试网Y pc;cz'xj%pd#F([
1.         脚本或者sqabasic库文件,要用过程的模块
^/Y_gU0
K ecf3B/E]3G0T02.         头文件,任何模块指定的头文件
,k;{-y ~x6f)Tk0
5W:V!n-X4A^v-f0SQABasic路径
Q(`*n$t#M)c*@Z`0
|h7_l}2H0
6I#z0tRr6]!h'}Z~0Sqabasic路径是robot保存和寻找sbl库文件和头文件的地方,用户在robot中也可以定义。
!Wz4K!u&^7MAY6P051Testing软件测试网p#kiS4R
一旦你在robot中指定sqabasic路径,这个路径是固定的。不管怎样,robot自动设置sqabasic路径,当下列条件是真的时候:
*Y-c9c @~7D\%\)P0
,O2?#Ur6f!Dwv0           i.              仍没有明确在robot中定义sqabasic51Testing软件测试网W0Z3^-Y#K^

`atU Z9I)G4P0         ii.              已经在rational Aministrator建立新的工程和数据仓库
(CQ(f|1y \7Jq051Testing软件测试网2}2f2@ } C/Z
        iii.              打开最近创建的工程和数据仓库51Testing软件测试网5zW Z3A)G\.|7p:?Az
51Testing软件测试网-H7uT IK}z
当上边所有条件为真的时候,robot自动在新工程和数据仓库中设置sqabasic路径到下列位置:
|%h O2A,U C$q J$r#k1|051Testing软件测试网 XXu&zoC+e
[NewProject][NewDatastore]DefaultTestscrīptDatastoreTMS_scrīptSQABas32
VP4e-S}0fNyG3M0F051Testing软件测试网4j2AvT.|6hu
设置步骤:
Nsn|+R;}^R051Testing软件测试网Gr4I$A3Zpi
1)        点Tools->General Options51Testing软件测试网~8G#^wYS
51Testing软件测试网:@%`lO$i;T S ^ G
2)        点Preferences页面51Testing软件测试网6@rZV1HH)`
51Testing软件测试网"X9fD!^r(N2Idz]
3)        在SQABasic路径中输入路径
K"B7QI1AF0
@en-]G?Ok\8Wu"ou0Rational test早期版本没有提供菜单选项来设置sqabasic路径 – 参阅sqa common directory片断51Testing软件测试网oBfY9`S*cA"v

4l-@-}5p6Rp0指导使用头文件和库文件
7?^?7hRP0
$w&lJ n$w%J,x0
_ ~ } ^t2@1K0推荐下边使用库文件方法:51Testing软件测试网XN$p kK X~1k

`.TGoY0a)         自定义函数或者过程应该使用有同样文件名字的头文件(.sbh)和库文件(.sbl),比如DataFunctions.sbh和DataFunctions.sbl。这个过程和函数在头文件中定义(指定声明头文件)和在库文件中定义。看下边的例子51Testing软件测试网9g,k!u,uI

(w!ss!\ l K.BTl7A0b)        分离头文件(参阅常量头文件)用于包含常量,变量和用户定义类型用于脚本或者库文件调用。头文件用同样的文件名字后边附加_x或则_C(附加是早期 命名规定)。注意包含常量和变量的头文件必须加入到声明头文件和库文件之前。(DataFunctions.sbh和 DataFunctions.sbl),比如’include “DateFunctions_c.sbh”。这样做很容易维护。51Testing软件测试网6I v0lf/Hz(a3O

i N3@Ke/~gii"n{'{0c)         通过分类或者程序把相关的函数放在同一个库里,例如,把所有日期相关的函数放到DataFunctions.sbh/sbl,或者把所有的函数加入为特定程序开发的函数库中(比如AppName.SBH/SBL)51Testing软件测试网 de@-LXn5Wr)E,Ry
51Testing软件测试网R![7JX+T z*S@:P4u+Sc

(\qQp%X.jF"Q0d)       函数是在库文件中子程序的的首选方式,处分过程的结果对于调用脚本是不相关的。函数应该返回一个值,或者适当的,数据可以通过变量或者数组返回。在后边的例子中,函数返回的结果表示成果或者失败。
O\ i:`]T TC0
S)je gA{,r'N0
9me1`#|~O0e)       库文件中的所有得函数和子程序必须有“注释“,包含这个过程的目的和用途::51Testing软件测试网:] F+pcw/?%i^^d

SWV/mF!v}h5|0请看下边的例子。
VCu7dS#P051Testing软件测试网1|z[n&g)j

;l+VP'Os Mf'Yv2v3d0f)         库文件的注释有合理的解释,通过读注释可以知道过程的逻辑
[0zJ%S.aD051Testing软件测试网{q,V^xm

0z:l,U/iB'z/SX!?`0g)        如果开发和维护robot库文件是集中管理的方式,那么你可以加入到’$include 所有库文件到global.sbh头文件中,这样做对所有头文件都有用。这可以加入缺省的脚本模板。作为选择,测试人员在每个脚本中可以选择或者包含需要 的库文件。51Testing软件测试网I? Xx!xl)kC {)Lw

6d }@ hJ,H0Rational Robot测试指导51Testing软件测试网 I _yzr&?5X3E:s

#}W;E4tIL [x A0Paul Downes (Paul_Downes@providian.com)
T|lDE_,z0
r2e"K{W&u{6u0Carl Nagle (Carl.Nagle@sas.com)51Testing软件测试网pVP,_YHO

L(K|mQ07 December 20, 2001
*_]+f(V%S0
Nu,mZ5B_)R051Testing软件测试网*O7d?*]DZF6T"~n+j
头文件和库文件的例子
,Sub)?w0
2| _M-p |;a9E ?"w0(NB. 这只是个例子.)
"{9zH4A$X0
Tw#}Zx0___________________ Declarations Header: Excel.sbh ___________________51Testing软件测试网[hH\8fm-V
51Testing软件测试网(B!|N/N/Wqf z
51Testing软件测试网V e]1TF+_^ z
'##############################################################################
v#M [z Vh051Testing软件测试网W1F7t$s*j0n$rm0K }
51Testing软件测试网9r2r)~ H$Y^'g]4i
'# Excel Function Library v4.0 Library Header File51Testing软件测试网di?f^

8I Z'|\'oY[2X051Testing软件测试网9L*b[]qtS
'# ===========================51Testing软件测试网 \E7?b"@*P
51Testing软件测试网o8eMm0BGK

fkP:Lq0'#51Testing软件测试网2\I:c.g:G#}\
51Testing软件测试网0UBb C2p U

-\.W#M!d4E;_*} k0'# DEscrīptION:
,D4p,r.Z W:T8F \0
cpx+sv051Testing软件测试网 z3[-d:J0T+q6x,K4A9}
'# Contains functions that utilize Excel's COM Automation interface to use
4Eo8ETqk8t)X051Testing软件测试网7\%R S3SN
51Testing软件测试网(v\} R)F,GF o
'# spreadsheets. See Excel.sbl for library details.
:i5c7y nkH:n0
:kD^!Ip2DiHPU2E051Testing软件测试网*PjT%[ Lu+v5P
'#51Testing软件测试网6jA HKp:b0\H*K
51Testing软件测试网+@ ]8lqP9I9se!k
51Testing软件测试网 `m{e_`r
'# PACKAGE:
0Ex;_gf051Testing软件测试网k3Sp0]%M~
51Testing软件测试网4aM)XPr4BE(` By
'# Excel.sbh Library Header File51Testing软件测试网qD@g U
51Testing软件测试网;b2J(T _Z

MQ(WMG Zf%l6sY0'# Excel.sbl Source Code and Documentation
6o&e@'Z)u&e!_051Testing软件测试网+Tm^h#U1a1s

S)}`E3y&c G0'# Excel_X.sbh Library Include File
EV3p B*L051Testing软件测试网w5p&|xD!p L\bx,W
51Testing软件测试网 o$l ~%o FfR)k
'#
9n^}&J5m#ii"a051Testing软件测试网$| bfswP
51Testing软件测试网o'f*w'Ez(V \q
'# HISTORY:
8S:^Za&V6LD:K;D9b051Testing软件测试网#r*]!|a"? `5F,?m$Jc
51Testing软件测试网*\$w lk g;Z
'# Orig Author: Andy Tinkham <andy@tinkham.org>
'Tr1c-K(g4H `r051Testing软件测试网 Q(a5b7XYv ~+MhX
51Testing软件测试网#u?[Q1Q1Un
'# Orig Date : 12-10-98
t:Y!yf.S(d0kV051Testing软件测试网k"T6O;P&k

#a&J b Oe6D;C0J0'#
z]%_Vb&ErQ9g051Testing软件测试网r{5B:J&^js%FsS J$uC

!JtAK J0'# Error Handling Code by Mark Butler (MKButler@russell.com) and Andy Tinkham
oLK~'|b3u0
m pt9Ig O051Testing软件测试网6X)u*WDU dE;en3l
'#51Testing软件测试网-LYzc@OVtb

{xR_)i2l]-q\0
2G%_)@zI LE4S2\0'# CHANGES:
7|n1o-Fa {"fBt.[051Testing软件测试网9K%IF-V4e+Q

m:E3x0{&rp;F`v\ A0'# 00/00/00 Author Change details
5C6v/FC;~Fql0
y {WWj9~A T051Testing软件测试网tM pm+uF
'#51Testing软件测试网/My'M\2A.ZR'N

uO5BPDl-~ x0
*L8f7{ Q;y _*}M0'# COPYRIGHT:51Testing软件测试网^Q4y1jZ~q^
51Testing软件测试网iq4h:{iM:i SW5s(M7]
51Testing软件测试网6z0QxR&jl&I$t\Rg"n
'# This code is copyright 1998-2002 by Andy Tinkham <andy@tinkham.org>.51Testing软件测试网9]Am3p(uF@S/m
51Testing软件测试网$i Nv]V H

5VV~1h0Qr7~ d[0'# except where otherwise indicated. Permission is given for use by the
Pv?z:Z*XeG }g m051Testing软件测试网Y(Y"j*e d

,]0_)w5|.vsX0'# Rational TeamTest community. Redistribution is allowed as long as no charge
2M&b4n!\]` B+z8V,Uh051Testing软件测试网`g+Z$_L `'SLY
51Testing软件测试网1c ~zOv1I;Mn
'# is made for this code and all authorship credits remain intact.51Testing软件测试网q_ v,KO C5O1s@\

.JC]m,x-]5G051Testing软件测试网3U%xqXu
'##############################################################################51Testing软件测试网5B.v1EzM*pF

C0nJ-cp ^051Testing软件测试网&xPwUU'FV%y({
'# CONSTANTS, VARIABLES, DATATYPES

TAG: Robot技术 软件测试技术

 

评分:0

我来说两句

Open Toolbar