F2etest環境搭建

F2etest環境搭建

前言:項目須要作瀏覽器的兼容性測試,不管是經過安裝大量的瀏覽器,或者使用IE Tester等模擬軟件,都會有各自的缺陷。如:低效率、總體資源消耗高。剛好在一個測試交流羣中,看到有人提出該問題,獲得利用F2etest這個答案。遂開始瞭解F2etest,並進行F2etest的環境搭建。當你看完文章後,你應該瞭解什麼是F2etest?如何進行F2etest-web部署?如何進行瀏覽器雲部署?如何進行多瀏覽器部署?html

什麼是F2etest?

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

  1. 10 倍以上硬件利用率,下降企業運營成本;
  2. 提供很是棒的桌面用戶體驗,極大的提升測試效率;
  3. 瀏覽器雲提供真實瀏覽器環境,還原真實測試場景;
  4. WebDriver 雲快速穩定的支撐自動化測試腳本運行。

如何進行F2etest-web部署?

搭建F2etest環境,須要準備CentOS 7虛擬機或物理機。本文以虛擬機搭建方式爲例,進行描述。git

部署環境

操做系統 IP 內存 軟件
本機:Windows 10 專業版 192.168.X.1 16G VMware® Workstation 15 Pro 15.0.2
虛擬機:CentOS Linux release 7.4.1708 (Core) 192.168.X.2 4G Docker 19.03.1,MySQL Ver 14.14 Distrib 5.6.43
虛擬機:Windows Server 2008 R2 Standard 192.168.X.3 2G ie8,Chrome 76.0.8809.100,Firefox 68.0.2,360瀏覽器 10.0.1977.0,360極速瀏覽器 11.0.2179.0
虛擬機:Windows Server 2008 R2 Standard 192.168.X.4 2G ie9,QQ瀏覽器 10.4.2,搜狗高速瀏覽器 8.5.10.31270
虛擬機:Windows Server 2008 R2 Standard 192.168.X.5 2G ie10

部署步驟

請先再本機上安裝VMware軟件,下載CentOS鏡像,啓動CentOS虛擬機,在CentOS機器上安裝最新版的Docker,如已安裝請忽略,安裝教程:www.yuque.com/grasilife/d…github

# 獲取 `f2etest-web` 鏡像
[root@localhost ~]# docker pull registry.cn-hangzhou.aliyuncs.com/f2etest/f2etest-web

# 啓動容器
# 映射本地端口,這裏已 80 爲例,請確保此端口未被佔用
# 若是 80 被佔用,請修改成其它可用端口,例如 8080 端口:-p 8080:80
[root@localhost ~]# docker run -dit --privileged -p 80:80 --name f2etest registry.cn-hangzhou.aliyuncs.com/f2etest/f2etest-web

# 進入容器
[root@localhost ~]# docker exec -it f2etest bash

# 初始化數據庫表並啓動 Web
[root@e40349b09133 f2etest-web]# source setup.sh
複製代碼

修改配置

# 修改site.json

[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/site.json
# 第11行 修改 guacamoleApi 字段,IP 地址改成 CentOS 機器 IP 地址,端口號改成運行容器時映射的本地端口號,80 端口可忽略。建議使用 80 端口。
"guacamoleApi": "http://192.168.X.2:80/guacamole/client.xhtml"
 # 修改server.json
[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/server.json
# 第4行 修改ip地址爲Windows Server 的 IP 地址
"ip": "192.168.X.3",
 # 重啓 web
[root@e40349b09133 f2etest-web]# pm2 restart f2etest-web
 # 修改noauth-config.xml
[root@e40349b09133 f2etest-web]# vi /etc/guacamole/noauth-config.xml
# 第3行 value的值爲Windows Server 的 IP 地址
 <param name="hostname" value="192.168.X.3" />
 
 # 重啓 tomcat8
service tomcat8 restart

複製代碼

如何進行瀏覽器雲部署?

在 Windows Server上搭建 IE8 瀏覽器與 hostShare 應用供 F2etest-web 使用。web

部署步驟:

請先再本機上安裝VMware軟件,下載Windows Server 2008 R2 Standard鏡像,啓動Windows Server 2008 R2 Standard虛擬機.chrome

取消登錄密碼複雜性 - F2etest 的登錄

運行中輸入 gpedit.msc 打開本地策略編輯器docker

1-0

修改 帳戶策略 - 密碼策略shell

1-1.jpg

禁用 IE ESC - 防止在瀏覽器操做時,按了 ESC 致使 IE 瀏覽器退出

進入服務器管理器數據庫

66

配置 IE ESCjson

65

安裝遠程桌面服務

服務器管理 - 角色 - 添加角色

3.jpg

角色服務,勾選遠程桌面會話主機,遠程桌面受權和遠程桌面 Web 訪問。

4.jpg

應用程序兼容性,下一步。

5.jpg

身份驗證方法,選擇不須要使用網絡級別身份驗證,下一步。

6.jpg

受權模式,選擇每用戶,下一步。

7.jpg

用戶組,按照以下面所示,添加 Authenticated User,下一步。

8.jpg

9.jpg

10.jpg

11.jpg

客戶端體驗,默認,下一步。

12.jpg

RD 受權配置,默認,下一步。

13.jpg

角色服務,按照下圖勾選,勾選應用程序開發和管理工具,下一步。

14.jpg

15.jpg

確認安裝,安裝完成後重啓機器。

16.jpg

17.jpg

18.jpg

配置遠程桌面服務

激活遠程桌面服務,管理工具 - 遠程桌面服務 - 遠程桌面受權管理器。

64

右鍵,激活服務器。

20.jpg

激活嚮導,下一步。

21.jpg

公司,姓,名,可填任意值。

22.jpg

不填,下一步。

23.jpg

確保「當即啓動許可證安裝嚮導」勾選,下一步。

24.jpg

下一步。

25.jpg

示例,無論,下一步。

26.jpg

協議號碼填入「6565792」,下一步。

27.jpg

選擇每用戶,下一步。

28.jpg

完成。

29.jpg

注:官方文檔裏的120天受權激活破解未進行。

部署 IIS 服務 - 提供新建用戶服務腳本

先將f2etest-master.zip 下載完成,並傳到Windows虛擬機中,下載地址

IIS 服務器主要是用來給 F2etest-web 調用建立 Windows 用戶功能。

拷貝 F2etest 源代碼裏的 f2etest-client\f2etest-browsers\www 下的 setuser 文件到C:\inetpub\wwwroot 下 並修改 apikey 爲前面配置的 key

30.jpg

編輯 setuser 文件,修改 apiKey

31.jpg

進入 IIS 管理器。

63

選擇身份驗證。

62

右鍵匿名身份驗證,編輯。

34.jpg

選擇設置。

35.jpg

填入 administrator 的帳戶與密碼。

36.jpg

訪問 http://127.0.0.1/setuser.asp?username=test&password=hello123&key=f2etest,若是看到頁面輸出 ok,表明 IIS服務設置成功。

image.png

配置應用程序 - IE8 瀏覽器與 hostShare 應用

複製f2etest-client\f2etest-browsers\curl 中的全部文件到 c:\windows 下面。

38.jpg

f2etest-client\f2etest-browsers 下的 app 目錄複製到 C 盤根目錄,並重命名強制代理.batie8.bat禁用代理.bathostsshare.bat

39.jpg

而後修改兩個 bat 中的 f2etestDomain 爲 f2etest-web 的訪問地址,其中 ie8.bat 中的 appid 請修改成 ie8 和f2etest-web 的 app.js 中配置的 id 保持一致。

62

61

把源碼中的 hostsShare-client 下的 build 文件夾修改成 hostsShare 並拷貝到 C 盤根目錄。

41.jpg

管理工具 - 遠程桌面服務 - RemoteApp 管理器

60

按照下圖順序添加

59

點擊 ie8.bat,選擇屬性,選擇容許任何命令行參數。

58

如何進行多瀏覽器部署?

若你須要測試不一樣版本的IE 瀏覽器,那麼須要進行部署一樣數量的Windows服務器(由於在一臺 Windows 服務器上只能安裝一個 IE系瀏覽器)。若測試其它瀏覽器,則只需修改 app.json 文件和進行配置 RemoteApp 應用程序。

新增服務器

每新增一臺 Windows 服務器,除了完成 Windows 上的瀏覽器雲配置外,還須要在 f2etest-web 上完成其對應的配置,這樣才能實現點擊站點上的圖標來打開對應服務器上的瀏覽器。例如:咱們已配置了一臺 IE8 的服務器,如今新增一臺 IE9 的服務器。

Windows配置

遠程鏈接到目標 Windows 服務器,按照如何進行瀏覽器雲部署,完成基本環境的配置。能夠不用部署 hostsShare 應用程序。

IE 系列瀏覽器

# 容器內,修改server.json
[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/server.json
# 修改ip地址爲Windows Server 的 IP 地址
[
    {
        "id": "f2etest-ie8",
        "ip": "192.168.X.3",
        "remoteApp": true
    },                                                                      
    {                                                                       
        "id": "f2etest-ie9",                                                
        "ip": "192.168.X.4",                                              
        "remoteApp": true                                                   
    },                                                                      
    {                                                                       
        "id": "f2etest-ie10",                                               
        "ip": "192.168.X.5",                                              
        "remoteApp": true
    }
]

# 修改app.json
[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/app.json

[
  {
    "id": "hostsshare",
    "name": "hosts",
    "server": "f2etest-ie8",
    "program": "c:\\app\\hostsshare.bat"
  },
  {
    "id": "ie8",
    "name": "IE 8",
    "server": "f2etest-ie8",
    "program": "c:\\app\\ie8.bat"
  },
  {
    "id": "ie9",
    "name": "IE 9",
    "shortname": "UC",
    "server": "f2etest-ie9",
    "program": "c:\\app\\ie9.bat"
  },
  {
    "id": "ie10",
    "name": "IE 10",
    "server": "f2etest-ie10",
    "program": "c:\\app\\ie10.bat"
  },
  {
    "id": "chrome",
    "name": "Chrome",
    "server": "f2etest-ie8",
    "program": "c:\\app\\chrome.bat"
  },
  {
    "id": "firefox",
    "name": "Firefox",
    "server": "f2etest-ie8",
    "program": "c:\\app\\firefox.bat"
  },
  {
    "id": "360se",
    "name": "360瀏覽器",
    "shortname": "360",
    "server": "f2etest-ie8",
    "program": "c:\\app\\360se.bat"
  },
  {
    "id": "qqbrowser",
    "name": "QQ瀏覽器",
    "shortname": "QQ",
    "server": "f2etest-ie9",
    "program": "c:\\app\\qqbrowser.bat"
  },
  {
    "id": "sogou",
    "name": "搜狗瀏覽器",
    "shortname": "搜狗",
    "server": "f2etest-ie9",
    "program": "c:\\app\\sogou.bat"
  },
  {
    "id": "360chrome",
    "name": "360極速瀏覽器",
    "shortname": "360極速",
    "server": "f2etest-ie8",
    "program": "c:\\app\\360chrome.bat"
  }
]

# 修改noauth-config.xml
[root@e40349b09133 f2etest-web]# vi /etc/guacamole/noauth-config.xml
# value的值均修改成Windows Server 的 IP 地址
 <configs>
    <config name="f2etest-ie8" protocol="rdp">
        <param name="hostname" value="192.168.X.3" />
        <param name="port" value="3389" />
        <param name="enable-drive" value="true" />
        <param name="drive-path" value="/home/guacdshare" />
    </config>
    <config name="f2etest-ie9" protocol="rdp">
        <param name="hostname" value="192.168.X.4" />
        <param name="port" value="3389" />
        <param name="enable-drive" value="true" />
        <param name="drive-path" value="/home/guacdshare" />
    </config>
    <config name="f2etest-ie10" protocol="rdp">
        <param name="hostname" value="192.168.X.5" />
        <param name="port" value="3389" />
        <param name="enable-drive" value="true" />
        <param name="drive-path" value="/home/guacdshare" />
    </config>
</configs>

# 重啓 web
[root@e40349b09133 f2etest-web]# pm2 restart f2etest-web

# 重啓 tomcat8
service tomcat8 restart
複製代碼

同步用戶信息

注意:f2etestDomain 爲 f2etest-web 站點的訪問地址。

調用 f2etest-web 的同步全部用戶接口,本機瀏覽器訪問 http://{f2etestDomain}/syncAllRemoteUsers

其它瀏覽器

其餘瀏覽器主要包括:Chrome 瀏覽器,Firefox 瀏覽器,Opera 瀏覽器,QQ 瀏覽器,UC 瀏覽器,遨遊瀏覽器,搜狗瀏覽器,2345 瀏覽器,獵豹瀏覽器,360 安全瀏覽器,360 極速瀏覽器。

因爲這些瀏覽器的安裝步驟基本一致,故下文進行統一介紹其安裝部署流程。

  • 下載對應的安裝包,進行安裝,安裝時選擇自定義安裝,不要將程序安裝到 Administrator 帳戶的路徑下,能夠安裝到 Program Files 或者 C 盤根目錄,有資源的狀況下能夠安裝到其餘盤符(如:D 盤)。

  • 配置 RemoteApp 應用程序。部分批處理程序能夠在 GitHub 源碼 f2etest/f2etest-client/f2etest-browsers/app/特殊應用 中拷貝。

目前已知特殊瀏覽器處理方式:

  • 360se、360chrome 需安裝到其餘盤符,而且因爲會出現斷連的狀況,需在對應的批處理文件中加入下面這行:
mshta vbscript:msgbox("360安全瀏覽器,離開請點擊肯定。",0,"舒適提示")(window.close)
複製代碼
  • 獵豹瀏覽器須要裝到其餘盤符。

小結

雖然搭建過程當中遇到許多問題,可是在雙龍的幫助下最終搭建成功。實現了多瀏覽器兼容測試的目的,十分感謝他。此外如下官方文檔也寫的很好,爲做者點贊。

[1] F2etest-web 部署

[2] 瀏覽器雲部署

[3] 多瀏覽器部署

相關文章
相關標籤/搜索