我尝试使用 QTP 9.5 使 Citrixl Program Neightbourhood 下可用的应用程序自动化,但 QTP 无法识别应用程序内的对象。我们可以使用 QTP 自动化 citrix 应用程序吗?
有哪些不同的工具可用于对 Citrix 应用程序执行自动化测试?
我尝试使用 QTP 9.5 使 Citrixl Program Neightbourhood 下可用的应用程序自动化,但 QTP 无法识别应用程序内的对象。我们可以使用 QTP 自动化 citrix 应用程序吗?
有哪些不同的工具可用于对 Citrix 应用程序执行自动化测试?
我使用 Scapa Technologies 进行 Citrix ICA 或终端服务测试。Scapa 提供了一个安装在 Citrix 服务器上的自动化工具。然后它有一个控制器来启动 citrix 会话,与服务器通信并启动调用自动化脚本的自动化工具。它实际上在服务器上运行,因此它可以与应用程序控件进行交互。
Citrix 自动化的困难在于应用程序作为图像流线到客户端计算机,因此您无法访问元素的 UI 树。
UiPath可以通过使用一些图像自动化特定技术来自动化非常简单的 Citrix 应用程序(也包括桌面或 Web)
这是一个完整的教程,展示了不同的 Citrix(或虚拟桌面)自动化技术
UiPath 有一个可以从代码中使用的 SDK。默认设置是直接从 UiPath Studio 创建可视化自动化(工作流程)。
注意:我在 UiPath 工作。您还应该尝试其他可视化自动化工具,例如 Automation Anywhere、WinAutomation、QTP、Selenium 等,并排使用它们并选择更适合您需求的工具。
只有安装在 Citrix 机器上的 QTP 才支持 Citrix,它不支持通过客户端工作。
出于技术原因,这是因为 QTP 需要能够侦听 Windows 消息并将其 DLL 加载到某些应用程序中,而这些应用程序无法从不同的机器上执行。
传统工具通常不适用于在远程桌面应用程序中运行的应用程序。所需的接口不可用。可能您唯一的选择是像Eggplant这样的基于图像的工具。
值得一提的是,正如您在 2000 年代初为一家大型电信公司所描述的那样,我已经自动化了 CITRIX 应用程序。我通过深入了解 Windows SendMessage API 和光学字符识别包来做到这一点。您可能会对使用我团队的 CITRIX/屏幕抓取“机器人”将多少数据从一个系统转移到另一个系统感到惊讶。我遇到这个问题是因为我在回忆这个项目,想知道在这个时代是否仍然需要这种类型的解决方案。
通过 citrix QTP 对象识别完全不同。远程机器上的 QTP 基于位置和引用处理对象,因此几乎不可能实现自动化。
正如 Motti 所说,您无法通过 Citrix 客户端实现自动化。一般来说,Citrix 客户端很难自动化。我知道我工作中的某个人使用它,他设法捕捉到一些可能对通过 Citrix 自动化测试有用的通信和对象,但这将是创建此类解决方案的单独开发项目,可能非常有限。
根据我的经验,这种类型的设置最好使用图像识别和/或支持 OCR 的测试工具(如茄子)来处理,但实际上并不建议使用包含 Citrix 的测试环境。另一种选择可能是在 Citrix 机器中安装像 AutoIT 这样的自动化工具,并使用其他工具触发脚本(可能是 Selenium,但我还没有尝试过)。