如何为pabot生成的HTML测试结果报告设置自定义文件名
文件名加时间戳解决方案
核心实现逻辑为在生成报告文件名的环节,先生成符合YYYYMMDDHHmm格式的24小时制时间戳,再拼接进文件名即可,完全匹配你需要的report-202111181704.html格式要求。以下是不同常用执行场景的具体实现:
1. Shell脚本环境(crontab定时执行场景)
如果是用Shell脚本搭配定时任务执行测试,直接调用系统date命令生成时间戳即可:
# 生成符合要求的24小时制时间戳 timestamp=$(date +"%Y%m%d%H%M") # 拼接得到最终报告文件名 report_filename="report-${timestamp}.html" # 替换你原本的测试执行命令即可,以pytest为例 pytest --html=${report_filename} ./test_cases
2. Python环境(Python测试框架场景)
如果用Python编写测试用例、使用pytest等框架,调用datetime模块生成时间戳即可:
from datetime import datetime # 生成指定格式时间戳 timestamp = datetime.now().strftime("%Y%m%d%H%M") report_filename = f"report-{timestamp}.html" # 示例:pytest执行测试并生成对应名称的报告 import pytest if __name__ == "__main__": pytest.main(["--html", report_filename, "./test_cases"])
3. Node.js环境(前端测试/JS测试框架场景)
如果用JS技术栈做测试,通过Date对象生成时间戳即可:
const now = new Date(); // 补前导零工具函数 const pad = num => num.toString().padStart(2, '0'); const timestamp = `${now.getFullYear()}${pad(now.getMonth()+1)}${pad(now.getDate())}${pad(now.getHours())}${pad(now.getMinutes())}`; const reportFilename = `report-${timestamp}.html`; // 示例:mochawesome报告生成配置 // mocha ./test --reporter mochawesome --reporter-options reportFilename=${reportFilename}
无侵入替代方案(无需修改测试代码)
如果不想改动测试框架的报告生成配置,可以在测试执行完成后直接重命名固定生成的报告文件,适配所有测试框架:
# 假设你原本固定生成的报告名为report.html timestamp=$(date +"%Y%m%d%H%M") mv report.html report-${timestamp}.html
只需要在你的执行脚本末尾增加一行重命名命令即可生效。
内容的提问来源于stack exchange,提问作者Pandarian Ld
相关产品推荐
相关产品推荐

