1. 程式人生 > >UI自動化選型-技術選型和程式碼規範與常用設計模式

UI自動化選型-技術選型和程式碼規範與常用設計模式

技術選型

 

瀏覽器驅動框架: selenide。 這是一個基於web driver的開源框架, 是一群老外在github上開源的基於PC瀏覽器進行自動化的測試框架。 文件:

http://selenide.org/documentation.html

https://testerhome.com/topics/5682

report框架:allure。 這是一個開源的測試report框架,支援多個語言的多個單元測試框架。可以形成特別友好的測試報告。 文件:

https://github.com/allure-framework/allure1/wiki

https://testerhome.com/topics/5738

testng: 基於java的單元測試框架, 與Junit並駕齊驅。

 

docker-selenium:selenium官方製作的可執行映象,分為grid hub映象和grid node映象。 很方便的提供分散式執行UI自動化測試的解決方案。 

https://github.com/SeleniumHQ/docker-selenium

kubernetes:docker的容器叢集管理框架。 通過它可以讓grid node分佈在不同的節點上,分擔壓力。

https://kubernetes.cn/

 

分散式UI自動化說明

grid 是selenium官方團隊釋出的分散式UI自動化解決方案。 採取master-worker的設計原則。主要有以下兩個模組:

  1. grid hub 作為master節點不負責任何測試任務,只負責排程測試請求到適合的grid node節點並提供介面供grid node節點進行註冊。  
  2. grid node作為真正的執行測試任務的worker節點,在啟動時到grid hub上進行註冊並週期性重新整理自身狀態。 接收grid hub的測試請求,執行成功後將測試結果返回給grid hub。 每個grid node有自己的容量, 一旦node滿負荷,grid hub將不再把測試請求排程給node節點。

下面是架構圖。

  1. 測試人員在jenkins上配置一定的測試策略。 或手動或週期性執行UI自動化任務
  2. 在k8s中註冊的jenkins的slave節點會接收到jenkins的測試請求,然後從git中下載測試程式碼執行測試,講所有測試請求傳送給grid hub
  3. 部署再k8s中的grid hub接收到測試任務後,按排程策略將任務分發給grid node節點
  4. 同樣部署再k8s中的多個node,在接收到測試請求後,在容器中啟動瀏覽器,執行測試任務並回報測試結果

程式碼規範與常用設計模式

https://testerhome.com/topics/15540

https://testerhome.com/topics/15768

https://testerhome.com/topics/16042