pytest失败重跑

用例重跑有两种方法,利用pytest-rerunfailures包,和直接使用@pytest.mark.flaky(reruns=重跑次数,reruns_delay=间隔时间)装饰器。

pytest-rerunfailures包

需安装插件 pip installpytest-rerunfailures安装好后,只要执行命令 pytest test_study.py--reruns n 即可实现失败重跑。其中n代表重跑次数,如,输入 pytesttest_study.py –reruns 3 代表用例失败后尝试重新执行3次,注意,是用例执行失败后尝试执行3次,加上第一次失败的那次,总共执行4次

@pytest.mark.flaky(reruns=n,reruns_delay=t)装饰器

装饰器 @pytest.mark.flaky(reruns=n,reruns_delay=t) ,其中n是指重跑次数,t是指间隔时间。

例1 直接使用

import pytest
class Test_case:
  def test_case1(self):

    print("执行用例1")

def test_case2(self):
    print("执行用例2")

 @pytest.mark.flaky(reruns=3,reruns_delay=2)
 def test_case3():
   print("执行用例3")

   assert 1 == 2
  pytest.main(["-s","test_study.py"])

运行结果:

collected 3 items

test_study.py session

执行用例1

.执行用例2

.执行用例3

Rsession

执行用例3

Rsession

执行用例3

Rsession

执行用例3

用例3已经重跑了3次,加上第一次,总共跑了4次,且在执行过程中,可人为感受到每次重跑之间都会有间隔,间隔时间大约2秒。

例2把参数设为变量

# coding=utf-8import pytestimport time
class Test_case:
  def test_case1(self):

    print("执行用例1")

def test_case2(self):
    print("执行用例2")

rerun_times = 3
jiange = 3
@pytest.mark.flaky(reruns=rerun_times,reruns_delay=jiange)
def test_case3():
  print("执行用例3")

  assert 1 == 2

pytest.main(["-s","test_study.py"])

执行结果:
collected 3 items

test_study.py session

执行用例1

.执行用例2

.执行用例3

Rsession

执行用例3

Rsession

执行用例3

Rsession

执行用例3

F

 

转载自:https://mp.weixin.qq.com/s/IRXyFi3Yg-26-YD6PT0jSg

posted @ 2020-11-25 09:07  wclcz  阅读(770)  评论(0编辑  收藏  举报