如何通过Allure报告查看历史趋势并存储每日自动化测试报告?
解决Allure报告历史存储、日期筛选与对比问题
完全可以实现!你现在遇到的TRENDS和History面板为空的问题,核心原因是每次生成报告时没有保留历史数据,下面一步步教你搞定每日报告存储、日期筛选和结果对比:
一、先修复历史数据丢失问题
你当前的命令allure generate --clean ./allure-results && allure open里的--clean会清空生成的报告目录,且未指定历史数据存储路径,导致Allure无法追踪过往运行记录。
修改命令为:
allure generate --clean ./allure-results --history-dir ./allure-history && allure open
--history-dir ./allure-history:指定固定目录保存所有运行的历史元数据,配置后TRENDS和History面板会自动填充过往测试结果。- 第一次运行前手动创建历史目录:
mkdir -p ./allure-history
二、存储每日独立报告(按日期归档)
如果需要保留每天的完整报告文件(而非仅历史元数据),可以在生成时指定带日期的输出目录:
# 获取当前日期(格式:YYYY-MM-DD) DATE=$(date +%Y-%m-%d) # 生成当日报告并归档 allure generate --clean ./allure-results --history-dir ./allure-history --output ./allure-reports/$DATE # 打开当日报告(可选操作) allure open ./allure-reports/$DATE
执行后,./allure-reports目录下会生成类似2024-05-21的文件夹,每个文件夹对应当天的完整测试报告,方便随时回溯。
三、按日期筛选与报告对比
1. 原生趋势面板筛选
配置--history-dir后,Allure的TRENDS面板会自动按运行时间排序展示所有历史结果,你可以通过面板上的时间范围控件筛选特定时间段的运行记录,查看通过率、耗时等趋势变化。
2. 手动对比任意日期的报告
Allure提供了allure compare命令,可直接对比两个不同日期的报告,生成差异分析:
# 对比2024-05-20和2024-05-21的报告 allure compare ./allure-reports/2024-05-20 ./allure-reports/2024-05-21
这个命令会生成对比报告,清晰展示两次运行的差异:新增/删除的测试用例、用例状态变化(如从通过变失败)、耗时波动等。
四、自动化每日运行的脚本建议
为简化每日操作,你可以写一个shell脚本(比如daily-allure-report.sh)封装所有步骤:
#!/bin/bash # 确保必要目录存在 mkdir -p ./allure-results ./allure-history ./allure-reports # 获取当日日期 DATE=$(date +%Y-%m-%d) # 生成并归档报告 allure generate --clean ./allure-results --history-dir ./allure-history --output ./allure-reports/$DATE # 软链接到最新报告,方便快速访问 ln -sf ./allure-reports/$DATE ./allure-reports/latest echo "今日报告已归档至 ./allure-reports/$DATE,最新报告可通过 ./allure-reports/latest 访问"
给脚本添加执行权限:chmod +x daily-allure-report.sh,之后每日运行这个脚本即可。
注意事项
- 确保每次运行测试前,
allure-results目录是干净的(可在WebdriverIO配置中添加清理逻辑,或脚本里加rm -rf ./allure-results/*),避免旧测试结果干扰。 - 如果在CI/CD环境(如Jenkins、GitHub Actions)中运行,要确保
allure-history和allure-reports目录被持久化存储(比如用工作空间缓存、云存储等),否则每次CI运行都会丢失历史数据。 - 保持Allure版本一致,不同版本的Allure生成的报告元数据可能不兼容,导致历史面板无法正常显示。
内容的提问来源于stack exchange,提问作者Siddharth Sonone
相关产品推荐
相关产品推荐

