UFT One 和 Jenkins
在 Jenkins 持续集成过程中运行 UFT One 测试。
使用 Application Automation Tools 插件设置 Jenkins 服务器
将 Jenkins 服务器设置为运行 UFT One 测试。
执行以下操作:
-
安装 Jenkins 和 Application Automation Tools 插件。有关详细信息,请参阅 GitHub 上的 Jenkins 插件。
-
在 Jenkins 服务器主页中,单击“新建作业”,或选择现有作业。
如果您选择新建作业,请输入作业名称。
- 选择“构建一个自由风格的软件项目”,然后单击“确定”。
继续执行以下某项操作:
将作业设置为运行本地 UFT One 测试
将作业设置为运行一个或多个本地 UFT One 测试。
为此作业中的测试运行选择一个或多个执行节点。
执行以下操作:
-
在 Jenkins 作业的“常规”部分中,选择“此项目已参数化”。
-
选择“添加参数”>“节点”,然后输入或定义以下节点选项:
名称 定义各个节点定义的名称。 默认节点 选择外部进程触发作业时要使用的一个或多个默认节点。
可能的节点 选择在手动构建作业时要使用的一个或多个节点。
构建选项 触发构建操作时,请选择以下选项之一以选择节点:
-
仅在构建成功时运行下一次构建
-
仅在构建成功或不稳定时运行下一次构建
-
无论构建结果如何均运行下一次构建
-
允许为并发构建选择多个节点。使用“必要时执行并发构建”配置的作业所必需的。
配置后,将在所有选定节点上并行执行构建。在构建此作业之前,请确保所有选定节点都处于联机状态。
-
手动触发构建时不允许选择多个节点。选择此选项将允许用户在触发构建时选择一个构建节点。
节点资格 选择如何处理处于脱机状态或临时处于脱机状态的节点。
- 所有节点。在所有选定节点上触发作业,而不管节点是否处于联机/脱机状态。
- 忽略脱机节点。仅在处于联机状态且具有可用于运行测试的 UFT One 实例的节点上触发作业。
- 忽略临时脱机节点。在除当前标记为脱机的节点之外的所有其他选定节点上触发作业。
描述 为节点配置定义描述。 -
注释: 如果要配置失败场景,则在此处配置的节点必须与在失败场景中选择的节点相匹配。
有关更多详细信息,请参阅配置测试运行的失败场景。
提示: UFT One Jenkins 插件支持多种为作业定义节点的方法。本主题介绍最常用的推荐过程之一。
有关更多详细信息,请参阅 Jenkins 插件 GitHub 页面上的创建执行节点。
- 向下滚动到“构建”部分,单击“添加构建步骤”,然后选择“从文件系统执行 Micro Focus 测试”。
-
在“测试”框中,输入测试及其完整的绝对路径,或者输入包含一个或多个测试的文件夹或 MTB。
要指定多个条目,请单击字段右侧的向下箭头,然后在单独的行上输入每个测试路径。确保可以从本地网络中的所有计算机访问这些路径。
提示: 或者,标示一个包含测试列表及其参数的批处理文件。有关详细信息,请参阅使用批处理文件指定多个测试。
-
结果目录 指定用于保存测试结果的位置。对结果文件进行命名时要确保它们不会覆盖该位置中的任何现有结果。 UFT One 并行运行模式 选择在多个环境中运行测试。
有关更多详细信息,请参阅在多个环境中并行运行测试。
超时 指示超时 (以秒为单位),超时之后作业将失败。
将 Jenkins 配置为加载任何已完成此构建步骤的测试的 UFT One 运行结果所必需的,即使某个测试失败并阻止其他测试运行时也是如此。
运行模式 为测试定义 UFT One 运行模式:
- 选择 UFT One 特定的设置。
- 从“运行模式”下拉列表中,选择“快速”或“正常”。
有关更多详细信息,请参阅 测试运行窗格 (选项对话框> GUI 测试选项卡) 。
配置失败场景 配置 UFT One 在您的测试或测试集中的测试失败时执行的操作。
有关详细信息,请参阅配置测试运行的失败场景。
警告: 我们不建议同时配置失败场景与并行测试运行。这样做可能会导致 UFT One 出现意外行为。
- 单击“应用”保存更改,然后继续执行更多构建步骤。添加构建步骤后,单击“保存”。
-
添加构建后操作以定义 UFT One 测试结果的设置。
在“构建后操作”部分中,单击“添加构建后操作”,然后选择“发布 Micro Focus 测试结果”。
选择以下存档选项之一:
存档失败测试的测试报告 仅保存失败测试的测试结果报告。 始终存档测试报告 始终保存测试结果报告。 不存档测试报告 从不保存测试结果。 -
像执行任何标准 Jenkins 作业一样运行或安排作业。
测试完成后,继续查看测试运行结果。
安全预防措施
虽然所有敏感信息都经过加密和编码,但 Micro Focus 建议您定期删除由 Jenkins 作业生成的非必要文件,Micro Focus Jenkins Application Automation Tools 插件不会删除这些文件。
这些文件位于“<Jenkins 安装文件夹>\workspace\<作业名称>”文件夹中。
如果不执行文件删除操作,系统可能面临更大的安全风险。您了解并同意承担所有相关风险,Micro Focus 对此不承担任何责任。
评估自身的法规和业务要求始终是客户需要独自承担的责任。Micro Focus 不表示或保证其产品在开展客户业务时符合适用于客户的任何特定法律或法规标准。
使用批处理文件指定多个测试
通过在批处理文件中指定测试及其参数,将 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>
继续构建配置
完成定义批处理文件后,返回到主要构建配置步骤。
在多个环境中并行运行测试
将 Jenkins 配置为在多个环境中并行运行一系列连续的 Web 或移动测试。
配置后,每个测试都将按顺序运行。在运行每个测试时,将并行测试多个环境。
执行以下操作:
注释: 要在移动设备上运行测试,必须配置 UFT Mobile 连接。
有关详细信息,请参阅集成移动测试和 Jenkins。
在“测试”框中,输入测试及其完整的绝对路径,或者输入包含一个或多个测试的文件夹或 MTB。
-
要指定多个条目,请单击字段右侧的向下箭头,然后在单独的行上输入每个测试路径。确保可以从本地网络中的所有计算机访问这些路径。
- 或者,指示包含测试和参数列表的批处理文件。有关详细信息,请参阅使用批处理文件指定多个测试。
执行以下操作:
-
选择“移动”或“Web”。
-
单击“环境向导”以选择浏览器或设备。
-
单击“+ 环境”为执行集添加新环境。UFT One 最多支持四个并行测试运行。
如果配置的环境超过四个,则每个后续环境将排队等待。
- 单击“+ 执行集”以添加一组要运行的新测试,并且这些测试都已定义自己的环境。
继续构建配置
完成定义并行测试运行后,返回到主要构建配置步骤。
配置测试运行的失败场景
配置 UFT One 在您的测试或测试集中的特定测试失败时执行的操作。
执行以下操作:
-
在“从文件系统执行 Micro Focus 测试”构建步骤中,单击“特定于 UFT One 的设置”按钮。
-
选择“失败后续操作”选项,然后选择以下选项之一:
选项 描述 Jenkins 插件版本 6.3 或更低版本 重新运行整个测试集。 选择此选项可在任何测试失败时重新运行由此构建作业运行的所有测试。
选项名称为“构建的任何测试” 重新运行构建中的特定测试。 选择此选项可仅为一个或多个特定测试定义失败场景。这样您就可以重新运行测试集中的特定失败测试,而无需重新运行所有测试。有关详细信息,请参阅为一个或多个特定测试配置失败场景。
选项名称为“构建中的特定测试” 仅重新运行失败的测试。 选择此选项可重新运行任何及所有失败的测试。 选项不可用。 -
选择一个节点来处理重新运行一个或多个测试。
注释: 确保在此处选择的节点与在构建作业配置的“常规”区域中配置的节点相匹配。这样可确保用于由此作业运行的测试的测试路径正确无误。
有关详细信息,请参阅为作业选择执行节点。
-
在“重新运行”字段中,定义要重新运行一个或多个测试的次数。
-
在“清理测试”字段中,定义在运行整个测试集并发生失败之后,要作为清理测试运行的可选测试。在重新运行每个新测试之前,将运行已定义的测试,以为测试运行创建正确的环境。
如果您已选择用于仅重新运行特定的失败测试的选项,请按如下方式配置要重新运行的测试:
-
测试列表将显示此构建作业中包含的所有测试。为要重新运行的每个失败测试选中相应复选框。
-
执行以下某项操作:
定义每个测试的失败场景 对于每个选定测试,定义重新运行测试的次数以及要在重新运行之前运行的任何清理测试。
将值复制到所有选定测试 将定义的主要失败场景复制到以下所有选定测试。
在主要“重新运行”字段中,单击“复制/粘贴” 按钮。
要清除所有测试的定义,请单击“清除”。
继续构建配置
完成定义失败场景后,返回到主要构建配置步骤。
查看测试运行结果
要查看 UFT One 测试结果,请执行以下操作:
-
单击左侧工具栏中的“UFT One 报告”图标。UFT One 报告页面将打开,并显示列出了测试运行 (测试名称、状态、报告链接等) 的表。
-
单击链接以打开所需报告:
-
HTML 报告: 浏览器将打开 HTML 报告。
如果您已并行运行多个测试,则报告将包含所有测试运行的结果。有关更多详细信息,请参阅示例 ParallelRunner 响应和运行结果。
问题: HTML 报告未打开。可能的原因: 从 Jenkins 版本 1.641 (或 1.625.3) 开始,Jenkins 引入了 Content-Security-Policy 标头。这会阻止某些链接,如指向 UFT OneHTML 报告的链接。
变通方法:
-
在不使用链接的情况下,从以下位置之一查看报告:
在执行节点上的 Jenkins 结果文件夹中的相关内部版本 ID 下。
在主 Jenkins 计算机上的 Jenkins 构建文件夹中。转到“%jenkins% \jobs\<作业名称>\builds\<作业计数>\archive\UFTReport”文件夹。例如,C:\Program Files (x86)\Jenkins\jobs\Uft-htmlReport\builds\80\archive\UFTReport\GuiTest2\run_results.html。
在作业配置中指定的位置中指定的 Results directory 中。
-
将 Jenkins 系统属性设置为允许浏览器链接:
单击“管理 Jenkins”>“脚本控制台”。在“脚本控制台”中,输入以下行并按“运行”。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
-
-
运行结果报告: 将开始下载 zip 文件。提取其内容。提取的 zip 文件包含可在 Run Results Viewer 中查看的结果文件。
在 Run Results Viewer 中查看结果执行以下操作:
- 打开 Run Results Viewer,然后选择“文件”>“打开”。
- 在“打开”对话框中,选择“结果 XML 文件”,然后导航到已提取文件夹中的 Results.xml 文件。
- 单击“打开”并查看结果。
-
注释:
-
如果您正在查看此构建作业的日志,则会看到显示了许多超时消息,包括 PerScenarioTimeout 和 FileSystemTestRunner。
可以忽略 PerScenarioTimeout,因为它仅与 LoadRunner Professional 测试相关。
-
您还可以添加构建后步骤来发布 JUnit 测试结果报告。这会将 UFT One.xml 结果文件转换为 JUnit 报告。
从 ALM 运行功能测试集
使用 Jenkins 从 ALM 中的测试集运行服务器端无人值守的功能测试。ALM 测试集使您能够在 ALM 测试实验室模块中根据特定测试目标来组织测试执行。
注释: 不支持从 ALM 运行并行测试。
有关详细信息,请参阅 ALM 帮助中心。
将 Jenkins 作业设置为触发从 ALM 运行的测试集
执行以下操作:
-
在 Jenkins 作业中,向下滚动到“构建”部分,单击“添加构建步骤”,然后选择“从 Micro Focus ALM 执行功能测试”。
-
选择已配置的 ALM 服务器之一,然后输入服务器凭据、项目和域。
根据 ALM 服务器所需的身份验证类型,凭据可以是用户名和密码或用于 SSO 身份验证的 API 密钥。
要使用 SSO 身份验证,请选择“启用 SSO”,然后输入从 ALM 站点管理员处获取的“客户端 ID”和“API 密钥密码”。
注释: 如果您使用的是 ALM 计划程序,它将在 Jenkins 代理用户下运行。
例如,如果 Jenkins 以系统用户身份运行,则计划程序将以系统用户身份运行测试。这不会影响测试执行。
有关更多详细信息,请参阅在 Jenkins 服务器上定义 ALM 凭据。
-
使用 ALM 路径添加测试集文件夹或要包含的特定测试集。
-
要添加特定测试,请在测试集路径后面添加测试名称。
-
要添加多个条目,请单击字段右侧的向下箭头,然后在单独的一行中输入每个项。
例如:
Root\testfolder1\testset_a
Root\testfolder1\testset_b
Root\testlab_folder
Root\testlab_folder\testset_a\test-name
-
-
(可选) 添加要用于测试的测试参数。
在“测试集”区域中,使用以下语法:
<测试或测试集路径> "<参数名称>":"<字符串值>", "<参数名称>": <数值>
其中:
-
“<测试或测试集路径>”是测试或测试集的路径。
如果指定某个测试,则指定的参数仅用于该测试。
如果指定某个测试集,则指定的参数将用于该测试集中的所有测试。当该测试集运行时,每个测试将使用它所需的参数,而忽略任何其他参数。
-
“<参数名称>”是测试参数的名称
-
“<字符串值>”是参数的字符串值 (带引号)
-
“<数值>”是参数的数值 (不带引号)
例如:
TestSet\ "Country":"US", "Count": 3
TestSet2\ "Country":"UK"
TestFolder\Test1 "Country":"China", "Count": 4
提示: 指定测试所需的每个测试参数的值,或确保在 UFT One 或 ALM 中为参数定义了默认值。
-
-
(可选) 指示作业失败之前等待的超时 (以秒为单位)。
-
(可选) 为 ALM 测试集设置筛选,以指示 Jenkins 仅运行测试集中的部分测试。
选择“筛选 ALM 测试集”,然后筛选要按名称或/和状态运行的测试:
-
在“运行名称包含以下内容的测试”中,指定要在测试名称中查找的字符串。
- 在“运行具有以下状态的测试”中,指定要运行的测试的状态。例如,如果您不想重新运行已通过的测试,则不要选择“通过”状态。
-
-
单击“高级”以指示运行模式,如本地主机、远程主机或计划的主机。
注释: 如果指定远程主机模式,则还要指定主机名。此主机必须是一台安装了有效 UFT One 的计算机。
您可以配置 UFT One 计算机,以便 Jenkins 无需任何人手动登录计算机并启动 UFT One 即可运行测试。有关详细信息,请参阅在远程会话中运行 UFT One 和 UFT One 测试。
-
单击“应用”保存更改,然后继续执行更多构建步骤。添加构建步骤后,单击“保存”。
- 在“构建后操作”部分中,单击“添加构建后操作”,然后选择“发布 Micro Focus 测试结果”。
-
像执行任何标准 Jenkins 作业一样运行或安排作业。
查看 ALM 中的结果
执行以下操作以查看 ALM 中的测试运行结果:
- 在仪表板上,单击作业。
- 单击“控制台”链接以查看 ALM 信息。
- 将 ALM 链接复制到 Internet Explorer 浏览器,并从 ALM 中查看测试集结果。
在 Jenkins 服务器上定义 ALM 凭据
此部分说明在运行 ALM 上存储的 UFT One 测试时,在何处定义和使用 Jenkins 用于连接到 ALM 的 ALM 凭据。
Jenkins 插件版本 | ALM 凭据 |
---|---|
6.3 及更低版本 |
在从 ALM 运行 UFT One 测试的每个作业中输入凭据。 |
6.4 及更高版本 |
在 Jenkins 配置页面 (“管理 Jenkins”>“配置系统”的“Application Lifecycle Management”部分) 中全局定义 ALM 凭据。 可以为多个 ALM 服务器定义凭据,也可以为同一个 ALM 服务器上的多个用户定义凭据。 根据 ALM 服务器要求,定义用户名和密码或者客户端 ID 和 API 密钥密码。 然后,在从 ALM 运行 UFT One 测试的作业中,根据需要从已配置的 ALM 用户名或 ALM 客户端 ID 中进行选择。 |
如果您已在作业中定义 ALM 凭据,并随后升级到 Jenkins 插件版本 6.4 或更高版本:
-
您将无法在作业中编辑凭据,但是 Jenkins 会在运行作业时继续使用这些凭据。
-
您可以将在现有 Jenkins 作业中定义的 ALM 凭据自动移到 Jenkins 全局配置区域中:
使用构建后操作“迁移 ALM 凭据”创建和运行 Jenkins 作业。首次运行此作业会将所有作业中的 ALM 凭据迁移到 Jenkins 配置页面。后续运行将不执行任何操作。
另请参见: