创建和使用用户定义的函数
相关项: GUI 测试和组件
先决条件 —— 打开函数库或测试
-
确定是要将函数存储在操作中还是函数库中。
-
如果在函数库中插入函数,则任何关联的测试都可访问该函数。
-
如果在编辑器中将函数直接插入到操作,则只能从特定操作中调用它。
-
-
新建函数库或操作,打开现有的函数库或操作,或单击打开的函数库或操作的选项卡使其处于活动状态。
创建函数
可以手动或使用函数定义生成器定义函数,此生成器自动创建您的基本函数定义。
提示: 如果要添加有关函数的注释,则可以在函数名称上方使用 @description 行和描述函数的字符串添加注释。此描述在 UFT One 的自动完成窗口中显示为自定义工具提示。例如,
'@Description This function displays a Hello World message box.
Function Hello_World
MsgBox "Hello world"
End Function
然后,在使用 UFT One 的自动完成菜单时,可以看到该工具提示:
注释:
-
如果要将函数注册到测试对象类,请将其定义为公共函数,并确保测试对象是其第一个参数。
-
如果要替代现有测试对象方法,请确保在测试对象参数之后,函数接受的参数数量与其替代的方法的参数数量相同。
将函数注册到测试对象类 —— 可选
可以将函数注册为测试对象类的新方法,或者可以使用现有方法名称临时替代指定方法的现有功能来注册它。
可以手动执行此步骤,或使用函数定义生成器对话框:
手动 |
在操作或函数库中添加 RegisterUserFunc 语句。注册的测试对象操作的名称不能包含空格。在此语句中,您还可以指示 UFT One 将函数用作测试对象类的默认操作。 示例: RegisterUserFunc "WebEdit", "MySet", "MySetFunc", True
在此语句运行 (在运行会话期间) 之后,使用 MySetFunc 用户定义函数将 MySet 方法 (操作) 添加到 WebEdit 测试对象类中,并定义为默认操作 (如语句的最后一个参数中所指定) 。 如果您或主题内容专家从“关键字视图”中的项列表中选择 WebEdit 测试对象,则将在操作列中自动选择 MySet 操作。它还将与 WebEdit 测试对象的其他现成的已注册操作一起显示在操作列表中。 |
使用函数定义生成器 |
如果使用“函数定义生成器”对话框创建函数定义,则在您选择“注册到测试对象”选项时,将紧接在定义后面自动添加 RegisterUserFunc 语句。 如果您正在注册的函数是在函数库中定义的,建议将 RegisterUserFunc 语句也包含在该函数库中,以便该方法可立即在使用该函数库的任何测试或组件中使用。 |
将函数库与测试或应用程序区域关联
如果在函数库中插入了代码,则必须将该函数库与测试或应用程序区域关联,以使测试和组件能够访问用户定义函数。
或者,也可以在测试或组件中添加 LoadFunctionLibrary 语句,以在运行会话期间加载函数库并访问其函数。
调用函数
在测试、组件或函数库中,执行以下一项或两项操作:
-
创建将用户定义函数作为全局函数调用的步骤。
-
通过调用用户定义函数注册到的测试对象方法来运行该函数。
导航到函数定义 —— 可选
可以从函数调用直接导航到函数定义。
-
在编辑器的操作或函数库中,单击包含相关函数的步骤。
-
执行以下某项操作:
-
选择搜索 > 转到 > 定义。
-
右键单击步骤并从上下文菜单中选择转到定义。
UFT One 激活相关文档 (如果函数定义位于另一个函数库中),并且将光标置于函数定义的开头。
-
取消注册函数 —— 可选
如果不希望将函数的已注册状态保留到运行会话结束,请在测试或函数库中添加 UnregisterUserFunc 语句。
如果在可重用操作中注册方法,应当在操作结束时取消注册方法 (然后在必要时在下一个操作开始时重新注册它) ,以便调用该操作的测试不会受方法注册的影响。