TestComplete
的内建函数
陈能技
2007-9-8
TestComplete通过BuiltIn对象访问所有内建的函数,这些函数基本上可以在TC支持的各种脚本语言中使用,提供各种常用的功能。本文介绍脚本编写中经常用到的函数。
文件和目录
文件和目录操作可以使用BuiltIn.CopyFiles和BuiltIn.RemoveFolders两个内建函数,CopyFiles把文件或文件目录拷贝到一个新的位置。RemoveFolders把某个目录删除。
数组
创建数组可以使用BuiltIn.CreateVariantArray、BuiltIn.CreateVariantArray2和BuiltIn.CreateVariantArray3,分别用于创建一维数组、二维数组和三维数组。需要注意的是这三个内建函数不支持在JScript, C++Script 和 C#Script中使用。
下面脚本创建一个三维数组,并为其赋值:
// Creates a three-dimensional array [0..1, 1..2, 2..3]
w := CreateVariantArray3(0, 1, 1, 2, 2, 3);
w[0,1,2] := 'Element 0,1,2';
w[0,2,2] := 'Element 0,2,2';
w[1,2,2] := 'Element 1,2,2';
w[1,2,3] := 'Element 1,2,3';
w := CreateVariantArray3(0, 1, 1, 2, 2, 3);
w[0,1,2] := 'Element 0,1,2';
w[0,2,2] := 'Element 0,2,2';
w[1,2,2] := 'Element 1,2,2';
w[1,2,3] := 'Element 1,2,3';
另外还可以使用BuiltIn.VarArrayHighBound和BuiltIn.VarArrayLowBound来获取某个数组的范围,使用BuiltIn.VarArrayRedim来调整数组的大小。需要注意的是这几个函数所操作的数组必须是用CreateVariantArray、CreateVariantArray2、CreateVariantArray3方法来创建的数组。
暂停
使用Delay函数来暂停脚本的执行一段时间。例如,下面脚本暂停脚本执行5000毫秒:
var ms, HelpStr: OleVariant;
...
ms := 5000;
HelpStr := 'Delaying test run for ' + BuiltIn.VarToStr(ms) + 'milliseconds.';
BuiltIn.Delay (ms, HelpStr);
...
ms := 5000;
HelpStr := 'Delaying test run for ' + BuiltIn.VarToStr(ms) + 'milliseconds.';
BuiltIn.Delay (ms, HelpStr);
COM
服务路径
要想取得的某个COM服务的路径,可以使用BuiltIn.GetCOMServerPath函数。例如下面脚本返回Word的路径:
PathToWord := GetCOMServerPath('Word.Application');
CSV
文件
使用BuiltIn.GetCSVItem和BuiltIn.GetCSVCount来获取CSV文件的内容。
对象属性的设置和读取
对于某个对象的属性的读取或设置,可以使用BuiltIn.GetValue和BuiltIn.SetValue函数。例如下面脚本获取某个窗体的Caption属性:
w := p.Window('MainForm', '', 1);
Log.Message(GetValue(w, 'Caption'));
Log.Message(GetValue(w, 'Caption'));
而下面脚本则相反,设置某个窗体的Caption属性:
w := p.Window('MainForm', '', 1);
SetValue(w, 'Caption', 'New Caption');
SetValue(w, 'Caption', 'New Caption');
还可以使用BuiltIn.IsSupported函数来判断某个对象是否包含指定的方法或属性,用BuiltIn.CallMethod来调用某个对象的指定方法。例如下面脚本首先判断记事本窗体对象是否支持Position方法,如果支持,则调用该方法,改变窗体的位置和大小:
p1 :=
Sys
.Process('notepad');
w:=p1.Window('Notepad', '*');
if
(
BuiltIn
.IsSupported(w, 'Position'))
then
begin
BuiltIn
.CallMethod(w, 'Position', 100,100,100,100)
end
;
重启并继续测试
有时候测试某些应用需要重新启动操作系统然后继续测试,例如测试某些安装程序,这时候可以使用BuiltIn.RebootAndContinue内建函数。该函数使用方法如下:
BuiltIn.RebootAndContinue(Param1, Param2, Param3, Param4)
该函数有4个参数,其中第一个函数用于指定重启之后要执行的脚本程序,第2、3、4个参数分别指定登录操作系统时的密码、帐号和域。
保存信息到文件或发送到邮件
在测试过程中,有时候需要把信息记录起来或通知大家,这时候可以使用函数BuiltIn.SaveStrToFile把字符保存到文件,可以指定是重写文件还是添加到文件。
可以使用BuiltIn.SendMAPIMail发送邮件。BuiltIn.SendMAPIMail通过微软的MAPI(Messaging Application Programming)接口发送邮件。
变量处理
变量处理函数包括VarClear,VarToBool, VarToFloat, VarToInteger, VarToString, VarToWString。
VarClear用于将变量设置为空。VarToBool, VarToFloat, VarToInteger, VarToString, VarToWString分别用于将变量转换成布尔类型、浮点型、整型、字符串型和宽字符串类型。例如下面代码将整型转换成字符串类型:
Int1:=1;
Log.Message(VarToString(Int1));
另外BuiltIn.VarType用于返回变量的类型。返回值可以是下表中的一个:
Constant
|
Value
|
varEmpty
|
0000h
|
varNull
|
0001h
|
varSmallint
|
0002h
|
varInteger
|
0003h
|
varSingle
|
0004h
|
varDouble
|
0005h
|
varCurrency
|
0006h
|
varDate
|
0007h
|
varOleStr
|
0008h
|
varDispatch
|
0009h
|
varError
|
000Ah (操作系统错误代码)
|
varBoolean
|
000Bh
|
varVariant
|
000Ch
|
varUnknown
|
000Dh (未知的 OLE 对象)
|
varByte
|
0011h
|
varArray
|
2000h
|
varByRef
|
4000h (对某种类型的值的引用,用低位字节表示,例如
4007h 是对日期的引用)
|