pytest十六:allure2 生成 html 报告

时间:2021-02-24 14:51:14
allure 是一个 report 框架,支持 java 的 Junit/testng 等框架,当然也可以支持 python 的 pytest 框架,也可以集成到 Jenkins 上展示高大上的报告界面。

环境准备
1.python3.6
2.windows 环境
3.pycharm
4.pytest-allure-adaptor
5.allure2.7.0
6.java1.8 pytest-allure-adaptor 下载
pip 安装 pytest-allure-adaptor,github 地址 https://github.com/allure-framework/allure-pytest
> pip3 install pytest-allure-adaptor 生成 xml 报告
> pytest -s -q --alluredir report
如果不指定路径,默认在当前目录下新建一个 report 目录,当然也可以指定路径
> pytest -s -q --alluredir 指定 report 路径
执行完之后打开 report 文件夹,会自动生成 xml 格式的报告 安装 Command Tool
allure 的版本目前有 2 个,从 github 上看,allure1 不再被支持,请考虑使用 allure2 https://github.com/allure-framework/allure2替代 allure-commandline releases 版本 https://github.com/allure-framework/allure2/releases 下载最新的 Download allure2.7.0 版本
[下载 Download allure2.7.0 地址:https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.7.0/allure-2.7.0.zip]
(https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.7.0/allure-2.7.0.zip)

pytest十六:allure2 生成 html 报告

下载好之后,解压到运行 pytest 的目录下
打开\allure-2.7.0\bin 文件夹,会看到 allure.bat 文件,将此路径设置为系统环境变量 path 下,这样 cmd 任意目录都能执行了

pytest十六:allure2 生成 html 报告

pytest十六:allure2 生成 html 报告


运行 allure2
前面 pytest -s -q —alluredir 这一步已经生产了 xml 格式的报告,
放到了 report 目录下,接着执行以下命令格式
> allure generate directory-with-results/ -o directory-with-report
directory-with-results 是 alluredir 生成的 xml 目录,
directory-with-report 是最终生成 html 的目录
allure.bat 已经加到环境变量了,所以可以用相对路径去生成 html报告
> allure generate report/ -o report/html

pytest十六:allure2 生成 html 报告

打开报告
直接找到 report/html 打开 index.html 会显示一个空的报告,这里用 pycharm 去打开

pytest十六:allure2 生成 html 报告


依赖 java 环境  (搭建java环境自行百度)
之前用的 jdk1.7 版本,执行 allure 时候报错:Unsupported major.minor VERSION 51.0
由于 allure2 是 java 开发的,需要依赖 java 环境,解决办法:jdk 版本用 1.8 就可以了 如果前学过 unittest 框架的应该知道,unittest 框架用个痛点,用例不用例之间的独立的,不能跨脚本运行数据共享。比如 test_01.py的 driver,不能共享到 test_02.py 上。这样会导致一个问题,每次运行一个.py 的脚本用例,会重复打开浏览器,浪费比较多的时间。 pytest 框架就能很好的解决这个问题,只需在 conftest.py 设置一个前置的 fixture 功能,设置为 session 级别,返样所有的用例之间都能共享 driver 了。