background image

Apr 07 2021

Selenium Grid 4 體驗

最近在處理系統交接並且升級相關的系統發現了Selenium Grid出了第四版現正Beta時讓我躍躍欲試, 以前Selenium Grid 3.x版本的時候UI說真的不怎麼樣,做了Selenium Grid 4的時候樣式跟整個畫面的設計全改了。 整個畫面看起來舒服了不少,但相關的東西也改了不少讓我一開始做測試的時候跌了不少次

selenium 4
selenium 4

Selenium 架構變更

Selenium Component文件中就給了一張架構圖, 跟過去只有HUB跟Node的架構有所差距,在整個部署與調整上擁有了更多彈性。你可以將HUB分散在多台的Server做部署, 或是你可以使用經典模式的HUB將這些分散的服務集中在HUB中。

新增的component有以下幾個,或者是你可以使用Hub來取代這些新的component

  • Router
  • Distributor
  • Session Map
  • New Session Queuer
  • Event Bus

Selenium Node Session的改變

在以前Selenium 3.x的時候,我們可以去使用MAX_SESSIONS指定該instance的Session數量,所以在自動化測試的機器叢集中我都直接給10個讓每一個node都具有10個session, 但這一次改版後即便你加了SE_NODE_MAX_SESSIONS的數量,但你的CPU數量不足時也無法產生更多的Session,新版本Node的Session數量取決於你設定的最大Session與CPU最小的那一個 在官方的github中這一段說明沒仔細看還真的很容易就給他忽略過去

Dynamic Grid的使用

在新版本的Selenium Grid支援了Dynamic Grid,可以在每一次測試的時候才產生相對應的目標瀏覽器,而不用預先建置好這些瀏覽器的session

在公司的Selenium的測試從集中,都採用docker的方式啟動這個對我來說可以減少在infrastructure的設定與管理

以下分享我的設定,在config.toml的部分讓docker-node可以使用host的docker花了一下功夫

參考連結

Selenium document

Max sessions

文章標籤