使用pabot並行執行robotframework用例


主要觀點:使用pabot並行運行robotframework,可以解決:robotframework執行案例時間長的問題

 

解決執行案例時間長的方案:

目的:

縮短案例的運行時間

兩種方法:  

  1. 將大的項目分成幾個子模塊,測試案例也是分為幾個子模塊,這樣進行分布式測試
  2. 在一台機子上開啟多個進程進行測試

解決方案:

使用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進行拆分,這樣也能開啟多個進程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM