pytest 之重运行机制:rerunfailures

  web自动化测试中,稳定性在整个测试运行中都至关重要,但不能保证测试脚本或者测试环境一直都能够稳定,它牵扯到诸多因素,在这里就不赘述,pytest框架相较于unittest的一大优势就在于拥有用例失败的重试机制,以此来应对环境不稳定问题或者是测试用例脚本的不稳定性问题。

一、安装

重运行机制使用到了pytest的插件,插件名称为:rerunfailures (译:瑞软.费偶噎死),要使用它,需要先安装此插件

pip install pytest-rerunfailures

二、使用方法

1.命令行参数形式

  • 命令:pytest --reruns 重试次数

  比如:pytest --reruns 2  表示:运行失败的用例可以重新运行2次

  • 命令:pytest --reruns 重试次数 --reruns-delay 次数之间的延时设置(单位:秒)

  比如:pytest --reruns 2 --reruns-delay 5  表示:运行失败的用例可以重新运行2次,第一次和第二次的间隔时间为5秒钟

import pytest

def test_demo_01():
    b = 1 + 2
    assert 3 == b

def test_demo_02():
    b = 1 + 2
    assert 2 == b

if __name__ == ‘__main__‘:
    pytest.main([‘--reruns‘, ‘3‘, ‘--reruns-delay‘, ‘5‘])

  运行结果:

2.使用装饰器

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

import pytest

def test_demo_01():
    b = 1 + 2
    assert 3 == b

@pytest.mark.flaky(reruns=3, reruns_delay=5)
def test_demo_02():
    b = 1 + 2
    assert 2 == b

  运行结果:

*******尊重作者,本文是本人转载自:https://www.cnblogs.com/xiaogongjin/    *******

原文地址:https://www.cnblogs.com/shouhu/p/12392917.html

时间: 2024-08-11 17:48:05

pytest 之重运行机制:rerunfailures的相关文章

MFC第一节-windows程序内部运行机制

一.窗口 设计窗口类时: 1 typedef struct _WNDCLASS{ 2 UINT style; //如水平.垂直变化是否重绘,禁用Close,检测双击 3 WNDPROC lpfnWndProc;//窗口过程函数句柄 4 int cbClsExtra;//类附加内存 5 int cbWndExtra;//窗口附加内存 6 HANDLE hInstance;//实例句柄 7 HANDLE hIcon;//图标 8 HCURSOR hCursor;//光标 9 HBRUSH hbrBa

Apache运行机制剖析

Apache运行机制剖析: 1. B/S交互过程 浏览器(Browser)和服务器(Web Server)的交互过程: 1.  浏览器向服务器发出HTTP请求(Request). 2.  服务器收到浏览器的请求数据,经过分析处理,向浏览器输出响应数据(Response). 3.  浏览器收到服务器的响应数据,经过分析处理,将最终结果显示在浏览器中. 下图是一份浏览器请求数据和服务器响应数据的快照: 关于浏览器和服务器数据交互过程非常简单,很容易理解.我想从事Web开发的人员都很清楚,在此不再赘述

Windows程序内部运行机制

Windows程序内部运行机制 一.        API与SDK Windows操作系统提供了各种各样的函数,以方便我们开发Windows应用程序,这些函数是Windows操作系统提供给应用程序编程的接口(Application Programming Interface),简称为API函数.我们在编写Windows程序时所说的API函数,就是指系统提供的函数,所有主要的Windows函数都在Windows.h头文件中进行了说明. SDK的全称是Software Development Kit

聊一聊Vue实例与生命周期运行机制

Vue的实例是Vue框架的入口,担任MVVM中的ViewModel角色,所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后在数据变化时更新 DOM .在这个过程中,事件钩子可以辅助我们对整个实例生成.编译.挂载.销毁等过程进行js控制,给我们提供了执行自定义逻辑的机会.所以学习实例的生命周期,能帮助我们理解vue实例的运行机制,更

【vc】1_Windows程序内部运行机制

创建一个Win32应用程序步骤: 1.编写WinMain函数; 2.创建窗口(步骤如下): a.设计(一个)窗口类(WNDCLASS) b.注册(该)窗口类. c.创建窗口. d.显示并更新窗口. 3.编写消息循环. 4.编写窗口过程函数. 1 //WinMain.cpp 2 #include <windows.h> 3 #include <stdio.h> 4 5 LRESULT CALLBACK WinAzeProc( 6 HWND hwnd, // handle to win

Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html

一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序就可以了,微软帮我们做了非常好的封装,以至于对于很多.NET开发人员至今也不清楚Windows 平台下程序运行的内部机制,所以本专题将深入剖析下Windows 程序的内部运行机制. 二.Windows平台下几个基础概念 有朋友会问,理解了程序运行的内部机制有什么用,因为在我们实际开发中用得微软提供的

第一章 Windows程序内部运行机制(4)WinMain函数

WinMain函数相当于main函数,作为Windows程序的入口函数.当WinMain结束或返回时,Windows程序结束. 一个win32应用程序,该程序创建一个窗口并在窗口中响应键盘与鼠标消息,程序的实现步骤为: 1.WinMain函数的定义:2.创建一个窗口:3.进行消息循环:4.编写窗口过程 WinMain函数的定义: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, in

【技术分享】sphinx的--rotate运行机制

如果sphinx在运行中,要indexer时,需要加上--rotate参数,这样索引完就直接生效了. 原因是sphinx的searchd在启动时会创建一个.sql锁文件,因为这时已经标志sphinx正在运行中,除非使用--rotate. rotate运行机制 ->indexer完成索引 ->发送SIGHUP给searchd(同时在终端输出索引已经 完成) ->searchd接到中断信号->等待所有子进程退出 ->重命名 当前索引为旧索引为.old ->重命名 .new索

从setTimeout谈JavaScript运行机制

前言 最近在看些JavaScript异步的东西,但是由于时间有限,才刚看了个头,不得不中途停止.为了方便日后查阅以备重拾,遂记录一点体会,如果能使得他人有所收获,那更是极好的.其实本文与异步并没有太大关系. 从setTimeout说起 众所周知,JavaScript是单线程的编程,什么是单线程,就是说同一时间JavaScript只能执行一段代码,如果这段代码要执行很长时间,那么之后的代码只能尽情地等待它执行完才能有机会执行,不像人一样,人是多线程的,所以你可以一边观看某岛国动作片,一边尽情挥洒汗