主要觀點:使用pabot並行運行robotframework,可以解決:robotframework執行案例時間長的問題
解決執行案例時間長的方案:
目的:
縮短案例的運行時間
兩種方法:
- 將大的項目分成幾個子模塊,測試案例也是分為幾個子模塊,這樣進行分布式測試
- 在一台機子上開啟多個進程進行測試
解決方案:
使用pabot類庫:
pabot 通過開啟多個進程以Suite為單位並行運行robotframework測試案例,並且對於進程之間資源共享的問題也有鎖機制。
安裝:
pip install robotframework-pabot
pabot命令行參數:
- --processes [NUMBER OF PROCESSES] ——> 並行的線程數(最大是機器CPU的數目)
- --pabotlib啟動PabotLib遠程服務器。這支持在並行測試執行之間進行鎖定和資源分配。
- --pabotlibhost [HOSTNAME] ——> 遠程服務器的主機名(默認是127.0.0.1)
- --pabotlibport [PORT] ——> PabotLib遠程服務器端口號(默認為8270)
- --resourcefile [FILEPATH]可以包含用於分配資源的共享變量的文件的指示符。這需要與pabotlib選項一起使用。
實際測試:
這里新建一個pabotdemo文件夾,下面包含有3個測試用例文件(即:3個Suite),每個文件中包含有3個Test(即:3個測試用例)。每個測試用例都是執行相同的步驟sleep 10s。如果在RF中運行9個Test,每個Test耗時10s,那就需要90s。
下圖為在RF中運行的測試結果:


使用pabot開啟2個進程:pabot --processes 2 PabotDemo,耗時:63s

使用pabot開啟3個進程:pabot --processes 2 PabotDemo,耗時:32s


上面簡單測試,沒有進程間的資源共享,所以沒加鎖,具體使用可以參考:https://github.com/mkorpela/pabot
注意:Pabot並行運行是以Suite為單位運行的,因為項目的案例結構有的Suite中案例個數100多個,有的只有幾個,這樣就導致案例少的Suite幾個可能已經運行完了,案例多的Suite可能才剛開始,並不能發揮並行運行的最大效果,分布不均,所以需要對案例進行調整,將案例多的Suite進行拆分,這樣也能開啟多個進程。
