一、說明
平常在做功能測試的時候,經常會遇到某個模塊不穩定,偶然會出現一些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代表重跑