pytest框架笔记(四)HTML,Allure2报告生成

 

目录

 

第 3 章 HTML 报告生成

3.1-pytest-html 生成 html 报告

2.2-html 报告报错截图+失败重跑

3.3 pytest-html 报告优化(添加 Description)

3.4pytest-html 报告优化 nodeid 中文显示

3.5-allure2 生成 html 报告


第 3 章 HTML 报告生成

生成 html 报告,这里介绍了 2 个框架

1.pytest-HTML

2.allure2

3.1-pytest-html 生成 html 报告

pytest-HTML 是一个插件,pytest 用于生成测试结果的 HTML 报 告。兼容 Python 2.7,3.6

pytest-html

1.github 上源码地址 【https://github.com/pytest-dev/pytest-html】

2.pip 安装 > pip install pytest-html

3.执行方法

> pytest --html=report.html

html 报告

1.打开 cmd,cd 到需要执行 pytest 用例的目录,执行指令:pytest —html=report.html

2.执行完成后,在当前目录会生成一个 report.html 的报告文件, 显示效果如下

指定报告路径

1.直接执行”pytest —html=report.html”生成的报告会在当前 脚本的同一路径,如果想指定报告的存放位置,放到当前脚本的同一目 录下的 文件夹里

2.如果想指定执行某个.py 文件用例戒者某个文件夹里面的所有用 例,需加个参数。

需要更改运行规则,进入文件目录:pytest test_css.py --html=./report/report.html

报告独立显示

上面方法生成的报告,css 是独立的,分享报告的时候样式会丢失, 为了更好的分享发邮件展示报告,可以把 css 样式合并到 html 里

> pytest --html=report.html --self-contained-html

显示选项

默认情况下,“ 结果”表中的所有行都将被展开,但具测试通过 的行除外 Passed。 可以使用查询参数自定义此行 为:?collapsed=Passed,XFailed,Skipped。

更多功能 1.更多功能查看官方文档 https://github.com/pytest-dev/pytest-html

2.2-html 报告报错截图+失败重跑

做 web 自动化的小伙伴应该都希望在 html 报告中展示失败后的截 图,提升报告的档次,pytest-html 也可以生成带截图的报告。

conftest.py

1.失败截图可以写到 conftest.py 文件里,返样用例运行时,叧要 检测到用例实例,就调用截图的方法,并且把截图存到 html 报告上

2.用例部分如下:

报告展示

cmd 打开,cd 到用例的目录,执行指令

> pytest --html=report.html --self-contained-html

失败重试

失败重跑需要依赖 pytest-rerunfailures 插件,使用 pip 安装就行

> pip install pytest-rerunfailures

用例失败再重跑 1 次,命令行加个参数--reruns 就行了

> py.test --reruns 1 --html=report.html --self-contained-html

关于 reruns 参数的 2 个用法 --reruns=RERUNS RERUNS 参数是失败重跑的次数,默认为 0 --reruns-delay=RERUNS_DELAY RERUNS_DELAY 是失败后间 隔多少 s 重新执行,时间单位是 s

3.3 pytest-html 报告优化(添加 Description)

pytest-html 测试报告默认是不展示用例描述 Description 内容,之前用 unittest 生成的报告是可以展示用例的描述,也就是 test 开头的用例下三个引 号里面的注释(docstring)内容。 pytest-html 框架是可以修改生成的报告内容的,可以自己添加和删除 html 报 告的 table 内容。

修改报告

pytest-html 官方文档地址https://pypi.org/project/pytest-html/  可以通过为标题行实现自定义钩子来修改列,下面的示例在 conftest.py 脚本 中使用测试函数 docstring 添加描述(Description)列,添加可排序时间(Time) 列,并删除链接(Link)列:

还可以通过 pytest_html_results_table_row 挂钩删除所有单元格来删除结果。下面的示例从 报表中删除所有测试通过的结果:

import pytest
@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):
     if report.passed:
     del cells[:]
日志输出和附加 HTML 可以通过 pytest_html_results_table_html 挂钩来修改。下面的示例清
空测试通过的日志输出:
import pytest
@pytest.mark.optionalhook
def pytest_html_results_table_html(report, data):
     if report.passed:
     del data[:]
     data.append(html.div('No log output captured.', class_='empty 
     log'))

添加 Description

通过上面的官方文档,可以自己修改下测试报告,在报告里面添加一列的内容, 添加到第二列,于是修改如下,红色代码全部注释掉

第三个@pytest.mark.hookwrapper,这个在之前测试报告里面添加截图时候,已经写过了, 只需在最后加一句代码即可 report.description = str(item.function.__doc__)

3.4pytest-html 报告优化 nodeid 中文显示

 

pytest-html 报告中当用到参数化时候,获取用例的 nodeid 里面有中文时候, 会显示[\u6350\u52a9\u6211\u4eec]这种编码(再次声明,这个不叫乱码,这是unicode 编码)

3.5-allure2 生成 html 报告

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文件包解压到你的项目文件包里

然后进行环境的配置

我的电脑-属性-高级系统设置-环境变量-在path中新建添加一条你allure的路径

运行 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

执行完之后目录结构如下:

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

打开后报告展示

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值