Jenkins-如何找出反复失败的测试?


13

我是CI和Jenkins的新手。我有一个Java项目,该项目在Web服务上运行基于Testng的自动化测试。自动化测试在Jenkins中作为一项工作定期运行。有时,该工作长时间反复失败。但是,在每次运行中,测试失败的次数是不同的。我想看看哪些测试反复失败,例如最后5次运行。这样,我可以减少必须调查的测试失败次数。在过去5次运行中未全部重现的故障可以忽略或稍后进行调查。

有人可以建议我如何找出在过去N次运行中反复失败的测试吗?


某种程度上,您需要以一种容易的方式保存测试结果,以便查看失败情况。可能只是形式为“ XEXX”,其中E代表错误,整行代表所有测试。这样,您可以将其保存在文本文件中而没有太多空间。
大卫,

对于所有测试的每次运行,您都需要换行,因此可以通过脚本轻松查看或分析。
大卫,

您有可用的test-ng插件,您可以每次发布结果...然后您可以比较每个构建,这将告诉您哪个测试失败
rohit thomas

@rohitthomas-您是否建议手动比较内部版本?我想避免这种情况。
Erran Morad

您认为“反复失败”是什么?例如,您是说所有测试用例在最近5次运行中都失败了,还是仅每个测试用例在5个执行中有3个失败了?
Michael Kemmerzell '19

Answers:


7

您可以从管道中的构建对象获取测试失败的次数:您可以制作一个小报告,并将其附加到构建中,如下所示:

@NonCPS
def getRepeatedlyFailingTests(int timesFailedAtLeast = 2) {
  currentBuild.rawBuild.getAction(hudson.tasks.junit.TestResultAction.class)
    .getFailedTests()
    // Keep only tests that failed at least twice
    .findAll { it.age >= timesFailedAtLeast }
    .collect { [ "${it.className}.${it.name}".trim(), it.age ] }
}

def saveRepeatedlyFailingTestsReport() {
  def header = [ "test", "times-failed" ]
  def records = getRepeatedlyFailingTests()
  def report = "repeatedly-failing-tests.csv"
  writeCSV file: report, records: [ header ] + records, format: CSVFormat.EXCEL
  archiveArtifacts report
}

saveRepeatedlyFailingTestsReport收集测试结果后致电,您将在最新的构建工件链接中看到报告。


1
这是哪一种语言?您能补充更多细节吗?我会提供一笔赏金,以期使它值得。谢谢。
Erran Morad

1
@BoratSagdiyev这是在詹金斯管道中使用的Groovy DSL。如果您只需要视觉帮助,我会回答Sooraj的答案,因为它不需要管道知识。要构建完整的管道,我需要了解您的自由式工作,但这超出了问题的范围。
毛巾

2

您可以使用Jenkins的“测试结果分析器”插件来分析测试趋势。

测试结果分析器插件

来自youtube的视频教程

安装

  1. 在Jenkins仪表板中,单击管理Jenkins。
  2. 从菜单中选择管理插件
  3. 单击可用选项卡,然后在过滤器搜索框中输入分析器
  4. 单击“ 测试结果分析器 ”左侧的复选框,然后单击“ 安装而无需重新启动”按钮

用法

  1. 转到项目,然后单击配置
  2. 转到构建后操作部分,然后 从添加构建后操作下拉菜单中选择发布JUnit测试结果报告
  3. 在“测试报告XML”字段中,提供项目中TestNg / JUnit xml的路径。例如- **/target/test-results/*.xml就我而言
  4. 保存配置
  5. 然后,在成功构建之后,转到您的项目,然后单击左侧菜单上的“ 测试结果分析器

感谢您的链接。但是,仅链接答案并没有太大帮助。您能否简要说明一下我如何使用该插件来实现所需的功能?
Erran Morad

安装插件并将插件配置为所需项目的Post-build Actions。然后,在成功构建之后,您可以通过单击项目左侧菜单上的“ 测试结果分析器”来查看结果
Sooraj

@Borat Sagdiyev,我用详细的步骤更新了答案,并提供了配置Test Results Analyzer插件的视频。希望这会
有所
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.