pytest重複執行用例

一、在cmd安裝repeat

pytest-repeat是pytest的一個插件,用於重複執行單個用例,或多個測試用例,並指定重複次數,pytest-repeat支持的版本:

  • python 2.7,3.4+ 或 PyPy
  • py.test 2.8或更高

pip install pytest-repeat

 二、安裝完後,使用方法如下

方法一:在測試用例直接寫:@pytest.mark.repeat(n),n代表執行次數,這種方式的執行順序是每條用例執行N次之後再往下執行其他用例

如果要在代碼中標記要重複多次的測試,可以使用@pytest.mark.repeat(count)裝飾器

方法二:使用–count命令行選項指定要運行測試用例和測試次數,pytest --count=10 腳本名.py

三、重複測試直至失敗

如果您正在嘗試診斷間歇性故障,那麼一遍又一遍地運行相同的測試直至失敗是有用的。您可以將pytest的-x選項與pytest-repeat結合使用,以強制測試運行器在第一次失敗時停止。例如:

 pytest --count=1000 -x test_cc.py

這樣嘗試運行test_cc.py 1000次,但一旦發生故障就會停止

四、其他

1、如果代碼裏已使用了repeat(count)裝飾器,那在命令行執行用例再加上–count=3時,只對無count裝飾器的重複3次。

2、repeat-scope

–repeat-scope類似於pytest fixture的scope參數,–repeat-scope也可以設置參數:session,module,class或者function(默認值)

function(默認)範圍針對每個用例重複執行,再執行下一個用例
class 以class爲用例集合單位,重複執行class裏面的用例,在執行下一個
module 以模塊爲單位,重複執行模塊裏面的用例,再執行下一個
session 重複整個測試會話,即所有收集的測試執行一次,然後所有這些測試再次執行等等
使用–repeat-scope=session重複執行整個會話用例

1)pytest test_cc.py -s --count=2 --repeat-scope=session

2)pytest test_cc.py -s --count=2 --repeat-scope=class

3)pytest test_cc.py -s --count=2 --repeat-scope=function

 4)pytest test_cc.py -s --count=2 --repeat-scope=module

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章