pytest之多程序執行測試用例(pytest-xdist)
阿新 • • 發佈:2021-07-06
背景:
我們日常的工作當中進行自動化測試編寫的測試用例會非常多,測試用例一個一個的執行所需要花費的時間會很長,你想象一下如果開發改動一塊程式碼,我們需要回歸一下,這時候執行一下自動化用例需要花費一小時或者好幾個小時的時間,這是我們無法容忍的。
為了解決這個問題,我們採用pytest的外掛pytest-xdist來進行多程序的併發執行測試用例,大大的縮短測試用例的執行時間,提高效率。
併發執行測試用例:
1.安裝pytest-xdist
pip install pytest-xdist
2.多程序併發執行測試用例
pytest test_add.py -n NUM # NUM表示併發的程序數
舉例:
專案結構如下:
程式碼參考:
# file_name: test_a.py import pytest import time def test_a_01(): print("----------------->>> test_a_01") time.sleep(1) assert 1 def test_a_02(): print("----------------->>> test_a_02") time.sleep(1) assert 1 def test_a_03(): print("----------------->>> test_a_03") time.sleep(1) assert 1 def test_a_04(): print("----------------->>> test_a_04") time.sleep(1) assert 1 if __name__ == '__main__': pytest.main(["-s", "test_a.py"])
# file_name: test_b.py import pytest import time deftest_b_01(): print("----------------->>> test_b_01") time.sleep(1) assert 1 def test_b_02(): print("----------------->>> test_b_02") time.sleep(1) assert 1 def test_b_03(): print("----------------->>> test_b_03") time.sleep(1) assert 1 def test_b_04(): print("----------------->>> test_b_04") time.sleep(1) assert 1 if __name__ == '__main__': pytest.main(["-s", "test_b.py"])
正常執行以上程式碼,耗時:8.09s
設定並行執行數量為4,耗時:3.48s,大大的縮短了測試用例的執行時間。
去期待陌生,去擁抱驚喜。