pytest-rerunfailures/pytest-repeat重跑插件-編程思維

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