1. 程式人生 > 其它 >分散式測試外掛之pytest-xdist

分散式測試外掛之pytest-xdist

  • 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,確保同一個組的測試用例在同一個程序中執行