遠程設備管理opendx平台搭建-server,agent以及front實際搭建

  本系列文章講述的是一個系列的第二部分,最終可以搭建一整套設備遠程管理平台,與stf不同的是,opendx搭建較為簡單,而且由於底層是appium來支援的,所以,較容易支援ios,也容易支援更高版本的Android機型,官方操作說明//jiangyitao.gitee.io/opendx/guide/deploy.html,可以自行閱讀,上一篇為//www.cnblogs.com/xuezhezlr/p/15431265.html

  待環境變數都搞好之後,我們要開始下載opendx的程式碼了,他是使用git來管理的,其框架圖如圖所示,官方搭建文檔://jiangyitao.gitee.io/opendx/guide/deploy.html

 

 總的來看,該框架分為3部分,agent部署了appium並連接手機,收集數據截圖和實時操作,上報數據給server,server接受數據並處理數據為一些對外介面,並有一個前端服務調用server展示相關數據,故本文也依次講解,並最終可以在本地搭建一整套opendx平台框架,可以看到頁面調試等資訊。筆者在編輯後,根據過來人的經驗,建議讀者們按照server-agent-front的順序按照搭建整體框架

1,server

git地址://github.com/opendx/server

server其本身是一個java工程,使用一般的編輯工具就可以編譯完成,比較需要注意的點如下

a,資料庫

 

 如圖所示,可以自己在本地搭建一套,也可以這裡寫公司的測試平台地址,自己建立一個新的資料庫即可,程式碼運行過程中會運行剩下的部分

上方是啟動的埠號,啟動後可以在這裡啟動服務,這裡不在贅述

2,agent

agent與server相比啟動算是有一些複雜,git地址://github.com/opendx/agent

a,報錯如下:

java: 無法訪問org.eclipse.jface.text.BadLocationException
錯誤的類文件: /Users/admin/.m2/repository/org/eclipse/platform/org.eclipse.text/3.12.0/org.eclipse.text-3.12.0.jar!/org/eclipse/jface/text/BadLocationException.class
類文件具有錯誤的版本 55.0, 應為 52.0
請刪除該文件或確保該文件位於正確的類路徑子目錄中。

這個問題如下圖所示修改

 需要注意的是,上述修改是在損害原有功能的基礎上完成的,這塊是test的運行程式碼部分

本身在平台搭建後,除了反顯手機螢幕和元素定位等功能外,還可以利用平台的socker鏈接操縱手機,這裡會自動生成一套testng程式碼並執行,上述方式可能會有問題,如果有問題的話建議換一種方式(筆者也是在碰壁後才意識到的)

去qq下載3個包老老實實安裝吧,不要改了

b,這裡也要依據server來配置agent的相關參數,使得agent可以正常調用到server

 

 

c,調試

一定要記得,是在cd進入agent所在目錄後,在進行java -jar agent.jar的命令,因為agent本身有些參數是與相對路徑有關係的,所以需要如此

在上一個章節,本地配置了環境變數,使得adb命令可以順利執行,在連接手機可以adb devices檢測到手機設備並啟動了agent後,應該可以順利註冊手機

 

 關於啟動agent的命令,需要注意這幾個問題,添加以下幾個參數

–ip=xxxx:此參數,如果不聲明,則默認為127.0.0.1,如果是本地調試,是沒有問題的,如果前端與agent在不同機器上,則需要特殊聲明,使得agent傳遞的參數為本身的ip,在後續聯調的過程中才不會出現問題

–server=//192.168.1.2:8887:此參數,是指向server的地址和埠,如果沒有聲明,也默認是127.0.0.1:8887,一般的如果server與agent不啟動在同一台機器上,也可以不聲明

–android=true,是否啟用android功能,默認false,如果不聲明,則無法實時掃描Android機器的接入,如果設備管理平台上需要連接Android手機,建議開啟

–ios=true,同上

最終的命令:java -jar target/agent-0.1.0.jar –ip=192.168.1.8 –server=//192.168.1.2:8887 –android=true –ios=true

3,front

前端程式碼也是正常的vue程式碼,需要cnpm install後執行即可運行,這裡直接展示效果

 

 運行成功後可以正常展示如上圖所示即可,此時系統中登錄用戶名密碼一般是admin/admin,一般的只有一個賬戶

4,整體聯調

對於系統來說,如果agent,server和前端都是本地,則不需要進行較大調整

但是一般的,都需要進行調整

agent要求一定能直接連接手機,由於連接ios手機的要求,盡量是mac筆記型電腦,也可以windows筆記型電腦,要求是本地

server是可以部署在linux機器上的,也可以考慮理解程式碼後,融入其他的後端程式碼中,提供服務即可

front是較為複雜的前端,其中本身框架是vue,可以考慮融入其他框架中也可以考慮直接啟動服務,可以部署在linux機器上

 

 上圖所示,是front程式碼的配置部分,需要通過這段程式碼來配置服務端server的地址

上上圖所示頁面則是前端的效果,其中下圖所示程式碼

 

 這部分程式碼是真實的手機遠程操控的websocket連接,與agent服務的ip和埠一定要一致,這裡的ip和埠都是參數化的,都是從agent獲取到的,如果agent啟動的時候有設置,則會取到設置的值,如果沒有則會取到127.0.0.1,這也是agent要設置ip的原因

本系統是agent註冊手機-server反顯手機-front展示,並通過頁面js通過底層websocket連接,展示和操作手機螢幕的過程,具體搭建後的效果可以在後文中進行講解