Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pytest之重运行及生成测试报告

Pytest之重运行及生成测试报告

作者头像
可可的测试小栈
发布于 2020-09-14 08:46:03
发布于 2020-09-14 08:46:03
97600
代码可运行
举报
文章被收录于专栏:全栈测试全栈测试
运行总次数:0
代码可运行

在上一篇Pytest系列文章:Pytest之参数化,主要介绍pytest参数化讲解及实战。

以下主要介绍Pytest的重运行及生成测试报告。

重运行

在做UI自动化,如Selenuim或者Appium时,遇到某些元素未能及时显示,导致点击失败,如果加上重跑,那么将有效提高报告的准确性。

在Pytest中,可以使用pytest-rerunfailures用来失败用例重跑。

1

安装pytest-rerunfailures

安装命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pytest-rerunfailures

2

使用说明

@pytest.mark.flaky(reruns=重试次数, reruns_delay=次数之间的延时设置(单位:秒))

3

举个栗子

重试次数

test_demo.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pytest
@pytest.mark.flaky(reruns=2)
def test_demo():
    assert 3 == 4

运行结果为:

指定重运行等待时间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pytest
@pytest.mark.flaky(reruns=2,reruns_delay=2)
def test_demo():
    assert 3 == 4

运行结果为:

生成测试报告

1

pytest-html生成报告

pytest使用pytest-html插件生成测试报告。

① 安装pytest-html

安装命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pytest-html

② 举个栗子

现有用例如下:

test_demo.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pytest

@pytest.mark.flaky(reruns=2,reruns_delay=2)
def test_demo():
    assert 3 == 4

test_demo1.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class TestDemo:
    def test_demo01(self):
        print("这是test_demo01")
    def test_demo02(self):
        print("这是test_demo02")

命令行输入:pytest --html=report.html

运行之后,会生成report.html,用浏览器打开report.html,如下:

2

allure生成报告

用pytest-html生成的报告稍微简单和丑了一点,我们可以使用更强大的工具allure,allure测试报告框架帮助你轻松实现"高大上"报告展示。

01 安装allure

①从github上下载allure,下载传送门为:

https://github.com/allure-framework/allure2/releases

如下所示,选择”Download“下载即可:

② 下载完后,解压到项目根目录下。

③ 安装allure插件

安装命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install allure-pytest

④ 添加环境变量:将allure-2.13.5\bin的目录路径添加到环境变量。

02 举个栗子

① 现有用例如下:

test_demo.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pytest

@pytest.mark.flaky(reruns=2,reruns_delay=2)
def test_demo():
    assert 3 == 4

test_demo1.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class TestDemo:
    def test_demo01(self):
        print("这是test_demo01")
    def test_demo02(self):
        print("这是test_demo02")

② 在项目根目录下新建目录report。

③ 在命令行输入:pytest -s -q --alluredir ./report,在report目录下会生成一些json格式的。

④ 在report目录下,新建目录html,用于存放html报告。

⑤ 命令行输入allure generate ./report -o ./report/html,生成了最终的html报告。

⑥用浏览器打开index.html文件,效果如下:

以上

That‘s all

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ITester软件测试小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
pytest学习和使用15-Pytest用例失败如何重跑?(pytest-rerunfailures的简单使用)
1 简介 用例失败重跑可以使用插件pytest-rerunfailures来实现; pytest-rerunfailures有环境要求: Python 3.5-3.8, or PyPy3 pytest 5.0或更高版本 查看下自己的版本,如下: Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "
虫无涯
2023/02/20
7760
Python测试框架pytest(19)插件 - 元数据、可选择URL地址、实时输出错误信息、失败重试
pytest 框架里面的元数据可以使用 pytest-metadata 插件实现。
wangmcn
2022/07/26
6860
Python测试框架pytest(19)插件 - 元数据、可选择URL地址、实时输出错误信息、失败重试
pytest框架介绍
前面介绍了unittest这个自动化框架,但是这个古老的框架,还有很多不足。 于是乎,后浪出现了,今天要讲的就是pytest框架。 pytest介绍 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1、简单灵活,容易上手,文档丰富; 2、支持参数化,可以细粒度地控制要测试的测试用例; 3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests); 4、pytest具有很多第三方插件,并且可以自定义扩展 如pytest-selenium(集成selenium)、 pytest-html(完美html测试报告生成)、 pytest-rerunfailures(失败case重复执行)、 pytest-xdist(多CPU分发)、 pytest--ordering(控制测试运行的顺序) 5、测试用例的skip和xfail处理; 6、可以很好的和CI工具结合,例如jenkins
赵云龙龙
2021/04/23
1.1K0
Python接口自动化-Pytest-Html
小编在搭建组内接口自动化框架过程中使用过两个HTML报告框架,Pytest-HTML和Allure,本文主要介绍下Pytest-HTML。
软测小生
2020/05/25
9200
Pytest系列(11)- 失败重跑插件pytest-rerunfailures的详细使用
https://www.cnblogs.com/poloyy/category/1690628.html
小菠萝测试笔记
2020/06/09
2.7K0
pytest测试框架系列(5)-常用的pytest插件
这次主要分享的是pytest常用的插件,用好这些插件,对我们做自动化测试会起很好的作用。
搁浅同学
2022/07/21
6550
pytest测试框架系列(5)-常用的pytest插件
Python的pytest模块
从测试结果中可以看到,该测试共执行了两个测试样例,一个失败一个成功。同样,我们也看到失败样例的详细信息,和执行过程中的中间结果。-q即-quiet,作用是减少冗长,具体就是不再展示pytest的版本信息。
狼啸风云
2020/01/13
1.2K0
Python的pytest模块
Pytest(十五)重试机制
在很多的用例执行的过程中,有时候的失败 不一定是真正的失败,可能是因为网络等因素导致的,但是这样的用例结果,直接反馈给我们,是无法有说服力的,这样的问题应该如何解决呢。
雷子
2022/04/06
1.4K0
Pytest(十五)重试机制
pytest重试_手机qq插件加载失败
要重新运行所有测试失败的用例,请使用--reruns命令行选项,并指定要运行测试的最大次数:
全栈程序员站长
2022/09/16
8050
接口自动化测试之pytest用例管理框架
文档:https://docs.pytest.org/en/latest/contents.html#toc
用户6367961
2022/11/21
9480
接口自动化测试之pytest用例管理框架
appium自动化测试
全局安装: 即安装在全局环境中,新创建的工程导入全局环境时会将该包导入,cmd输入:pip install pytest
花落花相惜
2021/12/06
6470
带你认识 Pytest(一)
•简单灵活,容易上手•支持参数化•能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)•pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等•测试用例的skip和xfail处理•可以很好的和jenkins集成•report框架----allure 也支持了pytest
周辰晨
2020/09/03
5240
pytest框架介绍(二)
前面简单介绍了如何使用pytest, 感觉介绍得太泛泛了。个人感觉,pytest的精髓在fixture. 学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixture那么使用pytest和使用unittest是没什么区别的(个人理解)。
赵云龙龙
2021/04/23
9530
pytest
打铁读书郎
2024/05/06
1390
pytest「conftest、pytest参数化、重运行、出测试报告」
1.这个conftest.py分路径吗?如果在TestCases下建这个包可以直接用吗?
清菡
2020/12/02
1.4K0
pytest「conftest、pytest参数化、重运行、出测试报告」
Pytest和Allure测试框架-超详细版+实战
:1. 简单灵活,容易上手;支持参数化; 测试用例的skip和xfail 处理; 2. 能够支持简单的单元测试和复杂的功能测试,还可以用来做 selenium/appium等自动化测试、接口自动化测试 (pytest+requests); 3. pytest具有很多第三方插件,并且可以自定义扩展, 比较好 用的如 pytest-allure(完美html测试报告生成) pytest-xdist (多CPU分发)等; 4. 可以很好的和jenkins集成;** 5. **
全栈程序员站长
2022/09/17
2.4K0
Pytest和Allure测试框架-超详细版+实战
Python测试框架之pytest详解
Python测试框架之前一直用的是unittest+HTMLTestRunner,听到有人说pytest很好用,所以这段时间就看了看pytest文档,在这里做个记录。
全栈程序员站长
2022/09/05
2.4K0
Python测试框架之pytest详解
pytest框架从入门到精通
unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发一些功能(报告,初始化webdriver,或者http请求方法)便可实现。
iTesting
2019/10/29
1.4K0
pytest框架从入门到精通
Python pytest测试框架详解
pytest介绍: pytest是一个非常成熟的全功能的Python测试框架: 1.简单灵活,容易上手 2.支持参数化 3.测试用例的skip和xfail,自动失败重试等处理 4.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+request) 5.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest- allure(完美html测试报告生成)、pytest-xdist(多CPU分发)等 6.可以很好的和jenkins集成
全栈程序员站长
2022/11/15
3.2K0
【Python系列】pytest自动化测试框架
为了更灵活的设计自动化测试用例,可以将测试用例写到excel或者json,再进行读取。
用户9913368
2022/08/13
8500
【Python系列】pytest自动化测试框架
相关推荐
pytest学习和使用15-Pytest用例失败如何重跑?(pytest-rerunfailures的简单使用)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验