改进基于 AI 的测试对象标识
GUI 仅限 UFT Mobile 和 Web 测试
本主题讨论一些元素,UFT One 的人工智能 (AI) 功能使用这些元素来支持应用程序中的对象唯一标识。
UFT One 基于 AI 的测试支持
下表介绍了每个 UFT One 版本中提供的基于 AI 的测试支持级别。
UFT One 版本 | 移动应用程序 | 桌面版 Web |
---|---|---|
15.0 | 支持 | 不支持 |
15.0.1 | 支持 | 技术预览 |
15.0.2 | 支持 | 支持 |
将文本与对象相关联
与对象关联的文本有助于唯一地标识对象。例如:
AIUtil("input", "USER NAME").Type "admin"
在此步骤中使用 USER NAME 文本来描述对象,确保我们在正确的字段中键入。
当在应用程序中检测对象时,如果字段周围有多个标签,则 UFT One 将看起来最符合逻辑的标签用于对象标识。
但是,如果您决定在对象描述中使用其他标签,UFT One 仍然可以标识对象。
示例: 当在应用程序中检测对象时,按钮与按钮上的文本相关联,而字段则与其标签 (而不是其内容) 相关联。
如果一个字段有多个标签,而 UFT One 选择其中一个进行检测,则 UFT One 在运行使用其他标签描述该字段的测试步骤时,仍会正确标识该字段。
在某些情况下,UFT AI 将彼此靠近的多个文本字符串组合为一个文本字符串以标识一个对象。
UFT One15.0-15.0.1 版: 您必须将完整的组合字符串用于对象标识。
UFT One15.0.2 版及更高版本: 您可以编辑组合的字符串,只保留其中一个用于对象标识。确保删除整个字符串而不是字符串的一部分。
示例:
对于下面的文本框,UFT AI 将 Password 和 Forgot? 组合成一个字符串以标识对象,然后将以下步骤代码添加到测试脚本中:
AIUtil("text_box", "Password Forgot?").Type
在 UFT One 15.0.2 版及更高版本中,您可以从脚本中删除整个字符串并将代码更改为以下内容,而不会导致测试失败:
AIUtil("text_box", "Password").Type
配置测试识别选项
在 UFT One 15.0.2 及更高版本上受支持
自定义这些文本识别选项,以在您的应用程序上获得最佳的文本识别:
多种语言的文本识别
要启用 UFT One 的 AI 功能以识别英语以外的其他语言文本,请在“工具”>“选项”>“GUI 测试”>“AI”中选择相关的 OCR 语言。请参阅 AI 窗格 (选项对话框 > GUI 测试选项卡)。
使用 AI 标识对象时精确匹配文本
基于 AI 的对象标识使用 AI 算法进行文本匹配。AI 文本匹配可以将拼写变体和具有相似含义的单词视为匹配项。
如有必要,您可以临时指导 UFT One 在标识 AI 测试对象时精确查找指定的文本。
在测试中添加 AI 运行设置步骤以设置文本匹配方法。该设置将一直有效,直到您对其进行更改或直到测试运行结束为止。有关详细信息,请参阅《UFT One Object Model Reference for GUI Testing》中的 AIRunSettings 对象。
注释:
- 应用程序中的文本是使用 OCR 标识的。如果 OCR 不准确,则 AI 文本匹配可能比精确文本匹配更成功。
- 精确文本匹配不区分大小写。
使用 UFT One 文本识别设置
指示 AI 使用 UFT One 文本识别设置。这使您可以使用 Google 或 Baidu OCR 云服务或其他 UFT One OCR 引擎,具体取决于您的 UFT One 配置。请参阅 AI 窗格 (选项对话框 > GUI 测试选项卡)。
通过相对位置标识对象
UFT One 必须能够唯一地标识对象,以便对该对象运行步骤。当多个对象与您的对象描述匹配时,您可以添加对象位置以提供唯一标识。相对于应用程序中的类似对象,该位置可以是序号;相对于其他 AI 对象 (视为定位标记),该位置可以是近端。
AIUtil 对象标识方法现在使用 location 和 locationData 参数,您可以在其中提供有关对象位置的信息。请参阅 AIObject、FindText 和 FindTextBlock。
描述对象的序号位置
提供以下信息:
对象的出现,即它的第一次、第二次、第三次出现,依此类推。
方向,即出现次数的计数方向:
FromLeft
、FromRight
、FromTop
、FromBottom
。
例如,AIUtil("button", "ON", "FromLeft", 2).Click
单击应用程序左侧的第二个 ON
按钮。
描述对象在其他 AI 对象附近的位置
在 UFT One 15.0.1 及更高版本上受支持
提供以下信息:
定位标记对象的描述。
定位标记必须是与您描述的对象属于同一上下文的 AI 对象。
定位标记也可以通过其位置来描述。
与您描述的对象对比,定位标记对象的方向为:
WithAnchorOnLeft
、WithAnchorOnRight
、WithAnchorAbove
、WithAnchorBelow
。
UFT One 返回与描述相匹配的 AI 对象,该 AI 对象在指定的方向上与定位标记最近且最对齐。
例如,此测试单击 Linux 文本右侧的 Latest Edition 文本框下方的 download 按钮:
Set latestEdition = AIUtil.FindTextBlock("Latest Edition") Set linuxUnderLatestEdition = AIUtil.FindText ("Linux", micWithAnchorAbove, latestEdition) AIUtil("button", "download", micWithAnchorOnLeft, linuxUnderLatestEdition).Click
使用图像描述控件
如果应用程序包含 AI 标识不支持的控件类型,则您可以提供该控件的图像,UFT One 可使用它来标识控件。通过注册为自定义类,指定您希望 UFT One 用于此控件类型的类名。
AIUtil.RegisterCustomClass "door", "door.PNG"
AIUtil("door").Click
有关更多详细信息,请参阅《UFT One Object Model Reference for GUI Testing》中的 AIUtil.RegisterCustomClass method。
一旦注册了自定义类,就可以在 AIUtil 步骤中将其用作控件类型:
AIUtil("<Myclass>")
AIUtil("<Myclass>", micAnyText, micFromTop, 1)
AIUtil("<Myclass>", micAnyText, micWithAnchorOnLeft, AIUtil("Profile"))
您甚至可以使用它来描述定位标记对象,然后将其用于标识附近的其他对象:
AIUtil("profile", micAnyText, micWithAnchorOnLeft, AIUtil("<Myclass>") )
注释:
- 您不能将注册的类用作定位标记来通过接近度标识另一个注册的类。
- 用于描述控件的图像必须与控件精确匹配。
自动滚动
运行测试时,如果对象未在应用程序中显示,但网页或移动应用程序是可滚动的,则 UFT One 会自动滚动以进一步搜索对象。一旦标识出与描述匹配的对象,就不再执行滚动。将找不到后续应用程序页面或屏幕中显示的相同对象。
UFT One 在运行要求在应用程序中不显示对象的检查点时,进行类似的滚动。仅当滚动到后续页面或屏幕时仍找不到对象的情况下,检查点才通过。
默认情况下,UFT One 向下滚动两次。您可以自定义滚动方向和要执行的最大滚动次数,或者在必要时禁用滚动。
- 在“工具”>“选项”>“GUI 测试”>“AI”中全局自定义滚动,或使用 UFT One 自动脚本。请参阅 AI 窗格 (选项对话框 > GUI 测试选项卡)。
- 使用 AIUtil.RunSettings 对象在测试运行中临时自定义滚动。请参阅《UFT One Object Model Reference for GUI Testing》中的 AIRunSettings Object
另请参见: