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

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

相关推荐
Irissgwe2 分钟前
十、LangGraph能力详解:LangGraph 的其他特性
python·ai·langchain·langgraph
吴阿福|一人公司8 分钟前
类变量和实例变量的命名规范有哪些避坑点?
开发语言·python
zhoupenghui16817 分钟前
AI大模型应用部署之Flask框架使用
运维·python·docker·容器·flask·flask框架
ckjoker21 分钟前
手敲三Agent串行流水线,我发现了多Agent协作的隐形杀手
python·agent
稷下元歌21 分钟前
七天学会plc加机器视觉之AI 接入 外设模块开发全详细操作文档(全程配套视频按文档实操)
python·sql·qt·贪心算法·r语言·wpf·时序数据库
KaMeidebaby39 分钟前
卡梅德生物技术快报|细胞周期检测抗原流式分析:参数调试、软件拟合与问题排查
网络·人工智能·python·网络协议·tcp/ip·算法·机器学习
zmzb01031 小时前
Python课后习题训练记录Day124
开发语言·python
geovindu1 小时前
python: Broadcast Pattern
开发语言·python·设计模式·广播模式
winfredzhang1 小时前
Python 实战:用 wxPython 写一个 MD5 文件查重清理工具
python·sqlite·json·wxpython·md5·预览·查重
装不满的克莱因瓶1 小时前
了解不同机器学习模型的分类
人工智能·python·算法·机器学习·ai·分类·数据挖掘