當前位置:
首頁 > 最新 > 淺析移動雲測平台及實踐/胡蕊莉,蓋昕,孔曉斌

淺析移動雲測平台及實踐/胡蕊莉,蓋昕,孔曉斌

本文選自《交易技術前沿》第二十九期 (2017年12月)

隨著移動互聯網的迅猛發展,市面上的手機品種層出不窮,人們在享受個性化手機的同時,卻給移動應用開發商帶來了頭痛的機型適配問題,每年不得不花巨資投入在手機適配上。於是百度、騰訊、TestIn 等廠商抓住了這塊商機,通過提供多種機型的移動雲測平台獲得了大量的用戶。但由於測試價格昂貴,服務附加值較低等因素,對於擁有專業測試團隊和移動設備採購能力的軟體開發商來說更希望能夠自行搭建移動雲測平台,具備更高的靈活性和經濟性。

我們從 2017 年開始嘗試利用開源工具及二次開發的模式搭建移動雲測平台,並取得了一定的進展,實現設備共享、狀態監控、日誌導出、自動化測試等功能。

一、移動平台概述:

(一)移動雲測平台功能及架構:

移動雲測平台包括設備管理、監控、自動化管理,同時提供了對接第三方自動化測試工具介面如圖1.1,具體功能描述如下:

(1)設備管理:主要負責移動設備管控,包括賬戶管理,設備狀態維護等。

(2)設備監控: 包括設備的日常監控,日誌記錄,告警和異常自動處理和恢復等功能。

(3)自動化管理平台:該平台負責統一和規範 UI 自動化腳本。提供給用戶可進行自動化的 UI 交互界面,包括設置自動化的個性參數,上傳測試腳本以及簡單錄製等。

(4)對接第三方自動化測試工具介面:提供API介面,供第三方自動化工具調用,從而第三方自動化測試工具能夠通過該介面控制移動雲測平台上的設備。

圖 1:移動雲測平台架構圖

(二)移動雲測平台使用場景:

(1)APP兼容測試:可以滿足 APP 機型兼容測試, 目前移動雲測平台單機最大容量可以支持 160 台真機設備,通過分散式部署可以進行彈性擴展從而滿足更多用戶機型兼容性測試的要求。

圖 2:移動雲測平台真機操控界面

(2)遠程真機調試:

可支持研發人員遠程真機調試的需求,並獲取到日誌及相關信息,與直連真機設備沒有體驗差別,同時平台還支持設備監控,本機無須安裝額外軟體。

(3)自動化測試分散式批量執行:

可支持自動化用例在多台設備上同時部署及執行,並可從平台上獲取到設備日誌信息及整體測試報告。

(三)移動雲平台的優勢

1.可兼容第三方自動化測試工具

目前,百度 MTC、TestIn 等廠商的移動雲測平台,只是支持普通及深度兼容性測試,還無法支持第三方 UI 自動化測試工具。我們通過對雲平台介面進行了封裝可以較好的兼容第三方自動化測試工具。

2.環境搭建便捷

平台各個子模塊部署在 docker 容器中,維護方便,大大降低了遷移的成本。搭建一整套環境只需要 30 分鐘。

二、移動雲測平台的實施步驟

(一)移動雲測平台的搭建:

該移動雲測平台是基於 STF(Smartphone Test Farm)框架搭建,採用 B/S 架構。整套環境運行在 Ubuntu15.04(desktop-64bit)系統下, 伺服器設備通過 USB 分線器連接多台終端設備,連接後可在客戶端看到所連接設備的情況,框架支持設備熱插拔,單台主機最多可支持 160 台終端設備。

圖 3:真機實拍樣例圖

圖4:平台設備列表樣例圖

(二)UI 自動化測試的實現

(1)拓撲圖:

現階段已實現第三方自動化測試工具調用移動雲測平台,如圖 2.3 所示,移動雲測平台通過 USB 分線器連接各台真機設備,第三方自動化測試工具通過平台提供的API介面與移動雲測平台相連,單個真機設備同一時間只能被一個自動化測試工具佔用,測試結束後自動化測試工具可以選擇釋放設備或繼續佔用。移動雲測平台可通過監控,對於長期佔用且閑置的設備進行強制釋放。

圖 5:移動雲測平台拓撲圖

(2)API 介面二次封裝:

STF 本身提供了一套API介面供第三方工具調用,主要包括查詢設備、獲取設備、獲取用戶信息、設備分配、連接設備、釋放設備等。

所有的API介面都需要傳入一個 AccessToken,用來控制訪問許可權和身份標識。我們通過對原有的 STFAPI介面進行二次封裝,提供 HTTP 介面給第三方自動化測試工具調用,使之能夠更加便捷地與移動雲測平台上的設備進行交互。如設備清單介面,該介面可用於獲取閑置設備清單並佔用指定設備用於自動化測試批量部署及執行。被佔用的設備,在平台上的顯示狀態為 Automation,其他用戶在此期間不能申請佔用此設備。

此外,還對設備釋放、調度、管理等介面進行二次封裝,以便第三方工具可以更好與移動雲測平台進行交互。

(3)APP UI 自動化測試的實現:

目前採用 AppiumUI 自動化框架進行 APP UI 自動化測試,通過二次封裝介面與移動雲測平台上可用的設備進行交互,完成用例腳本安裝部署、測試執行、設備狀態信息、日誌獲取、測試報告自動生成等功能。在實現自動化設計前,需和研發人員約定 UI上 的元素標準和規範並建立相應的自動化設計規範,這樣有助於後期自動化實現過程中更便捷地定位控制項元素。可將元素存放在文件中管理並設置每個元素用於定位的屬性和值,測試數據通過另外文件進行單獨管理,以達到測試用例腳本和數據分離的目的。用例執行前先獲取並選擇移動雲測平台上的設備,與 Appium-server 建立連接,傳入所需的參數,包括設備地址,安裝包信息,activity 信息等。將腳本和數據傳送給 Appium-server,server 通過 adb 連接設備後執行操作。測試結束後,本地伺服器保存測試結果和日誌,並發送測試報告。平台採用測試框架 TestNG 來實現斷言,測試不通過則截圖保存,方便研發人員定位問題。

(4)自動化測試執行案例:

執行用例的一般步驟

我們以某證券 APPUI 自動化測試為例,採用該移動雲測平台從用例設計、設備選取、自動化腳本部署執行到獲取測試報告的整個過程如下:

第一步:用例編寫及設計:

a. 準備操作過程中需要使用的輸入數據及預期檢查值

b. 編寫測試腳本,包含操作和斷言,完成各個測試用例的集成。

第二步:測試用例的執行:

a. 調用介面獲取移動雲測平台上的可用設備,按需選擇設備(支持批量同時選擇)。

b. 被選中的設備同步進行應用安裝並啟動主 activity。

c. 載入測試用例,開始執行測試計劃,並斷言檢查,截圖留痕,記錄日誌。

第三步:測試數據的保存和設備的釋放

a. 生成測試報告

b. 調用介面,釋放佔用的設備。

第四步:發送測試報告到干係人郵箱

a. 整合本次自動化測試所有設備的執行數據和報告

b. 發送測試報告和相關數據到各干係人郵箱。

同步自動化的支持和自動化效率的提升

目前平台上的設備各自獨立,支持同一時間,多個設備執行不同的自動化任務(也可以相同)。單台自動化伺服器目前最多支持 30 台設備的並發進行。可以通過增加伺服器節點來實現擴展,設備的實際上限在 160 台。

單個設備完成一個普通證券 APP 的遍歷自動掛需要 1 個小時的時間。

我們可以通過拆分自動化任務到多個機器,同步運行,來達到縮短測試時間的目的。將自動化操作分為三個部分,分散到 3 台機器同步執行,則以上提到的證券APP的自動化遍歷時間將縮短為 1/3。

三.雲平台帶來的收益

1.資源的合理利用

將分散在各個部門的設備,統一整合管理,最大程度避免了設備閑置的情況,省去了設備調度的時間。提高了各部門的測試效率。

2. 提高 APP 功能測試的效率

平台的遠程操作提供截圖,一鍵安裝指定 app,操作日誌實時監控等功能。使研發和測試人員通過簡易步驟可以獲取大量可用信息,方便問題定位和重現,提高測試效率。

3.兼容性測試的友好支持

兼容性測試往往需要較多台設備,平台提供 API,給自動化測試的使用者提供批量設備,省去用戶獲取大量設備信息的時間,提高了效率。

四.移動雲測平台後續優化方向

目前我們的 APP UI 自動化測試實現是基於第三方測試工具,需要進一步開發並整合到移動雲測平台上來,提供友好的用戶交互界面。

平台後續會增加自動化遍歷工具的支持,用戶只要稍作配置,就可以實現任何 app 在雲平台的自動化遍歷測試。

平台上測試行為和結果進行統計分析,方便找到公共問題及遺漏點從而提高測試效率,同時平台還需要支持全鏈路監控及埋點設置方便用戶定位問題。

五.總結

移動雲測平台已成為移動 APP 測試的趨勢,測試人員可以很好地擺脫在真機手工操作繁瑣、效率低、設備無法復用等問題。可以將測試人員從低頭族中解救出來,為廠商節省大量的設備採購投入,相信移動雲測平台之路會越走越遠。

--------------------------上海證券交易所為證券公司、基金管理公司等市場參與者及相關行業機構提供交易技術支持與服務,包括日常交易技術支持、技術交流研討、市場調查反饋、證券信息技術知識庫、測試等服務。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 上交所技術服務 的精彩文章:

探索基於DPDK、Netflow的流量分析系統的容器化實現/黃成,黃亮,周浩波

TAG:上交所技術服務 |