SQABasic头文件7

上一篇 / 下一篇  2007-09-14 10:02:11

SQABasic头文件包含一系列的声明,头文件可以应用到

一.声明共有或则全局常量,变量和用户定义类型

二.声明自定义sub,procedures和function

头文件中的声明可以应用到任何模块(脚本或者类库文件)。用’$include关键字,放在模块开始的地方-例如:

     ’$include “global.sbh”

SQABasic头文件类型

Sqabasic支持两种头文件类型:

一. 头文件保存在sqabasic路径。不用指定任何路径信息就可以在本工程或者其他工程中应用他们

二. 工程头文件可以保存在TMS_scrīpt文件夹中。不用指定任何路径信息就可以在同一个工程中处理。

这两种SQABasic头文件都有同样的扩展名- .sbh

库文件


库文件包含一个或者更多供procedure从其它文件调用的sub,procedure和function。

一.SQABasic库文件(扩展名为.sbl或则.rec)

注意,.rec文件可以作为脚本文件或者库文件,但是.sbl只能被用作库文件。

二.动态连接库文件(扩展名.dll)

下边的表格这几种类库文件不同的总结:


.sbl
.rec
.dll

位置
SQABasic路径
当前工程文件中Datastore(文件夹 TMS_scrīpt)
TMS_scrīpt/dll文家夹或则其他位置

范围
在SQABasic路径中,对所有工程文件都可用
对同一个工程所有脚本可用
依靠位置

验证点
不支持
支持标准的robot验证点
支持自定义验证点


任何.rec文件都能作为库文件。不管怎样,如果一个.rec文件作为脚本(可以从robot中直接运行或者用callscrīpt命令),他必须有一个main过程。

在SQABasic库文件中声明过程


如果在SQABasic过程中有一个自定义的过程,你声明类文件的方法同样适用声明过程。

下边的例子是在sqabasic库文件中(mylib.sbl)声明一个自定义过程(mysub):

     Declare Sub MySub Basiclib “MyLib”( arg1 as string,arg2 as integer)

一.关键字basiclib,表示过程mysub在一个sqabasic库文件中

二.库文件的名字“mylib”,这里不需要写扩展名(.sbl或者.rec)

备注:basiclib关键字特指.sbx库文件的声明(和.dll库文件相对),这里不需要也不推荐带有.sbx扩展名的声明。


什么地方声明SQABasic库文件

可以在任何位置声明SQABasic库文件

一.在脚本或者其他库文件,仅在模块中应用过程

二.头文件中,用道的模块

库文件包含不需要指定的例程或者’include头文件

在dll文件声明过程文件


如果在dll文件的自定义过程,声明过程同样可以声明dll文件。

下边是dll文件中(mydll.dll)声明自定义过程(mysub)的例子:

       declare sub mysub lib “mydll”(byval arg1 as string,Byval arg2 as integer)

一.声明中加入Lib关键字,表示声明的过程在dll文件中(相对于.sbl或者.rec sqabasic库文件)

二.库文件名字(mydll),跟随库指定的名称

三.参数声明通常包括关键字byval(参数声明包括任何关键字)


如果编译位置在sqabas32路径或在系统路径的库文件(.dll),你不用特别声明路径。如果库文件不再sqabas32或者在系统路径,你需要制定路径,比如

       Declare Sub MySub Lib “E:MyDll”  (byval arg1 as string,Byval arg2 as integer)

在什么地方声明dll文件


你可以声在任何为指声明dll文件:

1.         脚本或者sqabasic库文件,要用过程的模块

2.         头文件,任何模块指定的头文件

SQABasic路径


Sqabasic路径是robot保存和寻找sbl库文件和头文件的地方,用户在robot中也可以定义。

一旦你在robot中指定sqabasic路径,这个路径是固定的。不管怎样,robot自动设置sqabasic路径,当下列条件是真的时候:

           i.              仍没有明确在robot中定义sqabasic

         ii.              已经在rational Aministrator建立新的工程和数据仓库

        iii.              打开最近创建的工程和数据仓库

当上边所有条件为真的时候,robot自动在新工程和数据仓库中设置sqabasic路径到下列位置:

[NewProject][NewDatastore]DefaultTestscrīptDatastoreTMS_scrīptSQABas32

设置步骤:

1)        点Tools->General Options

2)        点Preferences页面

3)        在SQABasic路径中输入路径

Rational test早期版本没有提供菜单选项来设置sqabasic路径 – 参阅sqa common directory片断

指导使用头文件和库文件


推荐下边使用库文件方法:

a)         自定义函数或者过程应该使用有同样文件名字的头文件(.sbh)和库文件(.sbl),比如DataFunctions.sbh和DataFunctions.sbl。这个过程和函数在头文件中定义(指定声明头文件)和在库文件中定义。看下边的例子

b)        分离头文件(参阅常量头文件)用于包含常量,变量和用户定义类型用于脚本或者库文件调用。头文件用同样的文件名字后边附加_x或则_C(附加是早期命名规定)。注意包含常量和变量的头文件必须加入到声明头文件和库文件之前。(DataFunctions.sbh和DataFunctions.sbl),比如’include “DateFunctions_c.sbh”。这样做很容易维护。

c)         通过分类或者程序把相关的函数放在同一个库里,例如,把所有日期相关的函数放到DataFunctions.sbh/sbl,或者把所有的函数加入为特定程序开发的函数库中(比如AppName.SBH/SBL)


d)       函数是在库文件中子程序的的首选方式,处分过程的结果对于调用脚本是不相关的。函数应该返回一个值,或者适当的,数据可以通过变量或者数组返回。在后边的例子中,函数返回的结果表示成果或者失败。


e)       库文件中的所有得函数和子程序必须有“注释“,包含这个过程的目的和用途::

请看下边的例子。


f)         库文件的注释有合理的解释,通过读注释可以知道过程的逻辑


g)        如果开发和维护robot库文件是集中管理的方式,那么你可以加入到’$include 所有库文件到global.sbh头文件中,这样做对所有头文件都有用。这可以加入缺省的脚本模板。作为选择,测试人员在每个脚本中可以选择或者包含需要的库文件。

Rational Robot测试指导

Paul Downes (Paul_Downes@providian.com)

Carl Nagle (Carl.Nagle@sas.com)

7 December 20, 2001


头文件和库文件的例子

(NB. 这只是个例子.)

___________________ Declarations Header: Excel.sbh ___________________


'##############################################################################


'# Excel Function Library v4.0 Library Header File


'# ===========================


'#


'# DEscrīptION:


'# Contains functions that utilize Excel's COM Automation interface to use


'# spreadsheets. See Excel.sbl for library details.


'#


'# PACKAGE:


'# Excel.sbh Library Header File


'# Excel.sbl Source Code and Documentation


'# Excel_X.sbh Library Include File


'#


'# HISTORY:


'# Orig Author: Andy Tinkham <andy@tinkham.org>


'# Orig Date : 12-10-98


'#


'# Error Handling Code by Mark Butler (MKButler@russell.com) and Andy Tinkham


'#


'# CHANGES:


'# 00/00/00 Author Change details


'#


'# COPYRIGHT:


'# This code is copyright 1998-2002 by Andy Tinkham <andy@tinkham.org>.


'# except where otherwise indicated. Permission is given for use by the


'# Rational TeamTest community. Redistribution is allowed as long as no charge


'# is made for this code and all authorship credits remain intact.


'##############################################################################


'# CONSTANTS, VARIABLES, DATATYPES

TAG:

 

评分:0

我来说两句

日历

« 2024-05-10  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 10206
  • 日志数: 28
  • 图片数: 1
  • 建立时间: 2007-09-11
  • 更新时间: 2007-09-14

RSS订阅

Open Toolbar