F2etest是一個面向前端、測試、產品等崗位的多瀏覽器兼容性測試整體解決方案。
注:F2e test = Front to End Test = 前端測試
瀏覽器雲
在之前,多瀏覽器兼容性人肉測試,我們一般有三種解決方案:
- 本機安裝大量的虛擬機,一個瀏覽器一個虛擬機,優點:真實,缺點:消耗硬盤資源,消耗CPU資源,打開慢,無法同時打開多個虛擬機
- 使用IeTester等模擬軟件,優點:體積小,資源消耗小,缺點:不真實,很多特性不能代表真實瀏覽器
- 公用機器提供多種瀏覽器,優點:不需要本地安裝,不消耗本機資源,缺點:資源利用率低,整體資源消耗非常恐怖
現在,有了F2etest,一臺普通的4核CPU的服務器,我們就可以提供給20人以上同時使用。
在這之前我們需要20臺機器,相比之下,至少10倍的硬件利用率提升。
再加上我們平時做多瀏覽器測試時,並不是滿負荷工作。經常是測試一會,開發一會,或者是忙點別的事,因此理論併發能力至少可以再乘2,就是說一臺4核服務器,理論上跑40人同時在線,非常輕鬆。
但是在此之前,如果我們是單人虛擬機模式的話,當你沒在測試時,CPU、內存、硬盤,全部都是處在浪費狀態。
相比之前的方案,我們有以下優勢:
- 10倍以上硬件利用率,降低企業運營成本
- 非常棒的用戶體驗,極大的提高測試效率
- 真實瀏覽器環境,還原真實測試場景
在這個解決方案中,我們使用了以下技術:
- Guacamole: 開源的HTML5遠程解決方案
- Windows Server: Server版Windows,最大化複用機器資源
- hostsShare: 跨瀏覽器,跨服務器的hosts共享
WebDriver雲
WebDriver雲利用Windows Server多用戶的特性,將執行機的使用效率提升10倍以上。
之前1臺執行機只能跑1個任務,現在同樣的硬件配置,我們可以跑10個任務。
下面的截圖看上去有130個執行機節點,傳統情況下我們需要130臺服務器。
但是我們實際上才5臺!
相比較官方的Selenium Grid,我們有以下優勢:
- 10倍以上硬件利用率:傳統WebDriver 1臺執行機僅能跑1個Job,而我們一臺機器可以高併發跑N個Job,這個N取決於機器配置,理論上硬件利用率相當於傳統節點的10倍以上
- 支持獨立hosts綁定:每次申請節點時,可以指定不同的hosts綁定,保證同一臺機器上不同節點的Job不會相互干擾
- 所有節點支持遠程在線調試:利用Guacamole的在線遠程功能,當自動化出現問題時,我們能非常便利的對自動化進展進行即時監控和調試
UI Recorder
UI Recorder是一款幾乎零成本的整體自動化測試解決方案,一次自測等於多次測試,測一個瀏覽器等於測多個瀏覽器!
我們的目標:讓自測不要重複測!讓自動化變成零成本!讓自動化持續保障您的業務!
以下是本產品的特點:
- 自測 = 自動化測試:對於開發人員來講,自測是開發流程中缺一不可的過程,我們要實現的目標就是自測過程中即可同步的錄製出自動化腳本,實現真正的零成本自動化
- 無干擾錄製:所作操作均無需交互干擾,鼠標、鍵盤、alert彈框、文件上傳,完全按照正常自測流程操作即可(以下操作除外:懸停事件、斷言、變量)
- 本地生成腳本:錄製的腳本存儲在用戶本機,用戶可以自行在錄製的基礎上進行修改定製,更自由更開放
- 豐富的斷言:支持以下斷言類型,val、text、displayed、enabled、selected、attr、css、url、title、cookie、localStorage、sessionStorage
- 支持數據Mock:我們支持Faker變量功能,支持強大的數據Mock
- 支持公共用例: 用例之間允許相互引用,可以將某些公用的操作步驟錄製為公用用例,以進一步提升錄製效率
- 支持執行截圖:每次執行後,允許生成截圖日誌,以方便出問題時排查診斷
要了解詳細細節,可以查看我們的視頻教程:http://v.youku.com/v_show/id_XMTY4NTk5NjI4MA==.html
UI Recorder目前已經對F2etest進行了解偶,在非F2etest環境下也可以使用,只要是標準WebDriver協議就可以支持。
但是,我們更建議UI Recorder配合F2etest的WebDriver雲來使用,更低的執行機成本,更強大的調試功能。
具體如何配合使用,F2etest部署完成,打開F2etest-Web後,可以看到詳細使用說明。
倉庫地址: https://github.com/alibaba/uirecorder
Karma + F2etest
Karma是由Google開源的JS單元測試執行過程管理工具,這是一款異常強大並且高可擴展性的測試工具,擁有一個非常活躍且完善的生態圈。
Karma支持運行在任何WebDriver協議的瀏覽器上,因此結合F2etest提供的WebDriver雲,就可以批量快速的運行在大量的瀏覽器上,從而滿足單元測試的多瀏覽器測試需求。
具體如何配置,F2etest-Web中可以看到詳細的教程,並且我們提供了完整的配置文件下載。
成功案例
如果您使用了我們的解決方案,請聯繫我們添加在此處。
產品截圖
瀏覽器雲
Chrome插件:
Windows:
Mac:
WebDriver雲
Karma + F2etest
UI Recorder
UI Recorder請查看視頻教程:http://v.youku.com/v_show/id_XMTY4NTk5NjI4MA==.html
安全風險警示(非常重要)
由於本系統基於Windows Server體系搭建,因此係統的安全性完全取決於部署人的安全部署能力。
如果您希望部署本系統,請確保以下幾點:
- 嚴禁將本系統部署在公網環境,僅可部署在內網環境中使用,作為內部測試用途
- 請將Windows Server服務端升級到最新版本及補丁,以保證沒有出現安全漏洞
- 請將User用戶之間做到完全隔離,僅提供User用戶文件的訪問權限,別的任何權限請勿多餘授權
- 請將f2etest-client僅設置為管理員擁有權限,防止API接口被惡意訪問
安裝教程
https://www.yuque.com/artist/f2etest
感謝
- Guacamole: http://guac-dev.org/
- Nodejs: http://nodejs.org/
- async: https://github.com/caolan/async
- ejs: https://github.com/mde/ejs
- express: https://github.com/expressjs/express
- jwebdriver: https://github.com/yaniswang/jWebDriver
- mysql: https://github.com/felixge/node-mysql
- request: https://github.com/request/request