使用 Azure DevOps Server 或 Services 运行本地测试

本主题介绍如何从 Azure DevOps Server (以前称为 TFS) 运行存储在本地计算机上的 UFT One 测试。

备注: 本主题描述如何使用 UFT One Azure DevOps extension 版本 24.2.*。为了从最新功能中受益,建议将现有任务的版本更新到 24.2.*。使用此扩展版本时,请确保从 ADM-TFS-Extension GitHub 存储库安装了相应的 UFT.zip 文件。

运行保存在本地计算机上的测试

在 Azure DevOps Server 中,执行以下操作:

  1. 创建管道。(注: 如果您要使用 TFS,请跳过此步骤)

    1. 使用 Empty job 模板创建构建管道或发布管道。

      注: 构建管道是在您未显式创建发布管道时创建的管道类型。

    2. 选择包含要运行测试的代理的代理池。

    3. 在管道变量中,添加一个 UFT_LAUNCHER 变量。该变量的值应为 UFTWorking 文件夹的完整路径。

    有关更多详细信息,请参阅 Microsoft Azure 文档

  2. 要使用已打开的 UFT One 可见实例 (如果存在) 运行测试,而不是为每次运行打开新的 UFT One 实例,请执行以下操作:

    定义新的管道变量: LEAVE_UFT_OPEN_IF_VISIBLE,并将其值设置为 true (或 yes1)。

    UFT One 将保持打开状态,直到运行结束。

  3. 添加 UFT One 任务,然后按照构建顺序将该步骤置于正确位置中。

    备注: 如果您正在使用发布管道,请在相关阶段添加任务,然后将步骤放入构建中。

    1. 从“任务”目录中,选择“测试”选项卡。将显示所有可用测试任务的列表。

    2. 在“测试”选项卡中,选择“UFT One 文件系统运行”任务,然后单击“添加”。添加的空白新任务将作为构建管道的一部分。

      备注: 如果您正在使用发布管道,则该任务将作为部署过程的一部分添加。

  4. 为构建步骤提供以下信息。

    选项描述
    显示名称

    默认情况下,Azure DevOps Server CI 系统将使用任务的预设描述符。为步骤提供更有意义的名称。

    测试测试、测试批处理文件或包含要运行的测试的文件夹。对于多个测试,测试路径、名称或测试结果路径应以逗号分隔。
    时间戳模式

    在“扩展”选项卡中定义用于报告的时间戳字段的值格式。

    默认值为 yyyy-MM-dd HH:mm:ss

    超时

    无法打开或运行测试时要等待的时间 (以秒为单位)。如果该字段留空,则不存在超时。

    第一次失败时取消运行

    选择测试运行中的一个测试失败时是否取消整个作业。

    生成“失败的测试”报告

    选择是否生成提供有关测试的失败步骤信息的报告。运行后,报告在“扩展”选项卡中可用。

  5. (可选) 配置运行步骤以将 UFT One 的测试结果信息上传到 Azure 存储位置。

    通过将 UFT One 结果上传到 Azure 存储,可以在测试运行后从 Azure DevOps 门户访问结果。

    确保您执行了为您的 UFT One 检测结果设置 Azure 存储中描述的步骤。

    然后在“UFT One 文件系统运行”构建步骤中输入以下选项:

    选项描述
    是否要将 UFT 报告上传到存储帐户?

    选择“是”

    要上传的项目

    选择上传 html 运行结果报告和/或所有 UFT One 结果文件的存档。

    备注: 当运行 API 测试时,建议上传存档,因为独立 html 运行结果报告不包含有关捕获数据的任何信息。RequestBodyHttpRawRequest 步骤的内容在存档中包含的 html 文件中可用。

    报告文件名

    接受基于管道名称和内部版本号的默认文件名,或者输入您选择的名称。

  6. 要在移动设备上或云浏览器中运行本地测试,请配置 Digital Lab 选项。

    您在 Azure 任务中定义的设置将覆盖在 UFT One“录制和运行设置”中定义的设置。对于您未在 Azure 中指定的任何内容,将使用“录制和运行设置”。

    从低于 24.2.0 的版本升级任务时: Azure 任务中的 Digital Lab 设置现在分组在“使用 Digital Lab”选项下方。当您将 Azure 任务升级到新扩展时,必须选择此选项,以使 Digital Lab 设置继续生效。

    配置与 Digital Lab 的连接:

    选项描述
    服务器提供 Digital Lab 服务器的地址,格式为“http[s]://<服务器名称>:<端口>”
    身份验证类型

    选择用于连接到 Digital Lab 的身份验证模式:

    • 基本身份验证。使用用户名和密码进行身份验证。

    • 访问密钥身份验证。使用您从 Digital Lab 收到的访问密钥进行身份验证。

    用户名和密码。如果您选择了“基本身份验证”,请输入 Digital Lab 服务器的登录凭据。

    访问密钥。如果选择了“访问密钥身份验证”,请输入从 Digital Lab 收到的访问密钥。

    使用代理服务器设置

    如果已选择使用代理服务器进行连接,请提供以下信息:

    代理服务器: 代理服务器的地址,格式为“<代理服务器名称>:<端口>”

    使用代理服务器凭据。使您可以使用特定帐户连接到 Digital Lab 服务器。

    代理服务器用户名和密码。在选择了“使用代理服务器凭据”的情况下用于连接到 Digital Lab 服务器的凭据。

    选择“使用设备实验室”以指定要测试的设备和应用程序的相关详细信息:

    选项描述
    设备

    指定移动测试的设备信息,包括“设备 ID”、“制造商”、“型号”、“操作系统类型”“操作系统版本”。

    您可以通过运行获取 Digital Lab 资源任务 (以前称为“UFT Mobile 获取资源”),检索这些字段的值。

    如果提供了“设备 ID”的值,将忽略其他字段。

    示例:

    设备 ID: "123456789"

    制造商: "Samsung",型号: "SM-G920F"

    操作系统类型: "ANDROID",操作系统版本: "7.0"

    开始时启动

    选择要在测试开始时自动启动的应用程序。

    • 主屏幕: 设备的主屏幕。

    • 系统应用程序: 设备上预安装的系统应用程序,例如相机。

    • Digital Lab 应用程序: Digital Lab 上托管的应用程序。

    系统应用程序。指定要在设备上测试的系统应用程序。

    Digital Lab 主应用程序。如果选择“Digital Lab 应用程序”,请指定要测试的主应用程序。

    值的格式必须采用 Identifier: "<应用程序标识符>", Packaged: "<Yes/No>",其中 Identifier 是必需项,Packaged 是可选项。您可以通过运行获取 Digital Lab 资源任务 (以前称为“UFT Mobile 获取资源”),获取应用程序标识符。

    其他 Digital Lab 应用程序

    指定要测试的其他应用程序。

    值的格式必须采用 Identifier: "<应用程序标识符>", Packaged: "<Yes/No>",其中 Identifier 是必需项,Packaged 是可选项。您可以通过运行获取 Digital Lab 资源任务 (以前称为“UFT Mobile 获取资源”),获取应用程序标识符。

    安装选择以在测试开始时安装应用程序。
    重新启动选择以在测试开始时重新启动应用程序。
    卸载选择以在测试结束时卸载应用程序。

    选择“使用云浏览器实验室”以描述要为此测试运行打开的浏览器:

    • 指定要测试的应用程序的 URL。浏览器将打开至此网页。

    • 指定浏览器信息,包括其地理“位置”、运行它的“操作系统”、“浏览器类型”及其“版本”

      您可以通过运行获取 Digital Lab 资源任务,检索这些字段所使用的值。

      您可以指定特定版本或以下版本之一:

      • latest: Digital Lab 服务器支持的最新版本。

      • latest-1: Digital Lab 服务器支持的第二新的版本。

      • latest-2: Digital Lab 服务器支持的第三新的版本。

      有关受支持版本的列表,请参阅 Digital Lab 支持矩阵

  7. 为该步骤配置 CI 系统控制选项,包括:

    已启用指定是否应在此构建过程中运行步骤。
    出错时继续指示 CI 系统在此步骤出错时停止或继续构建。
  8. 将您的管道设置为运行:

    构建管道: 保存管道并将其排队。

    发布管道: 创建版本并部署管道。

    当管道运行时,UFT One 测试作为您添加的任务的一部分运行。

返回页首

查看测试结果

测试运行之后,可以通过以下方式查看运行结果:

可视报告

在运行结果的“扩展”选项卡中,您可以看到包含以下部分的报告: 

  • “UFT 报告”部分显示测试运行状态,以及指向 UFT One 报告和存档的链接 (如果它们已上传到 Azure 存储)。

  • “运行摘要”显示运行的测试数量以及每个状态的百分比。

  • 如果您选择了“生成‘失败的测试’报告”选项,“失败的测试”部分会显示任何失败步骤的详细细分。

备注:  

  • 如果您正在使用发布管道,则这些结果可在“阶段”级别获得。

  • 有时,如果您在测试运行期间中止作业,则不会显示“扩展”选项卡。即使“扩展”选项卡可用,且您选择了“生成‘失败的测试’报告”选项,也不会显示“失败的测试”部分。

检索运行结果文件

  • 详细的失败结果以 JUnit 格式存储在位于“UFTWorking/res/Report_<构建运行编号>”文件夹的 junitreport.xml 文件中。

  • 如果 UFT One html 报告和存档文件已上传到 Azure 存储,您可以在存储容器中访问它们。

  • 如果您在测试运行期间中止作业,则在作业停止之前执行的所有测试的结果将保存到 %UFT_LAUNCHER%\res\Report_###\ 文件夹的 Results###.xml 文件中。

如果从 Team Foundation Server (TFS) 运行 UFT One 测试

您还可以在 TFS 构建运行结果的“摘要”选项卡中查看 UFT One 运行结果。

例如:

返回页首

构建中止时释放 UFT One 许可证

当您在构建完成测试运行之前中止构建时,UFT One 许可证可能仍在使用中。

要释放许可证,请准备一个 clean.vbs 脚本,在构建中止后直接从命令行运行该脚本。

或者,您可以将脚本任务添加到管道中,让该任务自动为您释放许可证。

备注: 如果脚本运行时 UFT One 可见且繁忙,cleanup.vbs 可能无法中断它。在这种情况下,您需要手动停止 UFT One 并将其关闭,以释放许可证。

要通过从命令行运行脚本来释放许可证,请执行以下操作:

  1. 在运行 UFT One 的客户端计算机上,创建一个 clean.vbs 文件,其中包含以下内容:

    Copy code
    On Error Resume Next
    Set qtApp = CreateObject("QuickTest.Application")
    If qtApp.Launched Then
    qtApp.Test.Stop
    qtApp.Test.Close
    End If
    qtApp.Quit
    Set qtApp = Nothing
  2. 中止构建后从命令行运行该脚本。

  3. 检查许可证是否已成功释放。请参阅检查许可证是否已释放

要添加将许可证自动释放到管道的脚本任务,请执行以下操作:

  1. 准备一个 clean.vbs 文件。请参阅步骤 1

  2. 在您的管道中,添加“命令行”任务。

  3. 在新任务中输入以下内容: 

    • 在“脚本”框中输入:

      cscript <clean.vbs 文件的路径>

    • 在“运行此任务”选项中,选择“即使之前的任务失败,即使构建被取消”

    此“脚本”任务始终自动运行,并且无论是否过早中止构建,都会在构建结束时关闭 UFT One 以释放许可证。

    备注: 建议您以管理员身份运行远程 Azure 代理。

构建结束后,检查许可证是否已成功释放。请参阅检查许可证是否已释放

要检查许可证是否已释放,请执行以下操作:

  1. 在 AutoPass License Server 上,单击“使用情况报告”菜单。

  2. 在“UFT Enterprise 并发用户”下,单击“历史记录”选项卡。

  3. 在页面底部的表格中,查看“客户端信息”列,找到有关您的许可证的记录。

    • 如果您能在那里找到许可证记录,表明您的许可证已成功释放。

    • 如果您的许可证位于“使用中”选项卡中,则表明您的许可证仍在使用中。

返回页首

另请参见: