高可用、全整合、定製化,螞蟻金服自動化測試如何演進
小螞蟻說:
11月16日,在首屆安卓綠色聯盟開發者大會上,螞蟻金服工程技術部的開發工程師裴煬針對無線實驗叢集在螞蟻金服內部的發展與實踐做了總結分享。
關於自動化測試在具體業務場景下的應用,全行業已經沉澱了眾多實踐。而隨著 DevOps,自動化測試,手工測試的進一步融合,多種多樣的開發框架和設計理念頻繁地被創造出來。如何支撐業務快速迭代,如何面對各種客戶端動態化元件化的新技術方案,如何支援新的IOT、人機互動等業務場景的自動化測試,如何在業務邏輯下進行測試用例的深度思考與設計,已然成為焦點。
螞蟻金服又是如何在一款年活躍使用者 8.7 億的應用中通過無線實驗叢集來打造自動化測試架構,在這期間沉澱了哪些具體的優化方案?
1、高可用
高可用性是支撐業務的必要條件。
移動雲測平臺作為承託自動化測試必備的基礎服務設施,現在在各個廠家都有相應的實現方案。目前螞蟻內部雲測平臺的定位即需要具備高可用以及高效靈活的執行控制能力。只有具備足夠靈活、高效的高可用服務能力,才能真正有效地提高研發效率,降低研發成本。
1.1 裝置叢集
移動終端與傳統伺服器主要的區別之一,即裝置可靠性差距很大。通過一定程度的冗餘結合合理的排程策略,能夠保證高可用的服務SLA。螞蟻內部雲測服務對關鍵業務的SLA要求是需要達到4個9的標準,而這個目標是通過基於裝置任務雙向選擇的競爭機制配合實時異常檢測和動態任務切換的機制完成的,因為自動化任務粒度遠大於傳統基礎服務(Nginx,MySQL等) 的請求粒度,所以需要一些特殊的排程策略來進行保證。
1.2 資料分析
為了確保高可用,一方面要對全域性各類資源進行統一監控,另一方面要對埋點資料持續分析挖掘,並針對發現的問題進行不斷的改進。螞蟻雲測服務對裝置和任務執行建立了上百類不同的埋點資料上報,覆蓋裝置健康,任務執行效率,關鍵場景的耗時等多角度資料,自動化任務在執行過程中還可以通過標準擴充套件介面動態新增業務維度的埋點分析資料。
1.3 持續改進
通過對資料的持續分析,我們發現了大量的問題,其中包含了很多NREP的困難問題,配合呼叫棧的記錄都很快進行了修復。一直到今天,螞蟻雲測服務始終保持著每週至少一個版本的迭代速度。可以說雲測服務從建立第一天起就完全沿襲了敏捷開發小步快跑的模式,這是平臺能夠始終支撐業務快速迭代的重要保證。
2、全整合
服務如何能更好的和業務結合落地,是評價服務價值的最好標準。
2.1 服務標準化
螞蟻實驗叢集在實際應用場景上,充分思考了如何與業務結合落地的策略。從服務方式來看,對內部域提供標準RPC服務介面,對其他網路隔離的業務域提供了安全可靠的標準服務介面,通過統一的閘道器服務層,一方面讓業務接入特別簡單,另一方面能夠根據不同業務的場景和需求充分進行相應的業務隔離和限流。在保障業務需求被充分滿足的前提下,還可以隨時對異常問題進行控制隔離,目前每天平臺服務的各類請求超過20萬次。
2.2 服務個性化
從服務內容角度,螞蟻雲測為通用的業務需求提供了標準化的技術方案和入口;針對特殊場景的業務訴求允許使用者快速組裝個性化的任務構建模式,目前在內部已經有超過200個業務線的專項服務在雲測平臺上長期執行,滿足了40+個應用開發的自動化需求。
服務個性化的另一個角度,即能夠支撐越來越多的新業務場景,如人機互動(臉部識別),IoT(掃碼,投屏)等。傳統的自動化方案關注於終端裝置本身,一般無法將驗證的物理場景囊括進來,而新的業務場景對裝置所依賴的外部環境同樣有很高的要求。在這方面,螞蟻實驗平臺技術的工程師們充分利用的軟硬體結合的能力,通過大量自研的MCU裝置,配合高精度的工業級機器人,構建出業務所需要各類複雜環境,例如使用者進店掃碼模擬全流程模擬,包含了可能的光照條件;使用者掏出手機裝置時的位移,加速度,角度以及各種終端裝置的自由組合。
通過這些自動化測試場景的構建,支付寶錢包能夠不斷地優化使用者的使用體驗。
3、AIO(All in One 一站式解決方案)
通過高可用服務降低運維成本,助力研發效能提升。
伴隨著實驗叢集不斷擴大服務範圍,對資源管理運維的要求和投入成本也越來越高。為了控制運維成本,確保服務可靠性,螞蟻實驗平臺技術的同學們設計了基於AIO智慧機櫃一站式的整合解決方案。
3.1 彈性擴容,按需組合
每個AIO機櫃都是一個小型化的裝置叢集,提供了以下這些能力:
自定義MCU, 封裝9類67個自定義控制指令,覆蓋資料,電壓,電流,溫度,功耗控制
可控的執行環境(光線,電磁遮蔽)
高精度功耗採集度量能力(±0.01庫侖)
各種鏈路的模擬 (WLAN/4G/弱網)
裝置特殊狀態模擬和保護(低電量維持/充放電保護)
這些控制能力可以被高效地整合在一個智慧機櫃之中,也可以根據業務需求採用其中的能力子集,在成本控制和產品化定製方面具備成熟的能力。
3.2 服務外掛化,硬體模組化
配合AIO機櫃內部有相應的宿主服務,服務能力都是以外掛化方式進行組合。使用者如果有特殊型別的裝置或者業務上特殊的訴求,可以快速根據外掛規範自行定義新的服務外掛,對AIO的能力進行擴充套件。同時,AIO核心的主控板也是全模組化設計,豐富的擴充套件GPIO可以方便進行新的模組化硬體能力的擴充套件,滿足未來IoT複雜場景的訴求。
截止目前,AIO 無線實驗叢集已在支付寶體系內完成 50w+ 自動化任務,用例執行 400w 餘次,捕獲閃退 5w+ 次。
在降低人工測試成本,幫助人工測試的能力擴充套件到更多的應用場景方面,目前已經成功支援40+ 阿里集團 App 的測試任務,巡檢發現 250w+ 異常專案,完成 15w+ 小程式准入稽核,裝置遠端共享達到 4 千小時。
AIO 無線實驗叢集,目前已成為螞蟻金服 mPaaS 一部分,以“MTP 移動測試平臺”對外輸出能力,提供覆蓋 App 開發、測試、上線等各個階段的有效測試方案,有效幫助產品測試的環節資源投入的節省及測試效率與質量的提升。