使用 Azure DevOps 运行本地测试

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

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

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

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

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

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

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

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

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

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

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

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

    OpenText Functional Testing 在运行结束时也保持打开状态。

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

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

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

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

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

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

    选项描述
    显示名称

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

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

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

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

    超时

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

    第一次失败时取消运行

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

    生成 JUnit 报告选择是否生成测试运行的 JUnit 报告。运行后,此报告可在“UFTWorking/res/Report_<构建运行编号>”文件夹的 junit_report.xml 文件中找到。
    生成“失败的测试”报告

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

    提示: 此报告基于 JUnit 运行结果报告。因此,此选项仅在您选择“生成 JUnit 报告”时可用。

    替代方案: 使用批处理文件

    或者,指示包含测试及其参数列表的批处理文件。

    • 指定多个测试,或多次指定同一测试,但每次使用不同的参数。
    • 使用 reportPath 参数定义测试结果的特定路径。

    批处理文件应具有 .mtbx 扩展名,并使用以下语法:

    <Mtbx>
     <Test name="test1" path="c:\tests\APITest1">
     <Parameter name="A" value="abc" type="string"/>
     ....
     </Test>
     <Test name="test2" path="c:\tests\test2">
      <Parameter name="p1" value="123" type="int"/>
      <Parameter name="p4" value="123" type="float"/>
       ....
     </Test>
     <Test name="test3" path="c:\tests\APITest3" reportPath="c:\reports\APITest3">
    </Mtbx>
  5. (可选) 配置运行步骤以将 OpenText Functional Testing 的测试结果信息上传到 Azure 存储位置。

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

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

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

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

    选择“是”

    要上传的项目

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

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

    报告文件名

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

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

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

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

    配置与 OpenText Functional Testing Lab 的连接:

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

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

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

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

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

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

    使用代理服务器设置

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

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

    使用代理服务器凭据。选择您的代理服务器是否需要身份验证。

    代理服务器用户名和密码。代理服务器用于身份验证的凭据。

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

    选项描述
    设备

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

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

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

    示例:

    设备 ID: "123456789"

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

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

    开始时启动

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

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

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

    • Functional Testing Lab 应用程序: OpenText Functional Testing Lab 上托管的应用程序。

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

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

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

    其他 Functional Testing Lab 应用程序

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

返回页首

查看测试结果

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

可视报告

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

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

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

  • JUnit 报告显示所有测试的信息。

  • 如果您选择了“生成‘失败的测试’报告”选项,“失败的测试”部分会显示任何失败步骤的详细细分。该数据存储在名为 Failed Tests.html 的文件中。

备注:  

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

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

检索运行结果文件

  • JUnit 报告可在“UFTWorking/res/Report_<构建运行编号>”文件夹的 junit_report.xml 文件中找到。

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

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

如果从 Team Foundation Server (TFS) 运行 OpenText Functional Testing 测试

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

例如:

返回页首

构建中止时释放 OpenText Functional Testing 许可证

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

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

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

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

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

  1. 在运行 OpenText Functional Testing 的客户端计算机上,创建一个 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 文件的路径>

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

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

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

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

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

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

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

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

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

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

返回页首

另请参见: