领取资料,咨询答疑,请➕wei: June__Go
上一小节我们学习了pytest插件的基本使用方法,本小节我们讲解一下pytest用例失败重跑插件pytest-rerunfailures。
测试环境不稳定偶发接口超时(和服务无关,纯粹是环境问题),然后执行接口case也因此偶发失败。比如同一个接口case跑五次,其中有两次失败,另外三次都是成功的,这种偶发性的环境问题就需要我们手动重跑(还不一定能够通过)。有没有一个比较好的机制,保证case能够尽最大努力通过测试呢?这里我们介绍pytest的一个失败重跑插件:pytest-rerunfailures。
安装插件
pip install pytest-rerunfailures
使用方法
方法1:
- 命令行参数:全局重跑
--reruns n(重新运行次数),--reruns-delay m(等待运行秒数)
示例:
pytest pytest-demo.py --reruns 2 --reruns-delay 3
pytest-demo.py测试文件中的用例,如果执行失败,则会在3秒后再运行。最多再运行2次
方法2:
- 装饰器使用:局部重跑
示例:
# pytest-demo.py
import pytest@pytest.mark.flaky(reruns=2, reruns_delay=3)
def test_example_1():assert 1 == 2def test_example_2():assert 1 == 2
pytest-demo.py测试文件中的用例test_example_1,如果执行失败,则会在3秒后再运行。最多再运行2次,用例 test_example_2并不会重新运行。
注意事项
- 当命令行和装饰器同时出现时,局部的优先级大于全局
- 该插件不可以和fixture装饰器一起使用@pytest.fixture
- 该插件与pytest-xdist的--looponfail标志不兼容
- 该插件与核心--pdb标志不兼容
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走,希望可以帮助到大家!领取资料,咨询答疑,请➕wei: June__Go