UIA Pro 插件

相关项: GUI 测试和组件

本主题描述如何使用 UIA Pro 测试实现 Microsoft UI Automation 模式的应用程序。当 OpenText Functional Testing 的普通对象标识支持不足以满足您的需求时,您可以使用 UIA Pro 来标识应用程序中的对象。

使用 UIA Pro 需要安装并加载 UIA Pro 插件。

此插件的增强版本已作为 Beta 版本推出。要使用此版本,您必须专门激活它。

在 UIA Pro 模式下侦测对象

对象侦测器和 对象标识中心 为 UIA Pro 对象标识提供单独的模式。使用此模式可根据对象的 UI Automation 属性来标识对象并创建 UIA Pro 测试对象。

在 UIA Pro 模式下侦测对象

执行以下某项操作:

  • 在“对象侦测器”中,单击 指向手下拉箭头,选择“UIA Pro”,然后单击 按钮以在 UIA Pro 模式下侦测对象。

  • 在对象标识中心,单击“UIA Pro”按钮以在 UIA Pro 模式下侦测对象。

在 UIA Pro 模式下,您可以查看对象属性,将侦测的对象添加到本地或共享存储库,或将其拖到测试中以创建步骤。有关详细信息,请参阅 使用对象侦测器使用对象标识中心

对象属性将以它们会通过 UI Automation 而不是其本机技术进行识别的方式显示。

返回页首

创建 UIAPro 测试步骤

您可以从对象侦测器或对象标识中心创建对象并将它们添加到您的测试。

每个测试对象都支持以下类型的方法:

  • OpenText Functional Testing 常用方法和属性

  • ClickType 方法。

  • 基于控件类型的受支持模式的方法。您可以使用 supportedpatterns 描述属性检查对象支持的模式。

  • 某些测试对象具有特定于对象的测试对象方法可供使用。

有关这些测试对象方法的完整详细信息,请参阅《 对象模型参考》UIAPro 部分。

备注: 可用的测试对象和方法完全取决于在应用程序中实现的属性和模式。我们建议您熟悉应用程序中各个对象的属性,特别是控件类型 ID 和受支持的模式,以了解您可以使用哪些测试对象和方法。

返回页首

利用增强版 Beta UIA Pro 插件

增强版 UIA Pro 插件已作为 Beta 版本推出。要使用此版本,您必须专门激活它,如激活增强版 Beta UIA Pro 插件 中所述。

此部分介绍此增强版本提供的优点。

备注: 当您在旧版 UIA Pro 插件和增强版 Beta 插件之间切换时,对象模型参考中的更改可能要求您调整测试。

方面 增强功能
性能和稳定性

该插件的 Beta 版本提供: 

  • 性能获得显著提升。

  • 提高了测试稳定性。

对象层次: 测试对象树导航

UI Automation 应用程序通常具有深层对象层次结构。增强版插件支持对层次结构中所有对象的完全访问和交互。

新方法可以实现测试对象树的全面、灵活遍历:

  • 您可以从所有级别检索子对象或父对象,或者指定要检索的对象级数。

  • 您还可以提供要检索的子对象或父对象类型的描述。

有关详细信息,请参阅《对象模型参考》的 UIAPro 部分中的以下方法:

GetAncestorsGetChildrenGetDescendantsGetParent。使用这些方法来替代出于向后兼容考虑而仍受支持的 ChildObjects 方法。

对象层次: 侦测 对象标识中心显示所侦测 UIA Pro 对象的完整层次结构。将测试对象添加到对象存储库时,仅包含其最重要的上级。
对象层次: 常用方法和属性

在测试运行期间检索到的对象支持常用方法和属性,例如 GetCell 方法。

新支持的方法如下: ExistGetROPropertyGetTOPropertySetTOPropertyHighlightRefreshObjectToStringCheckPropertyWaitProperty

这使得测试变得非常强大,能够与应用程序对象层次结构中运行时发现的对象进行交互。

例如,以下语句在增强版 Beta 插件中受支持,在旧版插件中不受支持: 

UIAProDataGrid("dataGrid").GridPattern.GetCell(1,1).Highlight

更专业的对象描述

支持辅助属性,从而能够创建优化的测试对象描述。

在旧版 UIA Pro 插件中,所有对象标识属性都包含在所有 UIA Pro 测试对象描述中。

在 Beta 插件中,您可以在“对象标识”对话框中查看针对每种 UIA Pro 测试对象所考虑的属性。有关详细信息,请参阅配置测试对象类的对象标识

目前,您无法编辑此属性列表,但在将测试对象添加到对象存储库后,您可以编辑其描述,修改用于识别它的属性列表及其值。

修复了已知缺陷

以下已知问题已得到解决:

  • 未正确使用旨在唯一标识应用程序中的对象的对象索引。

  • 一些步骤 (例如 HighlightGetROPropertyRefreshObject) 未包含在运行结果报告中。

  • 当应用程序中暂时无法访问的对象再次可用时,该对象上的测试步骤失败。

  • 在某些情况下,OpenText Functional Testing 停止响应。在某些情况下,客户需要重新应用一些注册表项。

  • 在某些情况下,高亮显示对象存储库中的对象不起作用。

  • OpenText Functional Testing 用户界面没有清晰地显示测试运行的各个步骤的进展,有时似乎已经停止。

  • 当无法标识对象时,步骤失败,报告会指定无法找到的对象。在某些情况下,报告指定了测试对象层次结构中的某个对象,但没有指定缺失的对象。

对象模型参考更改

当您在旧版 UIA Pro 插件和增强版 Beta 插件之间切换时,对象模型参考中的以下更改可能要求您调整测试。

在增强版 Beta 插件中:

  • WaitForInputIdle 方法返回一个布尔值,指示窗口是否空闲或超时。在旧版插件中,此方法不会返回任何值。

  • GetSupportedPatterns 方法返回模式集合而不是数组。因此,如果您在脚本中使用“UBound(<返回的值>)”,请将其替换为“<返回的值>.Count”

  • ToString 方法返回的值可能与旧版插件略有不同。

    例如, UIAProProgressBar.ToString 方法返回字符串 ProgressBarTO progressbar。旧版插件返回一个带有额外空格的字符串: ProgressBarTO progress bar

  • 以下方法返回枚举字符串,而在旧版插件中返回数值:

    GetExpandCollapseStateGetRoleGetStateGetPrimaryTraversalDirectionGetSupportedSelectionModeGetToggleStateGetWindowInteractionStateGetWindowVisualState

    有关详细信息,请参阅《对象模型参考》UIAPro 部分。

  • 您可以使用 DoubleClickDoubleClickCell 方法,而不是 ActivateActivateCell。为了向后兼容,Activate 方法仍然受支持。

  • 从应用程序检索到的属性值中的前导空格和尾随空格不再被修剪。在侦测对象和使用测试对象方法检索属性时,就会这样做。

    请注意,当将测试对象添加到对象存储库时,必要属性中的前导空格和尾随空格仍会被修剪。

  • 工具提示对象被正确标识为 UIAProToolTip 测试对象。在旧版 UIA Pro 中,它们被标识为通用 UIAProObject

返回页首

激活增强版 Beta UIA Pro 插件

安装并启用 UIA Pro 插件后,您可以激活或停用增强的 Beta 功能。

任务 说明
要激活增强的 UIA Pro 功能,请关闭默认插件。
  1. 确保 OpenText Functional Testing 已关闭。

  2. 以管理员身份运行 <Installdir>\dat\DisableLegacyUIAPro.bat 批处理文件。

要返回到默认的 UIA Pro 插件功能,请打开默认插件。

  1. 确保 OpenText Functional Testing 已关闭。

  2. 以管理员身份运行 <Installdir>\dat\EnableLegacyUIAPro.bat 批处理文件。

返回页首

使用 UIA Pro 插件时的已知问题

这些已知问题与使用 UIA Pro 插件相关,无论它是旧版插件还是增强版插件。

已知问题 描述
录制 不支持录制 UIA Pro 步骤。
参数值枚举

在 UIA Pro 测试步骤中输入参数值时,请使用整数值而不是枚举字符串。

Example: 在语法 UIAProPane("Program Manager").Click 10, 10, MouseButton_Right 中,使用整数值而不使用枚举字符串,并将语法更改为以下内容:

UIAProPane("Program Manager").Click 10, 10, 2

不支持的属性 Object 属性 (用于访问对象的本机方法和属性) 在 UIA Pro 中不受支持。

返回页首

使用旧版 UIA Pro 插件时的已知问题

默认情况下,使用旧版 UIA Pro 插件。使用此插件时存在一些已知问题。

已知问题 描述
对象层次: 侦测

UI Automation 应用程序通常具有深层对象层次结构。此插件对所含对象的访问权限有限。

对象标识中心仅显示所侦测 UIA Pro 对象的有限层次结构。要查看完整的层次结构,请使用对象侦测器。

对象层次: 与对象交互

在测试运行期间检索到的对象不支持大多数常用方法和属性。

辅助属性 UIA Pro 不支持辅助属性,并且对象描述中包含的所有属性都被认为是必需的。

返回页首

使用增强版 Beta UIA Pro 插件时的已知问题

使用增强版 Beta UIA Pro 插件时存在一些已知问题。

方面 已知问题
OIC

在 OIC 中,您只能侦测对象、高亮显示它们并将它们添加到对象存储库。

根据对象标识对话框列出的属性,创建测试对象描述。但是,OIC 不会指示包含哪些属性,您也不能使用复选框修改选择。

对象侦测器

以下已知问题与使用对象侦测器相关:

  • 如果您侦测未打开测试的对象,则不会显示测试对象图标。

  • 不支持“比较” 功能。

对象同步超时 UIA Pro 步骤始终使用默认“对象同步超时”值 (20 秒),忽略测试设置中定义的任何其他值。
序号标识符 支持“索引”序号标识符,尚不支持“位置”和“可视关系标识符”
不支持的方法

UIA Pro 测试对象不支持以下方法: 

  • CaptureBitmap

  • GetAllROProperties

  • GetAllTOProperties

  • 输出

  • SetSecureValue

运行结果报告

以下已知问题与运行结果报告相关:

  • 目前不支持报告中的图像。

  • 发生错误时,CheckPropertyWaitProperty 方法的报告步骤提供通用错误消息,而不是指定属性值。

  • GetAncestorsGetChildrenGetDescendants 方法的报告步骤不包括 description 参数,即使它是在测试中提供的参数。

返回页首

另请参见:

  • 有关 Microsoft UI Automation 模式的详细信息,请参阅 MSDN 上的 UI Automation 概述。