pytest集成Allure报告教程

下载及配置

首先进行 Windows 版本 Allure 报告工具的下载,直接下载官方压缩包即可:下载链接:https://github.com/allure-framework/allure2/releases/download/2.30.0/allure-2.30.0.zip

下载解压后,我们需要给allure配置环境变量,将bin所在的路径添加到path中:

配置好环境变量后我们在命令行中执行allure --version就能看到allure版本,就说明配置成功了。

在pycharm控制台也要执行命令allure --version来验证配置:

若控制台提示命令无法识别,说明环境未配置成功,需要修改 PyCharm 终端配置:

打开 PyCharm 设置 settings → Tools → Terminal将红框内原有配置替换为下图所示内容,

修改完成后重启 PyCharm。重启完毕后再次在控制台执行allure --version,能正常输出版本号即代表配置完成。

使用

1、生成测试结果

pytest --alluredir=allure-results

该命令作用:将本次测试运行结果生成到allure-results文件夹中,若项目目录下不存在该文件夹,程序会自动创建文件夹 ,内部存放 json 格式的原始测试数据。

2、查看测试报告

方式 1:浏览器临时打开服务查看

allure serve .\allure-results\

执行后会随机生成端口号,自动打开网页版测试报告。

也可以手动指定固定端口号,避免随机端口混乱,命令

allure serve --port 8989 .\allure-results

指定端口号8989

方式 2:生成静态 HTML 报告文件

allure generate allure-results -o allure-reports

allure-results是存放之前生成的测试结果的文件夹, allure-reports是生成的测试报告所在的文件夹。

生成完毕后打开文件夹内的index.html文件,选择浏览器打开即可查看完整测试报告。

如果后续重新运行用例、更新了测试数据,想要更新报告,必须添加--clean参数 ,清空旧报告内容,否则不行:

allure generate .\allure-results\ -o allure-reports --clean

添加该参数后,新生成的 HTML 报告会完整覆盖原有旧报告


数据追加问题与清空参数

重新执行命令pytest --alluredir=allure-results 后会继续在测试结果中追加内容,可以看到测试内容由之前的4个变成8个了。

只执行 pytest --alluredir=allure-results 时,程序不会清空历史数据。

执行allure serve .\allure-results\再来查看测试报告

同一个用例能看到多条历史记录。

图中右侧是前一次执行的情况,左侧是本次执行的情况。


pytest --alluredir=allure-results --clean-alluredir

该命令会在运行用例之前,清空allure-results内全部历史 json 数据,执行完毕后文件夹内只留存当前轮次的测试数据

pytest.ini 全局默认配置简化命令

通过在命令行执行pytest --alluredir=allure-results,每次都要指定测试报告文件夹,太麻烦了,我们可以把常用配置项写入pytest.ini中,进行配置:

复制代码
addopts = -vs --alluredir allure-results

-vs在之前的文章中提到过,是运行pytest默认显示详细信息和print内容。

--alluredir allure-results 表示 默认运行pytest后,将测试结果放到allure-results文件夹下面。

如果需要默认每次运行自动清空历史、仅保留本次测试数据,无需手动加参数,可以加上--clean-alluredir

复制代码
addopts = -vs --alluredir allure-results --clean-alluredir

Allure 报告报错信息展示

如果用例执行错误的话,在测试报告中,我们也是能看到错误原因的:

相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊2 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1232 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero072 天前
Jev 与 Laya
python·语言模型