Allure 报告工具旨在为每次测试运行显示一份报告。开发人员警告过我这一点。无论如何,我需要这个方便的工具提供更多功能。
- 您是否想过将吸引力报告保留几天/月?
- 您是否考虑过自动分析历史数据?
基本上,我需要找到问题的答案:上个月哪些测试不稳定并且需要稳定?不幸的是,我没有从主网站( http://allure.qatools.ru/ )或互联网上的框中找到答案。
我的解决方案:
尝试解决第一个问题:[已解决]
我尝试在 jenkins CI 工具下存档 allure 报告,但我必须管理 1500 个 TestNg 测试,并且 allure 报告生成和存档需要大约 10 分钟,这对于我们的管道来说是 Not Acceptable 。 然后我开始生成关于 jenkins 从站的报告,并根据下一个结构将其 ftp 到远程框:project_type/pipeline_type/suite_type/day/build_number。
我使用 btrfs 压缩将报告存储为原始项目,这可以非常有效地压缩 json 文件(文件被压缩 5 倍),并且可以从 ui 访问文件。
UI是一个django(就是喜欢它)项目,它遵循文件系统结构。
这种方法允许聚合数据。
尝试解决第二个问题:[未解决]
我需要聚合 suite_type 的所有运行中的数据(参见上面的结构),并找出哪些测试在主运行或重新运行尝试中失败(我们使用 FailedReporter TestNg 监听器重新运行失败的测试 3 次)并匹配测试失败的失败原因。理想情况下,我需要将失败的测试结果与存储的报告进行匹配。
例如:
我们有 2 份报告:
../parallel-suite/2015-10-21/560
../parallel-suite/2015-10-22/584
每个套件都未通过 testCreditCard 测试。
- 560 构建中的测试失败,原因是 - 第三方系统已关闭。
- 由于原因,第一次重新运行尝试时在 584 构建中测试失败 - 第三方系统已关闭,第二次因原因重新运行尝试时 - IndexOutOfBoundsException:索引:0,大小:java.util.ArrayList.rangeCheck 处的 0,第三次尝试就通过了。
因此,我需要知道第三方系统已关闭
错误在2天内出现2次,IndexOutOfBoundsException
在2天内出现1次并且测试在第二次通过第三次重新运行尝试的一天。
有人朝这个方向努力吗?
最佳答案
是的,Allure 支持聚合报告。但它更多的是关于:
- 分布式执行(根据 Allure 模型,每个测试用例都可以用其执行的主机来标记)
- 多次执行(例如,测试是用不同的编程语言编写的 - 您无法执行单个 Allure 适配器)。
据我所知,Allure 永远不会支持跟踪历史测试结果、发现趋势等。历史测试结果的数量可能会变得巨大,导致浏览器崩溃。此外,时间轴选项卡将不再有意义。其他选项卡需要进行重大更改。为什么不使用声纳来处理这些场景?
关于report - 来自多个 Allure 报告的汇总数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33857096/