创建和使用用户定义的函数

相关项: GUI 测试和组件

先决条件 —— 打开函数库或测试

  1. 确定是要将函数存储在操作中还是函数库中。

    • 如果在函数库中插入函数,则任何关联的测试都可访问该函数。

    • 如果在编辑器中将函数直接插入到操作,则只能从特定操作中调用它。

  2. 新建函数库或操作,打开现有的函数库或操作,或单击打开的函数库或操作的选项卡使其处于活动状态。

返回页首

创建函数

可以手动或使用函数定义生成器定义函数,此生成器自动创建您的基本函数定义。

提示: 如果要添加有关函数的注释,则可以在函数名称上方使用 @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 语句,以在运行会话期间加载函数库并访问其函数。

返回页首

调用函数

在测试、组件或函数库中,执行以下一项或两项操作:

  • 创建将用户定义函数作为全局函数调用的步骤。

  • 通过调用用户定义函数注册到的测试对象方法来运行该函数。

返回页首

导航到函数定义 —— 可选

可以从函数调用直接导航到函数定义。

  1. 在编辑器的操作或函数库中,单击包含相关函数的步骤。

  2. 执行以下某项操作:

    • 选择搜索 > 转到 > 定义。

    • 右键单击步骤并从上下文菜单中选择转到定义

      UFT One 激活相关文档 (如果函数定义位于另一个函数库中),并且将光标置于函数定义的开头。

返回页首

取消注册函数 —— 可选

如果不希望将函数的已注册状态保留到运行会话结束,请在测试或函数库中添加 UnregisterUserFunc 语句。

如果在可重用操作中注册方法,应当在操作结束时取消注册方法 (然后在必要时在下一个操作开始时重新注册它) ,以便调用该操作的测试不会受方法注册的影响。

返回页首