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';
另外还可以使用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);
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'));
而下面脚本则相反,设置某个窗体的Caption属性:
w := p.Window('MainForm', '', 1);
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 是对日期的引用)
|
分享到:
相关推荐
4. **TestComplete脚本高级技巧**:这部分涵盖异常处理机制、动态对象识别、内建对象和函数的使用,如NativeWebObject、Find系列方法、Dynamic HTML处理以及动态下拉菜单的处理等。 课程大纲还包括了动手实践环节,...
这只是bash内建命令的冰山一角,其他命令如`dirs`、`disown`、`echo`、`enable`、`eval`、`exec`、`exit`、`export`、`fc`、`fg`、`getopts`、`hash`、`history`、`jobs`、`kill`、`let`、`local`、`logout`、`popd`...
单元测试框架如DUnit或TestComplete也能确保代码质量。 由于提供的压缩文件列表只包含"codefans.net",无法直接获取具体的代码细节。不过,这表明项目可能包含了源代码或者与CodeFans网站相关的资源。CodeFans是一...
10. **单元测试**:Delphi支持单元测试,如TestComplete或DUnit,通过编写测试用例确保代码质量。 "Delphi快速入门经典"这本书将引导你逐步掌握这些知识,并通过实例教学来巩固理论。随着对Delphi的深入学习,你将...
Delphi支持单元测试,通过DUnitX或TestComplete等工具,开发者可以对代码进行自动化测试,确保程序的质量。同时,其IDE内建的调试工具也非常强大,包括断点、变量查看、内存检查等功能,便于问题定位和修复。 8. *...
9. **单元测试与持续集成**:Delphi支持单元测试框架,如DUnit或TestComplete。学习编写和执行单元测试,以及如何设置持续集成环境,保证代码质量。 10. **国际化与本地化**:Delphi提供了丰富的工具支持软件的国际...
- **单元测试**:通过TestComplete或DUnit等第三方库进行单元测试,确保代码质量。 **6. Delphi7详解** - Delphi7是Delphi的一个经典版本,虽然较旧,但因其稳定性和广泛的社区支持,仍被许多开发者使用。 - Delphi...
2、IGNORE、GRANTS和INDEXES,其中IGNORE参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。而GRANTS和INDEXES则表示是否...
7.8.4. 内建的动作助手 7.8.4.1. 动作堆栈(助手) 7.8.4.2. AutoComplete 7.8.4.2.1. AutoCompletion with Dojo 7.8.4.2.2. AutoCompletion with Scriptaculous 7.8.4.3. ContextSwitch and AjaxContext 7.8....