天天看點

基于MeterSphere實作多版本浏覽器相容性測試

作者:FIT2CLOUD飛緻雲

作為一款一站式的開源持續測試平台,MeterSphere涵蓋了測試跟蹤、接口測試、性能測試和UI測試等功能子產品。MeterSphere的UI測試子產品背景調試使用的是自帶的Selenium-Grid進行測試,而Selenium-Grid需要指定浏覽器的版本,如果需要實作不同版本浏覽器的相容性測試,基于MeterSphere隻需要部署安裝多版本浏覽器的Node,用于執行UI測試腳本即可。

現如今,市面上的浏覽器種類越來越多,這意味着所測試的站點需要在這些浏覽器上都能很好地工作。同時,主流浏覽器(例如IE、Firefox、Chrome、Opera、Safari等)版本更新愈加頻繁,終端使用者甚至不會感覺到這些浏覽器版本的更新。這讓浏覽器相容性測試的工作變得更加重要了,但也使得這種相容性測試變得十分耗時。

通過全覆寫的測試,可以明确地知道目标站點支援哪些浏覽器,而哪些會産生相容性的問題。最簡單的減少浏覽器相容性測試工作量的辦法就是,停止對老版本浏覽器的支援。這個政策對一些公司是适用的,但并不适用于所有公司。

停止對老版本浏覽器的支援,并不意味着目标系統在這些老版本上沒有Bug, 這僅僅是在表面忽略了老版本浏覽器上的潛在問題。MeterSphere平台的UI測試子產品,目前尚未支援同時對多浏覽器進行相容性測試,但是可以在此基礎上通過更靈活的方式進行測試。以下是以Chrome浏覽器為例,在MeterSphere平台實作多版本浏覽器UI相容性測試的具體操作步驟。

一、MeterSphere使用Selenium-Grid執行原理

MeterSphere平台使用的是開源Selenium-Grid元件,其執行流程如下:

基于MeterSphere實作多版本浏覽器相容性測試

■ 對外的入口對應的是Selenium Hub;

■ 具體執行任務的執行機,對應的是Selenium Node;

■ Node接到任務後配置設定給執行節點的過程,就是Selenium Hub将測試配置設定到Selenium Node執行的過程;

■ Node向Hub報備的過程,就是Selenium Node向Selenium Hub注冊的過程;

■ Selenium Hub用來管理各個Selenium Node的注冊資訊和狀态資訊,并且接收遠端用戶端代碼的測試調用請求,并把請求指令轉發給符合要求的Selenium Node執行;

■ Selenium-Grid包含了Selenium-Hub和多個Selenium-Node,是以需要額外安裝多個版本的Chrome浏覽器的Selenium-Node,才可以進行多版本浏覽器相容性測試。

二、擷取多版本的Chrome浏覽器Selenium-Node

檢視https://github.com/SeleniumHQ/docker-selenium/releases?page=1網頁上已經釋出的Release中的鏡像Tag。

Released versions資訊中包含了浏覽器的版本,複制需要測試浏覽器版本的鏡像Tag;

基于MeterSphere實作多版本浏覽器相容性測試

通過複制的Tag資訊,進入MeterSphere伺服器拉取鏡像。

基于MeterSphere實作多版本浏覽器相容性測試

三、啟動對應版本的Chrome浏覽器Selenium-Node

通過執行如下指令,啟動對應版本的Chrome浏覽器Selenium-Node(端口“5555”為容器外部端口,“chrome110”為容器名稱,用于區分不同版本的浏覽器);

#此為Node節點單獨運作,也可以加其他參數或者docker-compose的方式去啟動,具體指令自行百度
docker run -d -p 5555:4444 --name chrome110 --shm-size="2g" selenium/standalone-chrome:4.8.0-20230210           

執行結果如下:

基于MeterSphere實作多版本浏覽器相容性測試

四、MeterSphere配置個人資訊的UI測試賬号

在頁面右上角的“使用者名”處的下拉菜單中,點選“個人資訊”選項,進行個人相關資訊配置;

基于MeterSphere實作多版本浏覽器相容性測試

選擇“UI設定”頁籤,填寫UI賬号。

基于MeterSphere實作多版本浏覽器相容性測試

五、執行UI自動化場景

選擇UI自動化場景,點選“本地調試”按鈕;

基于MeterSphere實作多版本浏覽器相容性測試

檢視容器日志;

docker logs -f chrome110 --tail=200           

可以看到浏覽器版本為“110”,類型為“Chrome浏覽器”。

基于MeterSphere實作多版本浏覽器相容性測試

六、檢視執行結果

執行日志如下:

基于MeterSphere實作多版本浏覽器相容性測試

執行結果顯示完成:

基于MeterSphere實作多版本浏覽器相容性測試

七、總結

以上就是添加額外浏覽器進行測試的具體步驟,需要注意的事項包括:

■ 如果伺服器不能直接連接配接外網,則需要手動拉取鏡像之後,儲存成tar包再上傳到伺服器;

■ 如果不在“個人資訊”選項中進行相關資訊配置(“步驟三”中啟動的http://IP:Port),也可以在“系統設定”→ “系統參數設定”下修改Selenium-Docker位址,然後選擇“背景調試”選項;

■ 如果使用者在“個人資訊”選項中看不到“UI設定”頁籤,請聯系系統管理者進行授權;

■ 如果要部署多個版本的浏覽器,請注意控制容器外部端口是否沖突。如有沖突,請修改為空閑端口。

繼續閱讀