F2eTest和uirecorder自動化測試環境部署填坑記錄


坑1:嘗試部署的時候只在opennode.bat里面填寫了兩個瀏覽器,測試通過后再增加其他瀏覽器,頁面上一直不顯示。

填坑:需要清空數據庫里的`wd_browsers`和`wd_nodes`表,然后重啟2008,數據庫會重新加載新的節點信息。(此坑的解決方法在視頻教程里,無文字版)

 

 

坑2:遠程連接問題:在2008啟動之后,node暫未啟動前,f2etestweb頁面可以打開3個瀏覽器頁面。當webdriver雲上顯示node已經啟動之后,f2etestweb頁面只能可以打開1個瀏覽器頁面,再多就會報連接錯誤。如果此時再通過遠程桌面去連接2008,f2e上一個頁面也打不開了。

填坑:在運行中運行gpedit.msc,在組策略中對位於“計算機配置\策略\管理模板\Windows 組件\遠程桌面服務\遠程桌面會話主機\連接”中,限制連接數量中進行配置;改大一些或者改成999999即可。然后在cmd里輸入gpupdate更新一些策略。但據說這樣只能維持120天,之后再說吧!

 

坑3:uirecorder 初始化之后,出現JSON解析失敗!的錯誤!

 

 

 填坑:編輯config.json,添加以下認證參數的時候,記得在上一行的結尾處增加一個英文逗號!!!

 

 

 

 

坑5:國內npm節點非常慢,導致安裝依賴失敗,但是提醒又不明顯,導致問題排查難度大。

填坑:

幸運的是,國內有幾個鏡像站點可以供我們使用,本人在使用 http://www.cnpmjs.org/ 

速度非常快,鏡像站會實時更新,為我們節省了好多時間.如何給本機換源呢?

(1)通過 config 配置指向國內鏡像源

npm config set registry http://registry.cnpmjs.org //配置指向源 npm info express  //下載安裝第三方包

(2)通過 npm 命令指定下載源

npm --registry http://registry.cnpmjs.org info express

(3)在配置文件 ~/.npmrc 文件寫入源地址

nano ~/.npmrc   //打開配置文件 registry =https://registry.npm.taobao.org   //寫入配置文件

 

坑6:有時候npm會提示找不到..../package.json。

填坑:npm init -f 強制生成該文件,然后再安裝其他依賴

 

坑7:更新selenium-server版本后selenium無法啟動

填坑:需要修改如下路徑為新版本的文件名

 

 

 

坑8:如果系統啟動后在selenium  server里報如下端口被占用的錯誤

 

填坑:把服務器會話設置這里改成是就可以了。

 

 

 

坑8:更新了最新版本的uirecorder之后要增加chai依賴包

填坑:

#npm install chai --save-dev

uirecorder 2.0使用了jwebdriver 2.0,不需要generator,還需要更新一下jwebdriver

#npm install jwebdriver

 

坑9:app下的bat文件編碼不是ASI導致啟動瀏覽器時有亂碼即執行不成功,使得局域網代理添加失敗。

填坑:把bat文件另存為ANSI編碼之后解決問題,已建議f2etest作者更新相關文件的編碼格式,目前已上傳到GitHub。但是我目前通過該方式切換host還是不成功,報API錯誤。

 

坑10:在瀏覽器雲里打開360瀏覽器,進入界面后一會就自動注銷

填坑:在360se.bat文件的末尾加上:pause,親測解決!

 

坑11:瀏覽器安裝目錄不對導致無法使用uirecorder。

填坑:360瀏覽器要使用uirecorder進行調用,需要放在C:\360\360se6\Application\360se.exe目錄下,把原路徑下的360瀏覽器相關文件復制到該位置,自動化執行成功。

但是360chrome瀏覽器沒有成功。

firefox瀏覽器需要放在C:\Program Files\Mozilla Firefox\firefox.exe。不能放在C:\Program Files (x86)\Mozilla Firefox\firefox.exe。firefox還有個問題是不支持鼠標movemouse操作,所有相關操作都執行失敗,從網上查了一下是firefox本身的問題,firefox團隊已經在着手解決,然后到目前已經大半年了問題依然未解決。

 

坑12:本地代理模式切換host只適用於瀏覽器雲,在webdriver雲里並不生效.

解釋:因為webdriver雲並不通過browsers.bat去啟動瀏覽器。在進行自動化測試前,在項目目錄(CMD命令執行目錄)下新建一個hosts文件,然后啟動的測試就是在改hosts下進行的,測試完成自動恢復原hosts。

 

坑12:當webdriver使用多個服務器作為節點的時候,除了主服務器的桌面可在node列表里打開,其他服務器上的節點都無法連接,報錯信息如下,導致無法查看自動化的實時運行狀態。

錯誤信息:You do not have permission to access this connection. If you require access, please ask your system administrator to add you the list of allowed users, or check your system settings.

解決:查看tomcat日志,

Nov 21, 2016 5:59:29 PM org.slf4j.impl.JCLLoggerAdapter warn
WARNING: Connection id=172.16.85.12 not found.
Nov 21, 2016 5:59:29 PM org.slf4j.impl.JCLLoggerAdapter error
SEVERE: Error connecting WebSocket tunnel.

可以看到連接不上172.16.85.12,解決方式為在vim /etc/guacamole/noauth-config.xml里為172.16.85.12單獨新建一個服務器。原來這里已經有f2etest-ie9指向172.16.85.12,但是在節點處無法訪問桌面,添加紅框1中的內容之后,重啟tomcat,再次訪問該服務器上的節點都能成功。

 

坑13:firefox瀏覽器在uirecorder回放的時候一直失敗

填坑:下載 ESR 延長支持版 Firefox 火狐瀏覽器(45.5 簡體中文)

selenium使用2.53.1版本

http://selenium-release.storage.googleapis.com/index.html?path=2.53/

 完美解決!

 (更新:最新版本的geckodriver.exe是支持最新版本的firefox瀏覽器的,主要在下載geckodriver.exe的時候選擇對應的32或64位版本,要與下載的firefox版本對應。firefox官網默認提供的是32位版本,64位版本在下方)

 坑14:節點的selenium server界面提示Report to f2etest failed!

填坑:

 opennode.bat里面用IP和端口

因為大部分人部署f2etest是在內網進行的,使用的IP地址一般沒有經過DNS解析,在sever 2008上是訪問不到的,建議2008機器上使用host的位置都填寫IP和端口

 

坑15:今天在群里遇到一個朋友反饋hostsshare無法使用。

啟動代理的時候提示

非代理模式提示hostsshare api 連接失敗

 

 

填坑:查看hostsshare.bat里已添加端口,修改編碼為ASNI也不管用。

后直接請求IE瀏覽器INTERNET選項里的局域網設置中的代理連接

 

 

,得到如下錯誤信息:

原來是文件目錄權限錯誤,修改權限后hosts可以修改成功。

 

 

遺留問題1:f2etest頁面下Opera無法上網,所有頁面都顯示正在載入,包括設置頁面。但是桌面模式下完全沒問題。如果你有解決方案的話,希望能在下面回復和我交流一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM