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 报告报错信息展示

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

相关推荐
花酒锄作田9 小时前
Pydantic校验配置文件
python
hboot9 小时前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
ZhengEnCi20 小时前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi1 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽1 天前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户8358086187911 天前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python
Warson_L2 天前
Python `Annotated` 与 LangGraph Reducer 学习笔记
python
韩师傅2 天前
海天线算法的前世今生
python·计算机视觉
韩师傅2 天前
当你的甲方设备过烂,要如何快速出效果?
python·计算机视觉
Warson_L2 天前
LangGraph的MessageState and HumanMessage
python