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

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

相关推荐
zhanghongyi_cpp2 小时前
6. 【分支-章测-编程-2】土壤PH值测定与土壤改良策略
python
2401_871696522 小时前
CSS如何制作点击展开时的手风琴动画_平滑过渡max-height高度
jvm·数据库·python
Greyson12 小时前
C#怎么使用属性Property C#自动属性和完整属性的区别get set怎么用【基础】
jvm·数据库·python
派葛穆2 小时前
Python-OpenCV打开海康机器人黑白相机
python·opencv·机器人
m0_746752303 小时前
c++怎么利用std--variant处理多种二进制子协议包的自动分支解析【进阶】
jvm·数据库·python
m0_7349497910 小时前
MySQL如何配置定时清理过期备份文件_find命令与保留周期策略
jvm·数据库·python
m0_5145205710 小时前
MySQL索引优化后性能没提升_通过EXPLAIN查看索引命中率
jvm·数据库·python
H Journey10 小时前
Python 国内pip install 安装缓慢
python·pip·install 加速
Polar__Star12 小时前
如何在 AWS Lambda 中正确使用临时凭证生成 S3 预签名 URL
jvm·数据库·python