在測試中,我們會經常遇到這種情況,由於環境等一些原因,一條case執行5次,只有兩次成功
其它三次失敗,針對這種概率性成功或失敗,若是我們每次都執行一次就比較耗時間,這個時候
就需要pytest提供的兩個重跑外掛來完成
一.pytest-rerunfailures外掛
1.安裝pytest-rerunfailures外掛:pip install pytest-rerunfailures,安裝完成後可檢視版本:pip show pytest-rerunfailures
2.指定失敗重跑最大次數:pytest --reruns n(n為重新執行次數)例:設定重跑次數為n,實際重跑次數為m,若case
在設定次數內重跑成功一次,則m<=n,若在設定重跑次數內沒有一次成功的則m=n。如下圖,設定重跑次數為2次
實際重跑第一次的時候就返回了True,所有隻重跑了一次。
如下圖,設定重跑次數2次,在重跑三次內都沒有成功,所有隻重跑了2次
執行結果中R表示該次重跑失敗,.表示在重跑次數內重跑成功,F表示在重跑次數內失敗
3.指定重跑間隔:pytest --reruns n(n為重新執行次數)--reruns-delay m(m為重跑時間間隔,單位為秒)
4.若要指定某個函式重跑的話,可以使用@pytest.mark.param設定引數,執行指令時加上-m “param”即可
二.pytest-repeat外掛
1.安裝:pip install pytest-repeat,檢視版本pip show pytest-repeat
2.使用count指定重跑次數:pytest --count=3 路徑,下圖我們可以看出不管有沒有執行成功或者失敗,都會重跑15次。
count可以與-x引數一起用,設定遇到一次失敗後就停止重跑,圖中可以看出,我們設定重跑15次,在重跑第一次的
時候就失敗了,所有隻重跑了兩次,也可和--maxfail=x引數一起使用,表示錯誤達到X後停止重跑
2.指定某個函式進行重跑次數:@pytest.mark.repeat(count)。下圖指定重跑15次,設定最大錯誤數5次後停止執行
可以看出在重跑第七次的時候最大錯誤數達到5次,停止重跑