如何在Python中生成可下载的pytest测试报告PDF文件
pytest 生成PDF格式测试报告的可行方案
以下3种方案都可以满足需求,输出效果和你现在用的allure、pytest-html报告一致:
方案1:直接用pytest-pdf插件一步生成PDF
无需先生成HTML报告,执行测试时直接输出PDF,操作成本最低:
- 安装依赖:
pip install pytest-pdf - 执行测试命令示例:
pytest 你的测试路径 --pdf=测试执行报告.pdf - 可通过
--css-path参数传入自定义样式文件,完全复现你之前pytest-html的自定义样式,输出效果和pytest-html报告完全一致。 - 缺点:默认样式偏基础,需要自行调整css才能达到allure级别的展示效果。
方案2:基于已有的allure HTML报告转PDF
可以1:1保留allure报告的所有统计信息、用例详情、错误日志、截图附件等内容,样式和原报告无差异:
- 先安装工具:首先安装系统工具wkhtmltopdf,再安装Python依赖
pip install pdfkit - 生成allure HTML报告后,执行转换即可,核心代码示例:
import pdfkit # 需添加enable-local-file-access参数保证allure本地静态资源正常加载 pdfkit.from_file('allure-report/index.html', 'allure测试报告.pdf', options={'enable-local-file-access': None})
- 支持自定义配置页眉页脚、添加公司logo、调整页面边距等,可满足企业级报告定制需求。
方案3:基于pytest-html报告转PDF
pytest-html生成的是单文件HTML,无需额外依赖就能转换:
- 直接打开生成的HTML报告,按Ctrl+P唤起打印功能,选择「保存为PDF」,勾选「背景图形」选项、调整合适边距后保存,输出效果和原HTML报告完全一致。
- 也可以用方案2里的pdfkit工具实现自动化转换,无需手动操作。
如果需要高度自定义的PDF内容,也可以自行通过jinja2编写报告模板,渲染成HTML后再转PDF,灵活度完全可以匹配Java生态的PDF报告生成能力。
内容的提问来源于stack exchange,提问作者Gureilla
相关产品推荐
相关产品推荐

