使用 Jenkins 触发本地 UFT One 测试

本主题介绍如何运行存储在本地计算机上的 UFT One 测试。

运行本地 UFT One 测试

配置 Jenkins 构建步骤以运行一个或多个本地 UFT One 测试。

配置 Jenkins 构建步骤以运行 UFT One 测试

  1. 在 Jenkins 作业的“项目配置”部分,向下滚动到“构建”部分,单击“添加构建步骤”,然后为自由风格项目选择“从文件系统执行 OpenText 测试”

    备注: 对于管道,在“管道语法”页面中,从“示例步骤”下拉菜单中选择 runFromFSBuilderUFTScenarioLoad,生成脚本,并将脚本复制到管道脚本框中。

    UFTScenarioLoad 选项已废弃,仅支持向后兼容。

  2. 在“测试”框中,输入测试及其完整的绝对路径,或者输入包含一个或多个测试的文件夹或 MTB。

    要指定多个条目,请单击字段右侧的向下箭头,然后在单独的行上输入每个测试路径。确保可以从本地网络中的所有计算机访问这些路径。

    提示: 或者,标示一个包含测试列表及其参数的批处理文件。有关详细信息,请参阅使用批处理文件指定多个测试

  3. (可选) 指定要以下列方式之一使用的测试参数:

    备注:  

    • 建议在表中指定测试参数,而不是在“测试”框中进行指定。第一种方法使您能够仅提供字符串或数字参数值,仅向后兼容功能支持此方法。

    • 指定测试所需的每个测试参数的值,或确保在 UFT One 中为参数定义了默认值。

    • Application Automation Tools 插件版本 7.6 及更高版本: 您可以在表中定义类型为“密码”的 GUI 测试参数。有关如何对测试运行结果中的“密码”参数的值进行加密的信息,请参阅对测试运行结果中的密码进行编码

  4. (可选) 配置以下设置:

    结果目录 指定用于保存测试结果的位置。对结果文件进行命名时要确保它们不会覆盖该位置中的任何现有结果。
    UFT One 并行运行模式

    选择在多个环境中运行测试。

    有关更多详细信息,请参阅在多个环境中并行运行测试

    超时

    指示超时 (以秒为单位),超时之后作业将失败。

    将 Jenkins 配置为加载任何已完成此构建步骤的测试的 UFT One 运行结果所必需的,即使某个测试失败并阻止其他测试运行时也是如此。

    运行模式

    为测试定义 UFT One 运行模式:

    1. 选择 UFT One 特定的设置
    2. 从“运行模式”下拉列表中,选择“快速”或“调试”

    有关更多详细信息,请参阅测试运行窗格(选项对话框> GUI 测试选项卡)

    配置失败场景

    配置 UFT One 在您的测试或测试运行中的测试失败时执行的操作。

    有关详细信息,请参阅配置测试运行的失败场景

    输出编码

    (插件版本 7.4 及更高版本)

    选择要用于 Jenkins 控制台输出文本的编码字符集。默认值是 UTF-8

    警告: 我们不建议同时配置失败场景与并行测试运行。这样做可能会导致 UFT One 出现意外行为。

  5. 单击“应用”保存更改,然后继续执行更多构建步骤。添加构建步骤后,单击“保存”。
  6. 添加构建后操作以定义 UFT One 测试结果的设置。

    在“构建后操作”部分中,单击“添加构建后操作”,然后为自由风格项目选择“发布 OpenText 测试结果”

    备注: 对于管道,在“管道语法”页面中,从“示例步骤”下拉菜单中选择 publishMicroFocusTestResults,生成脚本,并将脚本复制到管道脚本框中。

    选择以下存档选项之一:

    存档失败测试的测试报告 仅保存失败测试的测试结果报告。
    始终存档测试报告 始终保存测试结果报告。
    不存档测试报告 从不保存测试结果。
  7. (对于管道) 要显示您在运行期间中止管道时所有已执行测试的结果,请将 try-finally 块插入到管道脚本框中的脚本。请参阅以下示例:

    示例:

    try {
      runFromFSBuilder fsTests: 
      '''C:\\JenkinsTestsFromFS\\TestToFail''',
      uftSettingsModel:[
        cleanupTest: '', fsTestType: 'Rerun the entire set of tests',
    numberOfReruns: '3', onCheckFailedTest: 'true'
        ]
      } finally {
      publishMicroFocusTestResults 'ALWAYS_ARCHIVE_TEST_REPORT'
    }
  8. 像执行任何标准 Jenkins 作业一样运行或安排作业。

    测试完成后,继续查看测试运行结果

返回页首

使用批处理文件指定多个测试

通过在批处理文件中指定测试及其参数,将 Jenkins 作业配置为触发多个测试。

可以指定多个测试,甚至多次指定同一测试,但每次使用不同的参数。指定测试的路径时,路径名称支持 Jenkins 环境变量。

为您的批处理文件设置 .mtbx 扩展名,并使用以下示例语法:

<Mtbx>
 <Test name="test1" path="c:\tests\APITest1">
 <Parameter name="A" value="abc" type="string"/>
 ….
 </Test>
 <Test name="test2" path="${WORKSPACE}\test2">
  <Parameter name="p1" value="123" type="int"/>
  <Parameter name="p4" value="123.4" type="float"/>
  ….
 </Test>
</Mtbx>

在批处理测试运行中将参数从一个测试传递到另一个测试

在 Application Automation Tools 插件版本 7.6 及更高版本上受支持

您可以将一个测试的输出参数作为另一个测试的输入参数传递。

要将参数从一个测试传递到另一个测试,请执行以下操作:

  1. UFT One 中,定义输出参数以用作每个测试中后续测试的输入。

  2. 在批处理文件中的每个 <Parameter> 元素中,您可以将该值留空并包含一个 source 属性,指定应使用其值的输出参数的名称。

    示例:

    <Test name="test2" path="c:\tests\GUITest1">
    <Parameter name="inputParam1" value="" type="string" source="outParam1"/>
    …
    </Test>

备注:  

  • 在批处理测试运行中指定第一个测试时,将 source 属性留空。

  • 如果一个测试批处理中有 3 个测试 (A、B、C),则无法将参数直接从 A 传递给 C。

继续构建配置

完成定义批处理文件后,返回到主要构建配置步骤

返回页首

从测试运行结果中排除参数详细信息

在 Application Automation Tools 插件版本 7.6 及更高版本上受支持

默认情况下,每次测试运行后,测试参数详细信息会显示在“控制台输出”和“测试结果”页面中。为了防止暴露敏感数据,您可以定义一个作业级别的参数来控制构建过程,并从测试运行结果中排除参数数据。

要从运行结果中排除参数数据,请执行以下操作:

  1. 在构建作业配置的“常规”区域中,选择“此项目已参数化”,并使用“添加参数”下拉按钮添加以下参数。

    • 名称: UFT_PRINT_TEST_PARAMS

    • 类型: 布尔型

    • 值: true (包括参数);false (排除参数)

  2. 使用定义的参数启动构建。有关详细信息,请参阅相关的 Jenkins 文档。

返回页首

在多个环境中并行运行测试

将 Jenkins 配置为在多个环境中并行运行一系列 Web 或移动测试。

配置后,每个测试都将按顺序运行。在运行每个测试时,将并行测试多个环境。

要并行运行测试,请执行以下操作:

  1. 在“从文件系统执行 OpenText 测试”构建步骤中,选择“UFT One 并行运行模式”选项。

  2. 在“测试”框中,输入测试及其完整的绝对路径,或者输入包含一个或多个测试的文件夹或 MTB。

    要指定多个条目,请单击字段右侧的向下箭头,然后在单独的行上输入每个测试路径。确保可以从本地网络中的所有计算机访问这些路径。

    或者,指示包含测试和参数列表的批处理文件。有关详细信息,请参阅使用批处理文件指定多个测试

  3. 为每个测试执行集定义一个或多个环境。

    1. 选择“移动”或“Web”

    2. 单击“环境向导”以选择浏览器或设备。

    3. 单击“+ 环境”为执行集添加新环境。UFT One 最多支持四个并行测试运行。

      如果配置的环境超过四个,则每个后续环境将排队等待。

    4. 单击“+ 执行集”以添加一组要运行的新测试,并且这些测试都已定义自己的环境。

    备注: 要在移动设备上或中运行测试,必须配置 Digital Lab 连接。有关详细信息,请参阅与 Digital Lab 和 Jenkins 集成

继续构建配置

完成定义并行测试运行后,返回到主要构建配置步骤

返回页首

配置测试运行的失败场景

配置 UFT One 在您的测试或测试运行中的特定测试失败时执行的操作。

要配置失败场景,请执行以下操作:

  1. 在“从文件系统执行 OpenText 测试”构建步骤中,单击“特定于 UFT One 的设置”按钮。

  2. 选择“失败后续操作”选项,然后选择以下选项之一:

    选项 描述 Application Automation Tools 插件版本 6.3 或更高版本
    重新运行整个测试集。

    选择此选项可在任何测试失败时重新运行由此构建作业运行的所有测试。

    选项名称为“构建的任何测试”
    重新运行构建中的特定测试。

    选择此选项可仅为一个或多个特定测试定义失败场景。这样您就可以重新运行测试运行中的特定失败测试,而无需重新运行所有测试。有关详细信息,请参阅为一个或多个特定测试配置失败场景

    选项名称为“构建中的特定测试”
    仅重新运行失败的测试。 选择此选项可重新运行任何及所有失败的测试。 选项不可用。
  3. 选择一个节点来处理重新运行一个或多个测试。

    备注: 确保在此处选择的节点与在构建作业配置的“常规”区域中配置的节点相匹配。这样可确保用于由此作业运行的测试的测试路径正确无误。

    有关详细信息,请参阅使用 Jenkins 触发本地 UFT One 测试

  4. 在“重新运行”字段中,定义要重新运行一个或多个测试的次数。

  5. 在“清理测试”字段中,定义在完成整个测试运行并发生失败之后,要作为清理测试运行的可选测试。在重新运行每个新测试之前,将运行已定义的测试,以为测试运行创建正确的环境。

为一个或多个特定测试配置失败场景

如果您已选择用于仅重新运行特定的失败测试的选项,请按如下方式配置要重新运行的测试:

  1. 测试列表将显示此构建作业中包含的所有测试。为要重新运行的每个失败测试选中相应复选框。

  2. 执行以下某项操作:

    定义每个测试的失败场景

    对于每个选定测试,定义重新运行测试的次数以及要在重新运行之前运行的任何清理测试。

    将值复制到所有选定测试

    将定义的主要失败场景复制到以下所有选定测试。

    在主要“重新运行”字段中,单击“复制/粘贴” 按钮。

    要清除所有测试的定义,请单击“清除”

继续构建配置

完成定义失败场景后,返回到主要构建配置步骤

返回页首

以指定的 Windows 用户身份运行测试

在 Application Automation Tools 插件版本 7.7 及更高版本上受支持,并且与 GUIAPI 和并行测试相关

备注: 要以指定的 Windows 用户身份成功运行测试,必须通过命令行启动 Jenkins 代理。

您可以以与当前登录的 Windows 用户不同的 Windows 用户身份运行 UFT One 测试。为此,请执行以下步骤:

要以指定的 Windows 用户身份运行测试,请执行以下操作:

  1. 在构建作业配置的“常规”区域中,选择“此项目已参数化”并使用“添加参数”下拉按钮添加以下参数。

    参数 类型 描述
    UFT_RUN_AS_USER_NAME 字符串

    用于运行 Jenkins 作业的用户名。

    注: 如果身份验证失败,请以 UPN 格式 (username@DNS_domain_name) 指定值。

    UFT_RUN_AS_USER_ENCODED_PASSWORD 密码

    用于运行 Jenkins 作业的编码密码。

    使用随 UFT One 安装的密码编码器工具对密码进行编码。

    UFT_RUN_AS_USER_PASSWORD 密码

    用于运行 Jenkins 作业的真实密码。

    添加 UFT_RUN_AS_USER_ENCODED_PASSWORD 或此参数。

  2. 使用定义的参数启动构建。

返回页首

查看测试运行结果

要查看 UFT One 测试结果,请执行以下操作:

  1. 单击左侧工具栏中的“UFT 报告”图标。UFT 报告页面将打开,并显示列出了测试运行 (测试名称、时间戳、状态、报告链接) 的表

    备注: 您可以在 Jenkins 配置页面上为每个测试运行指定时间戳格式 (“管理 Jenkins”>“配置系统”的“运行结果 (UFT 报告) 时间戳格式字符串”部分)。

  2. 单击链接以打开所需报告:

    • HTML 报告: 浏览器将打开 HTML 报告。

      如果您已并行运行多个测试,则报告将包含所有测试运行的结果。有关更多详细信息,请参阅示例 ParallelRunner 响应和运行结果

    • 运行结果报告: 将开始下载 zip 文件。提取其内容。提取的 zip 文件包含可在 Run Results Viewer 中查看的结果文件。

备注:  

  • 如果您正在查看此构建作业的日志,则会看到显示了许多超时消息,包括 PerScenarioTimeoutFileSystemTestRunner

    可以忽略 PerScenarioTimeout,因为它仅与 LoadRunner Professional 测试相关。

  • 您还可以添加构建后步骤来发布 JUnit 测试结果报告。这会将 UFT One.xml 结果文件转换为 JUnit 报告。

  • 如果您在测试运行期间中止作业,则测试报告会显示在作业停止之前执行的所有测试的结果。

  • Application Automation Tools 插件版本 7.6 及更早版本: 即使所有失败的测试在重新运行后均通过,构建作业仍会被标记为“失败”

返回页首

作业中止时释放许可证

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

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

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

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

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

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

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

在运行中止时释放许可证:

Application Automation Tools 插件版本 7.6 及更早版本:

如果作业中止时 UFT One 许可证没有立即释放回许可证池,则该许可证将在大约 10 分钟后自动释放。

Application Automation Tools 插件版本 7.7 及更高版本:

如果 Jenkins 服务器能够为 UFT One 提供足够的时间来执行此操作,则 UFT One 会在作业中止时释放许可证。

等待时间由 SoftKillWaitSeconds 属性控制 (默认值: 5 秒)。如果您发现 UFT One 许可证在 Jenkins 作业结束后仍在使用中,请执行以下操作:

jenkins.xml 文件中,在 -jar 之前添加 -DSoftKillWaitSeconds=value 语句。将该属性的值设置为大于 5 秒。

示例:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dhudson.model.DirectoryBrowserSupport.CSP= -DSoftKillWaitSeconds=30 -jar "C:\Program Files\Jenkins\jenkins.war" --httpPort=8080 --webroot="%LocalAppData%\Jenkins\war"</arguments>

返回页首

另请参见: