Pytest失败重试就是,在执行一次测试脚本时,如果一个测试用例执行结果失败了,则重新执行该测试用例。

前提:

Pytest测试框架失败重试需要下载pytest-rerunfailures插件。

安装方式:pip install pytest-rerunfailures

Pytest实现失败重试的方式:

方式一:在命令行或者main()函数中使用。

pytest.main(['-vs','test_a.py','--reruns=2'])(这种方式没有实现成功,可能自己环境的问题)

或者:

pytest -vs ./test_a.py --reruns 2 --reruns-delay 2(可以)

表示:失败重试2次,在每次重试前会等到2秒。

说明: reruns为重跑次数,reruns_delay为间隔时间,单位s

方式二:在pytest.ini配置文件中使用。(推荐)

pytest.ini配置文件中addopts添加reruns重试参数

[pytest]
addopts = -s --reruns 2 --reruns-delay 2
testpaths = scripts
python_files = test_01.py
python_classes = Test*
python_functions = test*

示例:使用第二种方式:

"""
1.学习目标
掌握pytest中用例失败重试方法
2.操作步骤
2.1 安装 pytest-rerunfailures
pip install pytest-rerunfailures
2.2 使用 在pytest.ini文件中,添加一个命令行参数
--reruns n # n表示重试次数
3.需求
"""
# 1.导入pytest
import pytest # 2.编写测试用例
@pytest.mark.run(order=2)
def test_login():
"""登录用例"""
print("登录步骤")
assert "abcd" in "abcdefg" @pytest.mark.run(order=1)
def test_register():
"""注册用例"""
print("注册步骤")
assert False @pytest.mark.run(order=4)
def test_shopping():
"""购物下单"""
print("购物流程")
assert True @pytest.mark.run(order=3)
def test_cart():
"""购物车用例"""
print("购物车流程")
assert True if __name__ == '__main__':
pytest.main(['-vs', 'test_01.py', '--reruns=2']) # pytest ./pytest_demo/test_01.py --reruns 10 --reruns-delay 1
#
"""
执行结果:注意有两个:2 rerun
==================== 1 failed, 3 passed, 2 rerun in 0.09s ===================== test_01.py::test_register 注册步骤
RERUN
test_01.py::test_register 注册步骤
RERUN
test_01.py::test_register 注册步骤
FAILED
pytest_demo\test_01.py:20 (test_register)
@pytest.mark.run(order=1)
def test_register():
""注册用例""
print("注册步骤")
> assert False
E assert False test_01.py:25: AssertionError
登录步骤
PASSED购物车流程
PASSED购物流程
PASSED
"""

注意:如果设置失败重试5次,在重试的过程中成功了,就不用全部跑完5次重试,这里需要注意一下。

『德不孤』Pytest框架 — 5、Pytest失败重试的更多相关文章

  1. 『德不孤』Pytest框架 — 1、Pytest测试框架介绍

    目录 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5.Pytest框架和Unittest框架区别 (1)Unittes ...

  2. 『德不孤』Pytest框架 — 2、Pytest的基本使用

    目录 1.Pytest安装 2.Pytest常用插件 3.Pytest运行的第一个例子 4.Pytest框架的运行方式 5.在PyCharm中以Pytest的方式运行测试用例 1.Pytest安装 C ...

  3. 『德不孤』Pytest框架 — 3、Pytest的基础说明

    目录 1.Pytest参数介绍 2.Pytest框架用例命名规则 3.Pytest Exit Code说明 4.pytest.ini全局配置文件 5.Pytest执行测试用例的顺序 1.Pytest参 ...

  4. 『德不孤』Pytest框架 — 6、Mark分组执行测试用例

    目录 1.Pytest中的Mark介绍 2.Mark的使用 3.Mark的注册和使用 4.使用Mark完成失败重试 5.扩展 1.Pytest中的Mark介绍 Mark主要用于在测试用例/测试类中给用 ...

  5. 『德不孤』Pytest框架 — 10、setUp()和tearDown()函数

    目录 1.setUp()和tearDown()函数介绍 2.setUp()和tearDown()函数作用 3.setUp()和tearDown()函数说明 4.示例 (1)方法级 (2)类级 (3)函 ...

  6. 『德不孤』Pytest框架 — 11、Pytest中Fixture装饰器(一)

    目录 1.Fixture装饰器的用途 2.Fixture参数说明 3.Fixture装饰器简单应用 4.yield执行后置函数 1.Fixture装饰器的用途 做测试前后的初始化设置,如测试数据准备, ...

  7. 『德不孤』Pytest框架 — 14、Pytest中的conftest.py文件

    目录 1.conftest.py文件介绍 2.conftest.py的注意事项 3.conftest.py的使用 4.不同位置conftest.py文件的优先级 5.conftest.py中Fixtu ...

  8. 『德不孤』Pytest框架 — 15、Pytest参数化

    目录 1.Pytest参数化说明 2.Pytest参数化方式 3.parametrize装饰器参数说明 4.Pytest参数化(单个参数) 5.Pytest参数化(多个参数) 6.ids参数说明 1. ...

  9. 『德不孤』Pytest框架 — 12、Pytest中Fixture装饰器(二)

    目录 5.addfinalizer关键字 6.带返回值的Fixture 7.Fixture实现参数化 (1)params参数的使用 (2)进阶使用 8.@pytest.mark.usefixtures ...

随机推荐

  1. RDA5807M开发指南 & 开源库函数

    文档标识符:RDA5807M_T-D-P16 作者:DLHC 最后修改日期:2022.1.14 最后修改内容:修改.添加内容 发布状态:已发布 本文链接:https://www.cnblogs.com ...

  2. 【初体验】valgrind分析程序性能

    wget https://fossies.org/linux/misc/valgrind-3.15.0.tar.bz2 tar -jxvf valgrind-3.15.0.tar.bz2 cd val ...

  3. 【转载】ASP.NET前台代码绑定

    ASP.NET前台代码绑定后台变量方法总结http://www.cnblogs.com/lerit/archive/2010/10/22/1858007.html ASP.NET前台无法访问后台int ...

  4. python3 爬取深圳主板公司名称,公司网址

    需要阅读的文档: Requests:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html BeautifulSoup:http ...

  5. Pytest单元测试框架生成HTML测试报告及优化

    一.安装插件 要生成html类型的报告,需要使用pytest-html插件,可以在IDE中安装,也可以在命令行中安装.插件安装 的位置涉及到不同项目的使用,这里不再详述,想了解的可自行查询. IDE中 ...

  6. Intellig Idea 常用快捷键列表

    修改方法如下: 点击 文件菜单(File) –> 点击 设置(Settings- Ctrl+Alt+S), –> 打开设置对话框. 在左侧的导航框中点击 KeyMap. 接着在右边的树型框 ...

  7. java多线程中同步的问题?

    一.通过模拟网络延迟,解决同步的问题. package com.zxf.demo; public class G01 implements Runnable{ private int num=10; ...

  8. Codeforces Round #738 (Div. 2)

    Codeforces Round #738 (Div. 2) 跳转链接 A. Mocha and Math 题目大意 有一个长度为\(n\)的数组 可以进行无数次下面的操作,问操作后数组中的最大值的最 ...

  9. 「CTSC2006」歌唱王国

    概率生成函数\(g(x)=\sum_{i\geq 0}t_ix^i\),\(t_i\)表示结果为\(i\)的概率 令\(f(x)\)表示i位表示串结束时长度为i的概率,\(G(x)\)表示i位表示串长 ...

  10. IDEA Debug常用快捷键

    快捷键 介绍 F7 步入:进入到方法内部执行.一般步入自定义的方法.区别于强行步入 F8 步过:不会进入到方法内部,直接执行. F9 恢复程序:下面有断点则运行到下一断点,否则结束程序. Shift+ ...