已知问题 - 测试运行

相关项: GUI 和 API 测试

本主题介绍运行 UFT One 测试时的已知问题。

本地 UFT One 测试运行

本地计算机

在本地计算机上运行 UFT One 测试或组件时,如果正在测试应用程序的计算机被锁定,则测试运行可能会失败。

变通方法: 在 (不使用屏幕保护程序或锁定密码的) 虚拟机上安装 UFT One,然后在虚拟机上启动或计划测试运行。然后,可以锁定本地计算机而不锁定虚拟机。

Test Batch Runner/UAC

建议不要在 UAC(用户帐户控制)功能设置为打开的情况下使用 Test Batch Runner。

返回页首

远程 UFT One 测试运行

Citrix XenApp 支持

如果要测试由 Citrix XenApp 启动的应用程序,UFT One 还必须由 Citrix XenApp 启动。

注销 RDC/Citrix

如果要在使用远程桌面连接 (RDC) 或 Citrix 的远程计算机上运行 UFT One,建议不要注销远程会话。

如果在 UFT One 正在运行时注销远程会话,可能会导致出现以下问题:

  • 测试或组件运行会话可能失败。

  • 包含键盘或焦点操作的步骤可能失败。

  • 静态图像捕获和/或屏幕录制器 (在运行结果中) 可能显示黑屏。

  • 设备级别回放配置为使用鼠标(而不是浏览器事件)运行鼠标操作的步骤可能失败。

为远程会话配置登录用户凭据以外的凭据

如果用户启动一个远程 UFT One 测试运行,之后该会话锁定或断开连接,则该运行将继续使用在 UFT One 选项 (“工具”>“选项”>“常规”选项卡 >“测试运行”) 中定义的凭据。

如果与这些凭据相关联的权限少于会话启动用户的权限,则测试运行可能会遇到权限问题。

切记,您仍然可以将 UFT One 计算机的登录凭据以外的凭据配置为用于这些远程会话。

多用途远程凭据

如果要在支持多个用户使用相同用户名和密码登录的远程计算机上运行 UFT One 和应用程序,建议不要断开与远程计算机的连接。

在类似情况下,断开连接并重新连接将打开一个新的用户会话,您的 UFT One 测试运行可能会丢失。

请让您的连接保持打开状态以保留您的 UFT One 会话和运行结果。

Windows 操作系统问题

如果在远程运行 UFT One 时遇到问题,请在组策略编辑器 (GPE) 中修改 Microsoft 管理控制台 (MMC) 管理单元中的设置,如下所示:

  1. UFT One 计算机上,请转到: “计算机配置”>“管理模板”> “Windows 组件”>“Windows 登录选项”>“禁用或启用软件安全注意序列”

  2. 启用“软件安全注意序列”。

  3. 选择“服务和轻松使用应用程序”选项。

  4. 重新启动计算机。

警告:启用此配置可能会带来安全风险,因为它允许应用程序和服务器远程登录 UFT One 计算机。确保 UFT One 计算机不包含敏感信息或不提供对敏感信息的访问。

ALM 测试实验室

如果从 ALM 测试实验室中运行 GUI 测试,则必须在 Windows 远程设置 (“控制面板”>“系统”>“远程设置”) 中选择“允许运行任意版本远程桌面的计算机连接”选项

身份验证错误

如果由于身份验证错误而导致测试运行失败:

  • 重新启动本地服务中的 UFT One 助手服务

  • 禁用 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] 下面的注册表项

    "legalnoticecaption"="<anytext>"

    "legalnoticetext"=”<anytext>"

返回页首

运行 GUI 测试和组件

恢复场景

要运行恢复场景以针对应用程序崩溃进行响应,必须满足以下条件:

  • 崩溃的应用程序必须有一个窗口。
  • 在应用程序崩溃后,使用测试中的 Recovery.Activate 步骤明确检查并执行恢复场景。有关详细信息,请参阅《UFT One Object Model Reference for GUI Testing》Utility Objects 部分中的 Recovery Object

  • 恢复操作是键盘或鼠标操作或关闭应用程序进程
  • UFT One 版本 2022 及更早版本: 崩溃的应用程序必须是 32 位应用程序。

UFT One 2023 及更高版本: 如果您在录制和运行设置中将应用程序更改为其他应用程序,则针对应用程序崩溃错误触发的恢复场景将不起作用。

变通方法: 重新启动 UFT One 并重新加载恢复场景。

返回页首

运行 API 测试

调用 GUI 测试

如果正在运行存储在 ALM 中的 API 测试并调用 GUI 测试,则必须确保在打开解决方案的情况下打开 UFT One,或者必须关闭 UFT One 并允许 ALM 打开它。

如果在没有解决方案的情况下打开 UFT,测试将不运行。

调用 API 测试

如果 API 测试由 GUI 测试调用,则不支持将从 API 测试输出参数收到的值用作 GUI 测试的函数中所定义变量的值。

外部 .dll 文件

手动添加对外部 .dll 的参考时,UFT One 提示您在本地保存它。要更改有关特定参考文件的首选项,请删除参考并重新手动添加。

共享文件夹

在远程计算机上使用共享文件夹运行测试可能需要调整 .NET 2.0 安全设置。

建议: 打开控制面板,通过浏览或搜索找到管理工具。在管理工具列表中,查找以下条目: Microsoft .NET Framework 2.0 配置。如果找不到,则必须安装 .NET Framework 2.0 SDK。

验证结构检查点

如果预期值为 SOAP 错误而 Web Service 调用返回 UnsupportedMediaType 状态,则验证结构检查点将失败。

负载测试模式

以负载测试模式运行 API 测试时,不支持 API 测试步骤中的检查点验证。

更新了 log4net.dll

如果您的 API 测试是在早期版本的 UFT One 中创建和内置的,要继续使用您的测试,必须通过在 UFT One 新版本中打开这些测试进行升级。

返回页首

运行包含图像识别测试对象的步骤

要求: 活动会话和应用程序

计算机会话必须处于活动状态且应用程序必须可见 (而不是最小化),步骤才能成功运行。这是因为洞察使用屏幕中的数据与随测试一起存储的图像进行比较。

远程连接

如果正在测试远程计算机上运行的应用程序,而使用最小化远程桌面连接窗口,则这些步骤将失败。

变通方法: 使用其他程序(例如,虚拟网络计算)代替远程桌面连接在远程计算机上运行步骤。

显示大小/缩放级别

要成功进行洞察对象标识,当测试按照识别或录制这些对象时所采用的方式运行时,操作系统上定义的显示大小和浏览器缩放级别(如果在浏览器上工作)必须相同。

移动测试

在某些情况下,图像识别无法在移动应用程序上正常工作。尝试对您的移动应用程序使用基于 AI 的测试。请参阅UFT One 中基于 AI 的测试

排除的区域

在洞察中使用排除的区域时,已包括的区域必须包含足以启用对象识别的有效内容。

如果其余内容不够详细,UFT One 可能会在屏幕上找到过少或过多的匹配控件。

变通方法: 执行以下某项或两项操作:

父浏览器对象

在父浏览器测试对象中搜索洞察对象时,UFT One 会在选定浏览器选项卡而非整个浏览器窗口中进行搜索。

双显示器

仅在主监控器上支持洞察。因此,如果使用双监控器,请确保在对洞察测试对象使用 UFT 时,您的应用程序在主监控器上可见。

运行步骤

在某些应用程序中,在某个图像识别对象上运行将打开窗口的步骤后,该窗口将先关闭,然后才能在窗口上运行下一个图像识别对象的步骤。

变通方法: 在第一个图像识别对象上运行这些步骤之前,将 skipmakeobjvisible 属性添加到对象存储库中的对象,并将值设置为 True

返回页首

运行使用 OCR 的步骤

以下限制会影响基于 OCR 的步骤,例如文本或文本区域检查点、文本测试对象以及从应用程序中检索文本的方法。

OCR 配置和优化

确保 UFT One 配置为实现最佳文本识别。请参见:

要求: 活动会话和应用程序

计算机会话必须处于活动状态且应用程序必须可见 (而不是最小化),步骤才能成功运行。这是因为 OCR 使用屏幕中的数据与随测试一起存储的文本进行比较。

远程连接

如果在测试远程计算机上运行的应用程序时使用最小化远程桌面连接窗口,则包含文本测试对象的步骤将失败。

变通方法: 使用其他程序(例如,虚拟网络计算)代替远程桌面连接在远程计算机上运行步骤。

性能
  • 运行使用 OCR 的步骤会比运行使用基于属性的对象识别的步骤花费更长的时间。
  • 在运行包含文本测试对象的测试时,建议关闭 Windows 动画以提高性能。
文本识别不准确
  • 一些图标和元素将被识别为特殊字符,并且对它们的识别可能因运行不同而异。
  • 当执行诸如突出显示识别的文本之类的操作时,在以下情况下操作位置可能不正确: 

    • 文本前面或内部有很大的空白。
    • 在使用的字体中,字符宽度之间存在很大差异。
.GetVisibleText 测试步骤

testobject.GetVisibleText 步骤可能无法在帧中包含的文本对象上正常工作。

变通方法: 将以下测试步骤插入到您的测试中 GetVisibleText 步骤之前,以设置 fieldMarkingType ABBYY 参数。这将指示 ABBYY OCR 引擎从帧中提取文本。

TextUtil.SetABBYYParameters "fieldMarkingType", True, 2
TextUtil.GetTextFromImageByColor 方法

TextUtil.GetTextFromImageByColor 方法在以下情况下可能无法正常工作:

  • 图像包含与文本颜色不同但色调值相似的颜色。

  • 图像包含与文本颜色相似但色调值差异很大的颜色。

变通方法:

  • 使用高分辨率图像。

  • 删除图像中不必要的部分以仅保留文本部分。

  • 如果可能,请使用其他方法从图像中检索文本。

返回页首

运行使用 AI 标识的步骤

运行包含基于 AI 的步骤的测试时,存在下面的已知问题:

AIUtil("search").Search method 运行 AIUtil("search").Search 方法时,如果应用程序中的搜索控件打开了一个输入框,但该输入框尚未立即准备好接收文本输入,则搜索字符串中的某些字符可能会丢失。
响应式布局中的序号位置 使用序号位置标识的对象可能无法在不同屏幕尺寸的不同响应式布局中进行一致地标识。
自动滚动

UFT One 仅版本 2021:

自动滚动不适用于页面滚动由特定元素控制且不属于窗口操作的网页。

表单元格

使用远程 AI 对象检测服务时未标识表单元格。

基于 Windows 的 SAP GUI 应用程序

使用 AI 测试基于 Windows 的 SAP GUI 应用程序时,不支持以下功能: 

  • AI 转换助手

  • 自动滚动

  • AIUtil(“combobox”).Select

检索“字段”AIObject 的值

使用“字段”AIObject 时,不支持 GetValue 方法。

变通方法: 请改用 GetObjectProperty ("value")

Chromium Edge 中的 IE 模式

在 Chromium Edge 中切换到或切换出 IE 模式后,AI 步骤可能会失败。

变通方法: 向测试添加 SetContext 步骤,以在切换到或切换出 IE 模式后重置 AI 上下文。

Firefox 状态栏 如果浏览器底部有状态栏,则基于 AI 的测试脚本无法在 Firefox 浏览器上运行。
AI 转换助手
  • 在移动应用程序上运行时,AI 转换助手不会滚动查找对象。因此,使用 AI 转换助手运行测试时,不会为当前移动应用程序屏幕上不可见的对象提供 AI 对象建议。

  • UFT One 版本 2021 或更早版本:

    当您在 Chrome、Chromium Edge 和 Firefox 浏览器上运行测试时,AI 转换助手不起作用。

    变通方法: 在“工具”>“选项”>“GUI 测试”>“Web”选项卡中禁用“在 Chrome、Chromium Edge 和 Firefox 中加快 Web 测试”选项。

返回页首

并行运行测试

使用 ParallelRunner 工具并行运行测试时,存在下面的已知问题。

不支持的功能

Edge

ParallelRunner 工具一次只能在一个 Edge 浏览器上运行。因此,如果您同时运行多个测试,则只能在 Edge 上运行其中一个测试。

Web 2.0 工具包

使用 ParallelRunner 时,所有 Web 2.0 工具包 (ASP.NET AJAX、Dojo、Ext-JS、GWT、jQueryUI、SiebelOpenUI 和 YahooUI) 均不受支持。

自动化对象模型

使用 ParallelRunner 运行的测试不支持 UFT One 的自动化对象模型。

Docker 容器

在 Windows 10 上,完整的 uft Docker 镜像不支持使用 ParallelRunner 并行运行测试。

UFT One 2021

  • 使用 ParallelRunner 运行的测试不支持对桌面 Web 应用程序进行基于 AI 的测试。

  • ParallelRunner 工具不支持并行运行使用 UFT One OCR 引擎的基于 AI 的移动测试。

特定的测试对象和方法

.object 方法

使用 UFT One 的 ParallelRunner 运行 Web 脚本而且 Internet Explorer 在版本低于 8 的 documentMode 中运行时,则 .object 方法不受支持。

WebFile 对象

不支持并行执行 WebFile 对象。

SystemUtil.Run 方法

并行运行测试时,由 SystemUtil.Run 方法启动的浏览器可能会产生意外结果。

建议改用 WebUtil.LaunchBrowser 方法。

运行结果

Internet Explorer

要在 Internet Explorer 中查看 ParallelRunner 运行结果,请使用 Internet Explorer 10 及更高版本。

Safari

在 Mac 计算机上的 Safari 中打开带有设备监控图形的运行结果时,不显示表明时间戳的红线。要查看这些红线,请使用其他浏览器查看运行结果。

设备系统监控

设备系统监控未显示在 HTML 运行结果图形中。相反,要查看并行运行的设备测试的系统监控数据,请检查从运行结果链接的日志文件。

应用程序快照

在 Java 应用程序的并行测试中,ParallelRunner 可能会将错误的应用程序快照保存到运行结果报告中。

设备测试

设备预留和释放

  • ParallelRunner 无法基于使用 Device 测试对象的数据驱动型测试或基于 Util 方法 (如 MobileUtil.SetActiveMobileDeviceByID) 预留设备。
  • 在并行测试过程中,按 CTRL+C 不会释放设备。

图像识别/OCR/突出显示

当测试使用图像识别对象或者使用 OCR 或突出显示机制时,移动设备上的并行测试可能会失败。

变通方法: 对于图像识别对象或 OCR 机制,请对并行显示设备的远程访问窗口进行排列,使这些窗口不会重叠。

疑难解答

在某些情况下,每当使用 ParallelRunner 运行 Web 测试时,它们都会停止响应。

变通方法: 

更改 ParallelRunner 用作本地 IP 地址的地址。

  1. 获取计算机的本地 IPV4 地址 (在命令窗口中键入 ipconfig)。
  2. 在“<UFT One 安装文件夹>\bin”文件夹中,打开 parallel.ini (或 parallel.custom.ini,但前提是它存在)。
  3. IP=127.0.0.1 定义更改为本地 IPV4 地址并保存文件。

返回页首

在维护模式下运行测试

使用编程描述

以维护模式运行时,如果步骤包含应用程序中找不到的对象的编程描述,那么维护模式可能需要一些时间才能指示存在问题。如果使用指向该对象的选项,那么维护模式以后可能需要一些时间才能重新打开。

不具备必要属性或辅助属性的对象

当“维护运行向导”找不到对象,并且该对象的测试对象描述没有任何强制或辅助属性(它仅由其序号标识符识别,比如浏览器测试对象),那么当您指向对象时,该向导无法修复该问题,并显示一条消息,说明您指向的对象与 UFT One 无法识别的对象具有相似的测试对象描述。

变通方法: 使用“对象存储库”窗口(对于本地存储库中的对象)或对象存储库管理器(对于共享对象存储库中的对象)中的从应用程序更新选项修复测试对象描述。

通过指向其他对象类来更新步骤

当“维护运行向导”在应用程序中找不到对象,并且您指向其他对象类来替换它,那么“维护运行向导”提供添加具有该对象和对象默认方法的步骤。但是,该向导不为该步骤插入任何方法参数。如果步骤方法具有必需参数,并且您接受“维护运行向导”建议的步骤而不修改它,那么当您运行它时,步骤将失败。

变通方法: 为步骤输入有效的方法参数。

更新 XPath 或 CSS 属性

当以维护模式运行时,UFT One 可能会将具有 XPath 或 CSS 标识符属性值的测试对象替换为应用程序中的新对象。

变通方法: 使用对象存储库管理器的从应用程序更新选项更新具有 XPath 或 CSS 标识符属性值的特定测试对象。

函数库中使用的对象 如果步骤调用的函数库中正在使用对象,那么维护模式无法修复该对象属性的问题。如果维护模式检测到函数库中的对象存在问题,将显示一条消息,说明该测试为只读且维护模式被禁用。

返回页首

在“更新运行”模式下运行测试

图像识别

“更新运行”模式不会更新图像识别或文本测试对象。

要更新某个图像识别或文本测试对象,请在对象存储库中打开此对象,并在“测试对象图像”区域中单击“更改测试对象图像”按钮

对于文本测试对象,可以手动更新 text 属性,该属性用于标识应用程序中的文本。请注意,这不会更新与测试对象一起保存的图像。

检查点和输出值

“更新运行”不支持更新复杂的检查点和输出值类型,如文件和 XML。

更新运行期间,这些检查点和输出值像在常规测试运行中一样运行,并在预期值和实际值之间存在差异时失败。

返回页首