当前位置: 首页 > 面试题库 >

詹金斯下游参数化作业的汇总结果

金钊
2023-03-14
问题内容

我有一个Jenkins Build作业,它使用Jenkins Parameterized Trigger
Plugin触发了多个以测试名称为参数的Test作业。这将在多个都能正常运行的执行器上启动许多测试构建。

现在,我想使用“汇总下游测试结果->自动汇总所有下游测试”来汇总结果。我在“构建”作业中启用了此功能,并设置了指纹识别,以便将其识别为下游作业。在“构建作业的lastBuild”页面中,我可以看到它们被识别为下游构建:

下游构建

测试#1-#3

但是,当我单击“汇总测试结果”时,它仅显示最新的这些(测试#3)。如果作业始终运行相同的测试,但是我的所有运行的都是测试套件的不同部分,那么这可能是一个好习惯。

有什么办法可以让我汇总所有相关的下游测试版本?

附加:如果您复制测试作业,则汇总的测试结果确实有效。这不是理想的,因为我有大量的测试套件。


问题答案:

我将概述手动解决方案(如注释中所述),并在以后需要时提供更多详细信息:

P 为父作业, D 为下游作业(您可以轻松地将html" target="_blank">方法扩展到多个下游作业)。

  1. P 的实例(构建)通过构建步骤( 而不是* 作为构建后步骤)通过参数化触发器插件调用 D ,然后等待 D 完成。 P 与其他参数一起,向 D 传递了一个参数-我们将其 称为PARENT_ID- 基于 P 的内部版本的 BUILD_ID*
  2. D 执行测试并将其归档为工件(以及jUnit报告-如果适用)。
  3. __然后, P 执行一个外部Python(或内部Groovy)脚本,该脚本通过 PARENT_ID 找到合适的 D 版本 (您遍历 D版本 并检查 PARENT_ID 参数的值)。然后,脚本将工件从 D 复制到 P, 然后 P 发布它们。

如果使用Python(这就是我的工作),请使用Python
JenkinsAPI包装器
。如果使用Groovy,请使用Groovy插件并将脚本作为系统脚本运行。然后,您可以通过其Java
API
访问Jenkins 。



 类似资料:
  • 问题内容: 我想在不同的机器上使用相同的作业。但是我不想每次都更改作业的配置。我可以通过机器名称标签作为参数并在另一台机器上运行作业吗?(不同时)。 我想在将作业运行到我在配置中编写的脚本(批处理脚本)时传递参数。我们能做到吗? 我可以从工作中获得返回值并在下一个工作中使用它吗? 问题答案: 是的,您可以使用NodeLabel Parameter Plugin传递节点标签参数。 是的,您可以按照描

  • 我试图从流水线步骤中运行一个job-dsl脚本。一般来说,这应该是可能的,正如这里所描述的,在管道步骤中添加了以下代码片段: null 我如何知道脚本的真实位置,以及如何指定一个jobDsl作为目标,它本身位于不同的repo中?还是我完全走错了方向? 编辑 经过进一步的研究,共享库存储库被签出到“真实”工作区旁边的一个目录中,后缀为@libs,这似乎是事实。所以我认为使用以下方法是个好主意: 与此

  • 问题内容: 当前,我有一个具有不同参数的管道作业,其中此参数之一是Choice参数。这是该作业参数的config.xml输出: 现在,我可以通过传递字符串参数从管道调用此作业: 但是我无法为选择参数定义参数: 我尝试了以下方法: 但这失败并显示以下错误: 因此问题是:如何在调用其他管道作业时定义选择参数: 有人有这样的例子吗? 问题答案: 我看过一个使用以下语法的工作示例: 基本上,不要以特殊的方

  • 有没有可能让詹金斯使用真正的浏览器而不是无头浏览器?我正在运行一些用TestNG编写的测试(使用Selenium webdriver)。当我运行testng时。在Eclipse中,浏览器启动并运行测试。但当我使用Jenkins并用maven运行测试时,它不会启动任何浏览器。

  • 问题内容: 我有一个詹金斯工作,带有“主动选择参数”和“主动选择反应参数”。 我试图调用詹金斯的工作,并使用管道脚本传递参数值。但是,我收到以下错误: 参数’ActiveChoicesParam’不具有App_Build期望的类型。转换为有效选择参数。 参数’ActiveChoicesReactiveParam’不具有App_Build期望的类型。转换为活动选择反应参数。 它们(Dev和Serve

  • 问题内容: 我有一个.Jar文件,它将在运行时将数据加载到数据库中。我已经计划通过詹金斯来担任这项工作。当我在詹金斯执行作业时,它将成功运行.JAR。但是,请说作业中是否存在空指针异常,并且该异常未成功完成。即便如此,詹金斯仍然说工作已经“通过”。如果作业执行过程中出现问题,如何使作业失败? 问题答案: @Corey的解决方案很好。而且,如果您不想编写JUnit测试并在Jenkins中提供支持,则