pytest-rerunfailures/pytest-repeat重跑外掛

傻姑娘家的李先生發表於2021-11-28

在測試中,我們會經常遇到這種情況,由於環境等一些原因,一條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次,停止重跑

 

相關文章