分散式測試外掛之pytest-xdist
阿新 • • 發佈:2021-08-12
- pytest-xdist的出現就是為了讓自動化測試用例可以分散式執行,從而節省自動化測試時間
- pytest-xdist是屬於程序級別的併發
外掛的安裝
pip3 install pytest-xdist -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pytest-xdist通過一些獨特的測試執行模式擴充套件了pytest
- 測試執行並行化:如果有多個CPU或主機,則可以將它們用於組合的測試執行。 這樣可以加快開發速度或使用遠端計算機的特殊資源。
- --looponfail:在子程序中重複執行測試。 每次執行之後,pytest都會等到專案中的檔案更改後再執行之前失敗的測試。 重複此過程,直到所有測試通過,然後再次執行完整執行。
- 跨平臺覆蓋:您可以指定不同的Python解釋程式或不同的平臺,並在所有這些平臺上並行執行測試
pytest -s -n auto
知識點
- 可以看到,最終執行時間只需要6s,我的電腦是真6核,假12核
- -n auto:可以自動檢測到系統的CPU核數;從測試結果來看,檢測到的是邏輯處理器的數量,即假12核
- 使用auto等於利用了所有CPU來跑用例,此時CPU佔用率會特別高
-
pytest-xdist是可以和pytest-html很好的相結合
-
pytest -s -n auto --html=report.html --self-contained-html
-
pytest-xdist按照一定的順序執行
pytest-xdist預設是無序執行的,可以通過--dist引數來控制順序
--dist=loadscope
- 將按照同一個模組module下的函式和同一個測試類class下的方法來分組,然後將每個測試組發給可以執行的worker,確保同一個組的測試用例在同一個程序中執行
- 目前無法自定義分組,按類class分組優先於按模組module分組
--dist=loadfile
按照同一個檔名來分組,然後將每個測試組發給可以執行的worker,確保同一個組的測試用例在同一個程序中執行