【问题标题】:QTP Writing test on Win32 app ObjectSpy not finding object id在 Win32 应用程序 ObjectSpy 上的 QTP 编写测试未找到对象 ID
【发布时间】:2018-10-21 10:17:16
【问题描述】:

我在使用 Selenium 为 Web 应用程序编写自动化测试方面经验丰富。 但是,我现在必须自动化一个我不熟悉的 Windows 桌面应用程序。

我正在使用 QTP 11(旧版本),我可以让 QTP 登录到桌面应用程序中输入用户名/密码。但是,当应用程序加载时,会出现 Windows 桌面等图标。我尝试在 Actions 文件夹图标上使用 ObjectSpy,但它找不到对象 ID,它认为该图标是 WinObject("COMPOSITE")

还尝试使用 QTP 记录功能,但它生成的代码使用硬编码的 x 和 y 值。我不想使用 x,y 值,就好像 Actions 图标在未来向左或向右移动 3cms 时测试将失败。 例如 Window("Loan IQ").WinObject("COMPOSITE").Click 369,33

需要帮助在 Win32 应用程序中查找对象 ID。谢谢

【问题讨论】:

    标签: automated-tests qtp


    【解决方案1】:

    首先,您应确保已配置 UFT 以测试您的应用程序。在 Record and Run Settings 对话框中,确保 _any windows application__ is selected or your app is explicitly listed.

    如果这不能改善这种情况,您可以尝试使用image based testing(又名 Insight)。

    【讨论】:

    • 我已在所选的任何 Windows 应用程序上录制并运行测试。还尝试通过添加 exe 来指定我的应用程序。不幸的是,QTP 仍然记录 x,y 坐标。 Window("Loan IQ").WinObject("COMPOSITE").DblClick 363,31
    【解决方案2】:

    WIN32 应用程序自动化可能是一场噩梦,尤其是使用 QTP 11,因为它是一个有点过时的版本。如果您想获得稳定的自动化,我建议如下:

    1. 升级到更新版本的 UFT (14+) 这很可能不会帮助您识别对象,但会支持许多新技术,这些技术可能会帮助您,如以下步骤所述
    2. 使用基于图像的识别 即使您的屏幕分辨率发生变化,UFT 仍然能够识别图片。它不使用绝对向量来比较位图,而是使用不同的技术,我不会详细介绍(长话短说,屏幕分辨率变化是可以的)
    3. 为您的小部件提供支持 Microsoft 有 2 个可用于提供 UI 自动化功能的框架(最初用于具有可访问性需求的人,但现在用于 RPA 和 GUI 测试)。 UFT 支持 Microsoft 的 MSAA 和 UIA 框架,因此如果您的公司已准备好通过其中一种技术实现对 UI 小部件的支持,那么您就可以实现流畅的测试自动化体验。请注意:这主要是一项巨大的投资,因此如果该工具是内部的并且没有计划长期使用,使用基于图像的识别

    【讨论】:

      最近更新 更多