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