Apr 07 2021
Selenium Grid 4 體驗
最近在處理系統交接並且升級相關的系統發現了Selenium Grid出了第四版現正Beta時讓我躍躍欲試, 以前Selenium Grid 3.x版本的時候UI說真的不怎麼樣,做了Selenium Grid 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花了一下功夫