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

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

相关推荐
实名上网宋凯宣6 小时前
Django
后端·python·django
如若1237 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
砚底藏山河9 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新9 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
薛定谔的猫-菜鸟程序员9 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
Ramble_Naylor11 小时前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
Allen_LVyingbo12 小时前
NVIDIA CUDA Tile 在医疗计算中的算子形式化、算法重构与内核实现
大数据·python·算法·重构·知识图谱·健康医疗·数据库架构
云和数据.ChenGuang12 小时前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
我命由我1234513 小时前
Python 实用操作 - 文件操作(打开与关闭文件、读取文件、文件写入)
java·开发语言·前端·javascript·数据库·python·java-ee
青少儿编程课堂13 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析
c++·python·算法·bfs·信息学竞赛