F2etest是一個面向前端、測試、產品等崗位的多瀏覽器兼容性測試整體解決方案

ygp8 9年前發布 | 82K 次閱讀 F2etest 測試工具

F2etest

imgs/logo.png

F2etest是一個面向前端、測試、產品等崗位的多瀏覽器兼容性測試整體解決方案。

在之前,我們一般有三種解決方案:

  1. 本機安裝大量的虛擬機,一個瀏覽器一個虛擬機,優點:真實,缺點:消耗硬盤資源,消耗CPU資源,打開慢,無法同時打開多個虛擬機
  2. 使用IeTester等模擬軟件,優點:體積小,資源消耗小,缺點:不真實,很多特性不能代表真實瀏覽器
  3. 公用機器提供多種瀏覽器,優點:不需要本地安裝,不消耗本機資源,缺點:資源利用率低,整體資源消耗非常恐怖

現在,有了F2etest,一臺普通的4核CPU的服務器,我們就可以提供給20人以上同時使用。

在這之前我們需要20臺機器,相比之下,至少10倍的硬件利用率提升。

相比之前的方案,我們有以下優勢:

  1. 10倍硬件利用率,降低企業運營成本
  2. 非常棒的用戶體驗,極大的提高測試效率
  3. 真實瀏覽器環境,還原真實測試場景

在這個解決方案中,我們使用了以下技術:

  1. Guacamole: 開源的HTML5遠程解決方案
  2. Windows Server: Server版Windows,最大化復用機器資源
  3. hostsShare: 跨瀏覽器,跨服務器的hosts共享

產品截圖

imgs/screenshot1.png

imgs/screenshot2.png

安全風險警示(非常重要)

由于本系統基于Windows Server體系搭建,因此系統的安全性完全取決于部署人的安全部署能力。

如果您希望部署本系統,請確保以下幾點:

  1. 嚴禁將本系統部署在公網環境,僅可部署在內網環境中使用,作為內部測試用途
  2. 請將Windows Server服務端升級到最新版本及補丁,以保證沒有出現安全漏洞
  3. 請將User用戶之間做到完全隔離,僅提供User用戶文件的訪問權限,別的任何權限請勿多余授權
  4. 請將f2etest-client僅設置為管理員擁有權限,防止API接口被惡意訪問

安裝

  1. 安裝nodejs

    安裝請訪問官網:https://nodejs.org/,如果已安裝好,請略過。

  2. 下載f2etest代碼

    git clone https://github.com/alibaba/f2etest.git

    clone后,會發現以下幾個目錄:

    1. f2etest-guacamole: 這是我們定制過的開源版本,方便f2etest進行調用
    2. f2etest-web: f2etest的WEB站點,用來提供f2etest服務
    3. f2etest-client: f2etest的執行機客戶端站點,主要提供API給f2etest-web使用
    4. hostsshare-server: 實現跨瀏覽器跨系統的hosts服務器
    5. hostsShare-client: 安裝在f2etest遠程環境中的客戶端,用來修改hostsShare上的hosts綁定

    下面會分別針對以上5個組件,會有針對性的安裝教程。

    我們建議將1,2,4組件安裝在同一臺Linux服務器上,建議使用CentOs系統。

  3. 安裝f2etest-guacamole

    f2etest-guacamole是定制版本的guacamole,安裝方法請查看:Install Guacamole

  4. 安裝hostsShare-server

    hostsShare是為了實現跨瀏覽器的hosts共享,一次修改,所有瀏覽器同時生效。

    由于我們使用的是Windows Server操作系統,并且基于多用戶實現的機器資源復用,存在一個嚴重的缺陷。

    那就是hosts是系統級共享的,任何一個用戶修改hosts文件,都會影響所有別的用戶。

    因此hostsShare正是為了解決這個問題而開發,同時也讓hosts實現了跨瀏覽器跨服務器成為現實。

    安裝方法:

    cd hostsshare-server
    npm install
    node app

    啟動成功后,會發現shostsShare默認工作在:4000端口號

    小建議:

    1. 建議使用pm2或forever等組件實現系統開機自動運行。
  5. 安裝mysql

    安裝mysql: https://www.mysql.com/,如果已安裝好,請略過安裝步驟。

    初始化表結構:f2etest-web/f2etest.sql,建議表名:f2etest

  6. 配置f2etest-web

    初始化f2etest-web

    cd f2etest-web
    npm install

    修改conf/site.json:

    1. port: 站點監聽端口號
    2. name: 站點名稱,修改為自己站點名稱
    3. about: 站點介紹,顯示在網頁title后面,修改為自己的站點介紹
    4. icon: 站點icon,默認不需要修改
    5. dbHost: 數據庫連接信息,修改為mysql服務器IP地址
    6. dbUser: 同上
    7. dbPass: 同上
    8. dbTable: 同上
    9. clientApiKey: f2etest遠程桌面客戶端的ApiKey,正確的ApiKey才能訪問遠程的API,用來創建當前用戶的賬號,請更改為隨機值,并保持和f2etest-client中的值一致
    10. guacamoleApi: guacamole的API,請修改為上面第3步安裝完成的API
    11. footer: 根據需要修改
    12. statNav: 如果需要自行擴展統計頁面,根據需要修改

    修改conf/server.json:

    這里的id必需要與f2etest-guacamole中的名字保持一致

    2003系統不支持remoteApp,2008以上Server系統支持

    修改conf/app.json:

    這里的server必需為server.json中已配置的id。program為可選參數,如果不填則直接連接桌面。

    修改sso.js:

    由于f2etest系統要求必需是登錄用戶才能訪問,因此必需要對接SSO系統才能工作。

    請參考現有的sso.js文件進行修改,對接到您公司內部SSO系統。

    啟動f2etest-web服務:

    node dispatch.js

    啟動成功后,可以發現WEB服務默認工作在:3000端口號

    小建議:

    1. 為了方便用戶使用,建議安裝nginx等軟件做反向代理,將端口號隱藏掉。
    2. 建議使用pm2或forever等組件實現系統開機自動運行。
  7. 安裝windows server機群

    • 1號機:Server 2003: IE6
    • 2號機:Server 2003: IE7
    • 3號機:Server 2008: IE8
    • 4號機:Server 2008: IE9
    • 5號機:Server 2008: IE10
    • 6號機:Server 2008: IE11

    將來如果出現IE12,可以即時增加新的服務器,用來部署新瀏覽器或軟件。

    由于Server 2008可安裝的最低IE版本是8,因此IE6和IE7只能安裝在Server 2003系統中。

    安裝軟件及配置:

    1. 遠程桌面會話主機:授權模式請選擇按用戶,會話請選擇5分鐘自動結束,空閑會話不允許超過6小時,顏色限制最大24位色
    2. 遠程桌面授權:必需要進行正確激活并安裝授權,安裝時請選擇企業授權,并按用戶授權
    3. IIS:用來部署f2etest-client,由于我們的腳本使用asp編寫,因此請安裝asp相關支持組件
    4. 設置當前主機每天凌晨自動重啟:防止開機久了,系統出現不穩定
    5. 用戶組配置:請將Authenticated Users添加到Remote Desktop Users,允許普通用戶可以登錄遠程
    6. 安裝curl: 將curl的路徑添加到PATH路徑中,以供APP快捷方式調用
    7. 配置Remote App:如果是2008操作系統,需要將被遠程的程序添加到Remote App,否則無法遠程,添加快捷方式時請選擇:允許任何命令行參數
    8. 安裝周邊軟件:輸入法,Flash等

    提示及注意事項:

    1. chrome由于和遠程桌面有點小沖突,必需安裝在2003操作系統中
    2. 使用頻率比較低的瀏覽器,建議硬件配置可以適當降低
    3. 2008如果默認安裝的是IE10瀏覽器,可以從安裝補丁上卸載,從而降級到IE8
    4. 建議在任務計劃程序中添加每周磁盤碎片整理,以保持最高工作性能

    IE瀏覽器安全級別低解決方案:

    1. 以桌面模式連接一個User用戶
    2. 按照需要自由配置IE
    3. 打開regedit,導出HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\為c:\ie.reg
    4. 切換為administrator用戶
    5. 用文本軟件打開c:\ie.reg,替換HKEY_CURRENT_USER為HKEY_Users\Default
    6. 打開regedit,注冊表編輯器中選擇節點:HKEY_USERS,文件菜單->加載配置單元,選擇C:\Users\Default\NTUser.dat,項名稱輸入:Default
    7. 雙擊c:\ie.reg導入注冊表
    8. 在注冊表編輯器中選擇剛才加載的配置單元:Default,文件菜單->卸載配置單元,并確認上載

    如何在每臺服務器全局添加可信的根證書:

    1. 命令行打開mmc
    2. 菜單->添加/刪除管理單元, 并選擇:證書
    3. 下一步選擇:計算機帳戶,再點擊下一步
    4. 在受信任的根證書頒發機構的證書欄目中添加CA即可
  8. 部署f2etest-client

    每臺Server服務器上都需要部署f2etest-client,實現以下兩個功能:

    1. 提供API給f2etest-web調用,用來初始化用戶賬號
    2. 遠程桌面連接時,需要打開指定的瀏覽器或軟件,并統計相應軟件的使用次數

    bat文件中需要修改兩處地方:

    1. 代理服務器pac地址:修改為hostsShare服務所在的Ip地址
    2. 最后一行修改為當前服務的部署域名,用來統計用戶的應用使用情況

    由于需要在當前系統中添加新用戶,f2etest-web站點必需設置為administrator權限,否則無法工作

    修改setuser.asp中的apiKey,保持和f2etest-web中一致。

    2008中必需要安裝Remote App,并且要在Remote App的設置中:允許任何命令行參數。

    重要安全說明:f2etest-client的www目錄必需要設置為僅管理員有權限,否則任何人都可以查看到setuser.asp中的apiKey,會有嚴重的安全風險

  9. 安裝hostsShare-client

    hostsShare-client基于node-webkit開發,默認已經提供了一個編譯版本在build目錄中,可以直接部署使用。

    建議選擇IE11所在機器上部署hostsShare-client。

    hostsShare-client的bat在f2etest-client中的app中:hostsshare.bat

使用

  1. WEB方式

    我們基于guacamole實現WEB方式的使用,沒有任何學習成本。

    詳細教程請參考f2etest-web中的幫助信息

  2. 桌面方式

    桌面方式基于TSWF Schema協議實現的分發,目前Windows和MAC下都有完美的協議實現軟件。

    Win7天然就支持遠程TSWF分發技術,Mac下僅需安裝Microsoft Remote Desktop,也可完美支持TSWF。

    無論是Win7還是Mac,目前都已經完美支持Remote APP技術,實現遠程應用本地化的完美體驗。

    相比較之下,由于桌面方式屬于直連,性能上會更加理想,因此我們建議用戶使用桌面方式。

項目主頁:http://www.baiduhome.net/lib/view/home/1441374941628

 本文由用戶 ygp8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!