第一種:對所有用例使用
1、安裝:pip install pytest-rerunfailures
2、命令行參數:pytest -- reruns 重試次數 (--reruns-delay 次數之間間隔)
pytest --reruns 2 運行失敗的用例可以執行2次
pytest --reruns 2 --reruns-delay 5 運行失敗的用例可以執行2次,每次間隔5秒
pytest.main(["-v","-m","demo","--reruns","2","--reruns-delay","5","--alluredir=../OutPuts/allure-results"])
pytest中的失敗截圖。
第二種:只對部分用例使用重運行機制
1、安裝:pip install flaky
在指定的用例使用裝飾器
@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_example():
import random
assert random.choice([True, False])
reruns=5, reruns_delay=2:最多失敗重跑5次 & 如果失敗則延遲1秒后重跑(可以不傳)
@flaky(max_runs=3, min_passes=2):第一次執行失敗了,將會再次重復執行它3次,如果這3次中有2次成功了,則認為這個測試通過了。