嵌入式框架/无头浏览器

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

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

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

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

基于 Chromium 的框架

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

  • Electron

  • JxBrowser

  • NW.js

无头浏览器

  • Headless Chrome

  • PhantomJS

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

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

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

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

返回页首

连接到 Web 应用程序

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

为您的应用程序做好测试准备

将嵌入式浏览器配置为始终打开用于进行远程调试的端口。

查看嵌入式浏览器的文档,以获取有关如何执行此操作的说明。

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

CEF 示例:

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

定义 UFT One 选项

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

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

准备 UFT One 计算机

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

在远程计算机上测试 如果您正在远程计算机上运行 UFT One 脚本,请在运行测试前继续在远程计算机上配置连接

以编程方式连接应用程序或与应用程序断开连接

将以下语句添加到测试或组件中,以使 UFT One 连接应用程序或与应用程序分离:

  • WebUtil.AttachRemoteDebugging

    示例:

    Webutil.AttachRemoteDebugging "127.0.0.1:3056",default,"C:\downloads\chromedriver.exe"
  • WebUtil.DetachRemoteDebugging

在这些语句中,您已为 Web 应用程序提供远程地址和远程调试端口号。

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

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

使用不同的 ChromeDriver 版本

UFT One 安装中包括用于测试 CEF、Electron 和 JxBrowser 应用程序的 ChromeDriver。您可以在 UFT One 产品可用性矩阵中找到此 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. 浏览至 https://nwjs.io/,然后下载包含 chromedriver.exe 文件的 SDK。
  2. chromedriver.exe 文件复制到“<UFT One 安装文件夹>\bin\WebDriver\NW”目录中。

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

返回页首

在远程计算机上配置连接

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

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

    Mac: http://macappstore.org/socat/

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

  2. 运行 socat 命令:

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

    其中:

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

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

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

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

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

返回页首

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 不支持录制。

返回页首

另请参见: