创建结构化的Jenkins失败测试报告

时间:2017-03-02 14:02:19

标签: jenkins junit automation reporting

现在的情况:

每个星期一早上我手动检查Jenkins作业周末运行的jUnit结果,使用Project Health插件我可以过滤时间盒运行。然后,我将此表复制粘贴到Excel中并查看每个测试用例的输出日志以查看失败的原因并记下失败原因。每个周末都有Excel中的另一个选项卡。所有这些都使得可追踪性成为一场噩梦,并导致耗费时间的手工劳动。

我在寻找什么(希望在某种程度上已经存在):

存储我指定的所有作业的所有失败测试的数据库。它解析失败的测试用例的输出日志,并根据一些正则表达式应用一个标记'例如'音频'如果有关音频的测试失败。由于一切都在数据库中,我可以制作或使用可以随意应用过滤器的前端。

例如,如果我想看到有关音频的所有测试在周末失败(超过多个作业和多次运行),我可以运行一个返回带有音频标签的所有条目的查询。

我可以手动标记失败的测试和原因,以及编写我自己的前端,有没有办法(Jenkins API?)来获取失败的测试(jUnit格式和Jenkins插件)并创建如果不存在这样的系统呢?

2 个答案:

答案 0 :(得分:2)

一个好问题。不幸的是,Jenkins很难获得这样的" meta统计数据"这可以涵盖几个工作岗位。没有现成的解决方案。

基本上,我看到了两种获得你想要的选择:

  1. 后处理Jenkins内部数据以获取您需要的统计信息。
  2. 使用构建执行数据随时提供数据库
  3. 第一个选项基本上意味着自动执行您现在手动执行的任务。

    • 您可以使用外部脚本(Python,Perl,...)来处理Jenkins内部数据(通过REST或CLI API,或直接读取磁盘数据)
    • 或者您在内部运行Groovy脚本(这将更快,更强大)

    这是最直接的方式。但是,根据您需要的统计数据以及您对数据持久性的要求,您可能想要...

    第二个选项:更灵活,与Jenkins'完全脱钩。内部数据存储。您可以通过

    实现它
    • 为您的所有工作引入Groovy构建后步骤
    • 该脚本解析作业结果并将感兴趣的数据放入自定义的外部数据库

    您从查询该数据库中获得的统计信息。

    通常,您从第一个选项开始。一旦需求增长,您就会慢慢迁移到第二个(例如,通过显式的后处理脚本收集内部数据,将其放入数据库,然后在其上运行查询)。您希望尽可能缩短此迁移阶段,因为它最终需要努力实施两个选项。

答案 1 :(得分:0)

您可能需要查看couchdb-statistics。它远非完美契合,但至少似乎部分地实现了你想要实现的目标。