Robot头文件和库文件(翻译)

来源:互联网 发布:java堆栈静态区 编辑:程序博客网 时间:2024/06/14 20:24

头文件

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

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

二.声明自定义sub,proceduresfunction

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

     ’$include “global.sbh”

 SQABasic头文件类型

Sqabasic支持两种头文件类型:

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

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

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

 库文件

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

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

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

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

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

.sbl

.rec

.dll

位置

SQABasic路径

当前工程文件中Datastore(文件夹 TMS_Script

TMS_Script/dll文家夹或则其他位置

范围

SQABasic路径中,对所有工程文件都可用

对同一个工程所有脚本可用

依靠位置

验证点

不支持

支持标准的robot验证点

支持自定义验证点

任何.rec文件都能作为库文件。不管怎样,如果一个.rec文件作为脚本(可以从robot中直接运行或者用callscript命令),他必须有一个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]DefaultTestScriptDatastoreTMS_ScriptSQABas32

 设置步骤:

1)        Tools->General Options

2)        Preferences页面

3)        SQABasic路径中输入路径

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

指导使用头文件和库文件

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

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

b)        分离头文件(参阅常量头文件)用于包含常量,变量和用户定义类型用于脚本或者库文件调用。头文件用同样的文件名字后边附加_x或则_C(附加是早期命名规定)。注意包含常量和变量的头文件必须加入到声明头文件和库文件之前。(DataFunctions.sbhDataFunctions.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

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

'#

'# DESCRIPTION:

'# 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