一、说明
平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。
自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。
pytest自带失败重跑机制,在运行中传入参数即可。
--lf 参数:运行上次失败的用例,如果没有则全部运行。
--ff参数:运行全部用例,上次失败的优先运行。
二、示例
import pytest def test_01():
print('执行1')
assert 0 == 1 def test_02():
print('执行2')
assert 0 == 0 def test_03():
print('执行3')
assert 0 == 0 def test_04():
print('执行4')
assert 0 == 1
运行--lf参数:
再次运行:只执行了之前错误的用例。
运行--ff参数:
再次运行:
以上的重跑都需要再次执行,不能体现无人值守以及真正的自动化,除非结合。
pytest-rerunfailures是pytest的一个插件,用于重复执行单个用例,或多个测试用例,并指定失败后重复执行的次数。
pip安装 pip install pytest-rerunfailures
pip install pytest-rerunfailures
传入参数 --reruns 3 失败重跑3次 R代表重跑