嵌入式框架/无头浏览器

本主题介绍如何在嵌入式框架中或在测试无头浏览器时开始测试 Web 应用程序。

有关在 Internet Explorer 嵌入式浏览器控件中测试 Web 应用程序的详细信息,请参阅Internet Explorer 嵌入式浏览器控件

警告: 本主题中的说明包括从 Internet 下载 Micro Focus 不提供的可执行文件,例如 chromedriver.exephantomjs.exeWebView2 driver

我们鼓励您仅使用来自官方 Chrome、NW.js 和 PhantomJS Internet 站点的正版可执行文件。不遵守此建议可能会使您的系统面临更大的安全风险。所有相关风险均由客户自行承担,Micro Focus 对此不承担任何责任。

受支持的框架/无头浏览器

UFT One 可以在使用以下框架和无头浏览器开发的 Web 应用程序上录制和运行使用标准 GUI 测试支持的测试:

基于 Chromium 的框架
  • Chromium Embedded Framework (CEF)

    Chromium Embedded Framework 支持适用于 Java CEF、CEF Sharp 和 Adobe CEP。本主题中的 CEF 是指上述所有对象。

  • Electron

  • JxBrowser

  • NW.js

在测试基于 Chromium 的框架之前,请参阅连接到 Web 应用程序 (基于 Chromium 的框架和 Microsoft Edge WebView2)

无头浏览器
  • Headless Chrome。在测试 Headless Chrome 之前,请参阅 Headless Chrome

  • PhantomJS。在测试 PhantomJS 之前,请参阅 PhantomJS

Microsoft Edge WebView2

在测试 Microsoft Edge WebView2 中嵌入的 Web 应用程序之前,请参阅连接到 Web 应用程序 (基于 Chromium 的框架和 Microsoft Edge WebView2)

.NET Web Forms、基于 Web 的 SAP、Siebel 和 Java 等其他基于 Web 的插件不支持这些高级框架和浏览器。

基于 Web 扩展性的插件 (例如 Web 2.0 工具包) 支持高级框架和浏览器。

返回页首

连接到 Web 应用程序 (基于 Chromium 的框架和 Microsoft Edge WebView2)

在使用“基于 Chromium 的框架”Microsoft Edge WebView2 开发的 Web 应用程序上录制或运行测试之前,请执行以下操作:

要连接到 Web 应用程序,请执行以下操作:

  1. 准备 Web 驱动程序。

    • 基于 Chromium 的框架: 用于测试 CEF、Electron 和 JxBrowser 应用程序的 ChromeDriver 会随 UFT One 安装一起自动安装。但如果需要不同的版本,请参阅使用不同的 ChromeDriver 版本

    • Microsoft Edge WebView2: 从 Microsoft Edge WebDriver 下载页面下载 WebView2 驱动程序。

      确保 Microsoft Edge WebDriver 的版本与 WebView2 中嵌入的浏览器版本相匹配。

  2. 将嵌入式浏览器配置为始终打开用于进行远程调试的端口。有关如何执行此操作的说明,请查看嵌入式浏览器的文档。

    记下要在后续步骤中使用的端口号。

    Example: 在 CEF 文件夹中,打开命令提示符并运行以下命令: cefclient.exe --remote-debugging-port=<端口号>

    官方 WebView2 应用程序侦听调试端口的默认方式是添加环境变量 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 并将其值设置为 --remote-debugging-port=<端口>

  3. 请执行以下操作之一以连接到 Web 应用程序。

    • 在“选项”对话框的“远程连接”窗格中,为 Web 应用程序添加远程地址和远程调试端口号。这使 UFT 能够找到应用程序的对象。

      有关详细信息,请参阅 Web 远程连接窗格 (“选项”对话框 >“GUI 测试”选项卡)

    • 将以下语句添加到测试或组件中,以使 UFT One 连接到应用程序。在这些语句中,提供远程 IP 地址、远程调试端口号和 Web 驱动程序路径。

      基于 Chromium 的框架

      WebUtil.AttachRemoteDebugging "localhost:<端口>", "default", "<驱动程序路径>"

      Microsoft Edge WebView2

      WebUtil.AttachRemoteDebugging "localhost:<端口>", "MsEdgeWebView2", "<驱动程序路径>"

      有关更多详细信息,请参阅《UFT One Object Model Reference for GUI Testing》实用程序部分中的 WebUtil 对象。

      要从应用程序分离,请使用以下语句:

      WebUtil.DetachRemoteDebugging "localhost:<端口>"

      备注: 如果已手动关闭与该应用程序的连接,UFT One 将无法标识应用程序中的对象。

  4. 测试 NW.js 框架时在 UFT One 计算机上执行其他步骤。有关详细信息,请参阅 NW.js 框架

  5. 如果您正在远程计算机上运行 UFT One 脚本,请在运行测试前继续在远程计算机上配置连接 (基于 Chromium 的框架)

使用不同的 ChromeDriver 版本

UFT One 安装中包括用于测试 CEF、Electron 和 JxBrowser 应用程序的 ChromeDriver。您可以在支持矩阵中找到此 ChromeDriver 的版本。

如果要用于应用程序的基于 Chromium 的框架要求使用其他 ChromeDriver 版本,请执行以下操作之一:

  • 在“<UFT One 安装文件夹>\bin\WebDriver”目录中,将 chromedriver.exe 文件替换为与您的应用程序匹配的版本。

  • chromedriver.exe 的一个或多个版本存储在 UFT One 计算机中。调用 WebUtil.AttachRemoteDebugging 方法时,请指定相关 chromedriver.exe 的路径。

有关更多详细信息,请参阅 http://chromedriver.chromium.org/downloads

NW.js 框架

为测试 NW.js 框架中嵌入的 Web 应用程序,UFT One 将通过 NW.js WebDriver 与 NW.js 框架进行通信。

在测试 NW.js 应用程序之前,请执行以下操作以确保 UFT One 安装文件夹中存在 NW.js WebDriver。

  1. 下载 NW.js SDK,其中包含 chromedriver.exe 文件。
  2. chromedriver.exe 文件复制到“<UFT One 安装文件夹>\bin\WebDriver\NW”目录中。

您可以为不同的应用程序使用不同版本的 NW.js WebDriver。将 chromedriver.exe 文件存储在不同的位置,并在对 WebUtil.AttachRemoteDebugging 的调用中提供相关 WebDriver 的路径。

返回页首

在远程计算机上配置连接 (基于 Chromium 的框架)

如果您使用的是基于 Chromium 的框架并正在远程计算机上运行 UFT One 脚本,请按如下所示另外配置远程计算机:

  1. 从以下位置之一安装 socat:

    Mac: http://www.dest-unreach.org/socat/download/

    Windows: https://github.com/tech128/socat-1.7.3.0-windows

  2. 运行 socat 命令:

    socat tcp-listen:<x>,fork tcp:localhost:<y>

    其中:

    <x> 是指 UFT One 尝试访问的目标计算机上的端口号

    <y> 是指用于在目标计算机上进行调试而公开的 CEF 远程调试端口

  3. 禁用或更改防火墙以允许相关端口。

UFT One 现在可以通过您为 <x> 定义的端口使用远程应用程序。

有关更多详细信息,请参阅: http://stackoverflow.com/questions/6827310/chrome-remote-debugging-doesnt-work-with-ip

返回页首

Headless Chrome

在 Headless Chrome 上录制或运行测试之前,请执行以下操作:

  1. 检查随 UFT One 安装的 ChromeDriver 是否与您使用的 Headless Chrome 版本相匹配。

    如果不匹配,请将 <UFT One 安装文件夹>\bin\WebDriver 目录中的 chromedriver.exe 文件替换为与您的应用程序相匹配的版本。

  2. 在“录制和运行设置”对话框中选择 Google Headless Chrome 作为浏览器。

返回页首

PhantomJS

在 PhantomJS 工具包上运行测试,而不在现有测试中进行任何更改。

为此,请执行以下步骤:

  1. phantomjs.exe 文件添加到“<UFT One 安装文件夹>\bin\PhantomJS”目录中。

    下载 PhantomJS 时可以访问此文件。有关详细信息,请参阅 http://phantomjs.org

  2. 在“录制和运行设置”中,选择 PhantomJS 作为浏览器。

  3. UFT One 将使用较新的 WebDriver 版本,该版本不支持 PhantomJS。要将 WebDriver 降级以支持 Phantom JS,请执行以下操作:

    将“<UFT One 安装文件夹>\bin”中的 WebDriver.dllWebDriverHost.exe 文件替换为“<UFT One 安装文件夹>\bin\WebDriver\3.0.1.0”中的相同文件。

运行测试时,UFT One 将启动已安装的 PhantomJS 版本并在工具包上运行测试。

备注: PhantomJS 不支持录制。

返回页首

另请参见: