做者:周力(問瑾),螞蟻金服技術專家。本文將從支付寶業務特性出發,深度解析無線實驗集羣在支付寶的演進與發展,並探討 IoT 與人機如何交互並提供真正落地的時間方案。算法
現場視頻(複製地址到瀏覽器中打開): t.cn/AiKDZg5G小程序
做爲國民級 App,支付寶客戶端須要爲億級用戶提供多元化的服務,所以應用的穩定性與可靠性面臨巨大的挑戰,須要不斷地完善和優化。後端
今天,讓咱們站在服務質量的全方位監控與優化的角度,從螞蟻終端實驗室的演進之路展開探討,從藉助使用開源的自動化方案,到自研並逐步完善無線實驗集羣技術體系,支付寶內部經歷了怎樣的業務場景演練,以及相應的技術架構如何藉助移動開發平臺 mPaaS 對外輸出。瀏覽器
總的來講, 螞蟻終端實驗室從誕生到如今,一共經歷過三個階段(工具化、服務化以及中臺化),其每一個階段都有特色和意義:網絡
該階段主要以使用市面上主流開源軟件爲主,如客戶端開源軟件 Appium, 其覆蓋的端爲 Android 和 iOS;經過這種開源工具和 App 測試流程結合的方式,快速知足業務方的提測需求,從而幫助業務方完成通常意義上的自動化測試工做(如基本的功能測試、兼容性測試等)。架構
服務化階段存在一個重要的背景:支付寶着手先後端研發流程分離,並逐步沉澱出獨立的 App 端研發流程系統(研發協做流程與 App 構建流程)。在獨立的 App 研發流程和系統的基礎上,終端實驗室以一種服務化的形式支撐 App 的研發和協做, 處理知足平常用戶自動化工做外,同時還擔當着持續集成、平常發佈前自動驗包工做等; 另外在平常發佈發佈提供質量數據支持,如客戶端代碼覆蓋率統計等。併發
伴隨着終端實驗室的能力不斷提高優化以及測試規模的逐步擴大,服務上不只須要知足螞蟻金服體系 App(支付寶、口碑、網商銀行等)平常測試需求,並且還須要將能力擴散覆蓋到整個阿里巴巴集團的業務。框架
隨之而來的是實驗室須要面臨多樣化的業務方需求和定製化功能,如何在多元複雜的業務環境中,與業務方或者說上游系統完成能力共建?帶着這個問題,終端實驗室逐步沉澱並着手建設中臺化平臺:一方面讓通用服務不斷下沉,另外一方面抽象出標準 SDK 的方式,讓業務方根據自身業務特色建設特定的能力。機器學習
此外,在建設平臺化的同時,終端實驗室貼合支付寶業務場景的發展,構建如網絡實驗室、掃碼實驗室等一系列真實實驗室的能力。ide
經歷了幾年的不斷髮展,終端實驗室逐步完成了中臺化的轉變,其端上覆蓋了 Android、iOS 以及 IoT 設備,服務上覆蓋了通用能力、小程序准入、研發流程建設、真機租用以及用例管控等。
在瞭解完終端實驗室的歷程以後,咱們可以對其提供的服務有一個全面的認識。當咱們去總結和分析這些服務時,能夠把這些具體能力分爲三大塊:平臺服務能力、客戶端SDK 以及 實驗室能力。
平臺服務能力的目標是聚焦「如何把螞蟻實驗室構建成一個更爲開放的平臺」,所以咱們須要考慮到如何讓更多的業務方和上游系統一塊兒參與能力共建,從而將平臺的建設思路分爲 2 大部分:設備實驗集羣和開放SDK。
1. 設備集羣
螞蟻實驗室不只包含數以千計的公用終端設備,覆蓋市面絕大多數手機終端,幫助業務同窗完成平常自動化測試工做,並且提供了用戶自建實驗室的方式:用戶只須要根據自身業務場景特性進行設備採購、實驗室部署,便具有在自有平臺上運行自有設備的能力。
從平臺的開放性與部署動態化角度看,目前設備集羣能保證設備歸屬和業務場景作到充分隔離,保證各業務在平臺使用上能相互獨立。另外,面對阿里巴巴集團衆多研發中心,設備集羣在部署上也支持多地部署、相互隔離。
2. 開放SDK
爲了給上游系統和用戶提供更爲開放的能力,幫助業務方根據自身需求完成能力建設。終端實驗室提供開放的 SDK 能力:上游系統只需在本身服務上接入 SDK,就可以完成任務構建鏈路,從用例管理、設備選擇、任務執行,到執行結果回調,在此基礎上用戶就可以根據自身業務特色將業務數據進行多維度組合,造成本身的能力輸出。
終端實驗室通過幾個階段的發展,不只提供 UI 自動化框架能力,並且在一些複雜場景作了深刻研究和落地的工做。在這裏咱們以令你們頭痛的「App 兼容性驗證」做爲切入點,結合目前經常使用的幾種機器學習方案,分析方案的優缺點,最終造成了終端實驗室的解決方案。
一方面伴隨着移動互聯網的快速發展,目前市面上手機的品牌和型號層出不窮,如何快速準確的驗證 App 的功能在不一樣類型手機上運行有效性與穩定性,的確是件困難的事情;另外一方面,目前針對圖片的機器學習技術日益成熟,其圖識別的準確性也徹底可以知足平常兼容性的要求。
一般來講兼容性測試會採用兩種方式:1.圖像類似度計算;2. 無監督的異常點聚類。 這兩種方式在使用方式和結果輸出都有其優缺點:
對比以上兩種技術方案,終端實驗室在兼容性異常圖片發現上採用了更加靈活的方案,經過手機端「異常目標檢測」和服務端「異常點聚類」相結合的方式完成目標。
首先,平臺蒐集常見異常圖片,並訓練成模型,植入手機端。
其次,當用戶執行兼容性測試的時候,在手機端完成一部分「常見異常圖片」的發現工做。
再次,當任務執行完後,服務端將剩下一部分圖片交給「「異常點聚類」處理,並進一步是被不一樣的圖片。
最後,在整個執行任務結束後,平臺就能有效識別異常圖片,另外當異常圖片未被有效識別的狀況下,又能夠在平臺上快速提交異常圖片,並交給算法邏輯繼續學習,造成新的模型,從而在下一次任務執行過程當中,就能把這種新發現的異常捕獲住。
經過這種靈活的方案,一方面大大提高了異常圖片檢測結果的準確度,另外一方面在整個異常圖片的發現上造成了閉環,大大提高的兼容性測試的效能。
爲了應對日益複雜的用戶使用環境和不穩定的運行環境,終端實驗室不斷去構建各類專項實驗室,儘量在實驗室環境裏就把問題發現並推進研發流程去解決。同時伴隨着 IoT 時代的到來,面對種類繁多的終端設備,如何可以經過實驗技術的手段幫助研發同窗提高效能,是一個新問題也是一個比較有挑戰的問題:終端實驗室經過託管 IoT 設備的方式,讓用戶快速方便尋找設備,並進行功能驗證。具體技術方案是在原有的 Android/iOS 真機租用方案的基礎上作了能力升級。
第一, 將終端實驗室上某一款手機和 IoT 設備作關聯,保證當瀏覽器經過 WS 遠程操做手機打開攝像頭就可以看到對應的 IoT 設備;
第二,經過 WS 讀取 IoT 串口的 trace 信息,並將數據以 WS 的形式推送到用戶瀏覽器端;
第三,在宿主機上集成 IoT 設備操做的 SDK,保證宿主機可以經過命令行或者 HTTP 方式操控 IoT 設備;
第四,宿主機集成語音轉文字 SDK,這樣當 IoT 設備發出聲音時,就可以在頁面上以文字的方式告訴用例。
經過這種遠程 IoT 租用的方式,用戶就可以快速作做一臺遠程設備,另外在給 IoT 設備發送指令的同時,能夠看到設備的相應信息(視覺展現、聲音展現以及實時日誌信息),從而達到快速驗證的目的。
機械臂掃碼測試:
智能機櫃支持真機雲測
以上介紹的螞蟻金服終端實驗室相應能力的構建與實踐,目前已經經過移動開發平臺 mPaaS 對外輸出一部分能力。
在 mPaaS 平臺上,咱們將自動化測試框架,真機調度管理,場景化測試方案以及詳盡的測試報告方案整合外部客戶的現有業務場景和系統,從而覆蓋 App 開發期的各個階段,確保應用上線前獲取充分測試,發現 bug,減小線上問題,提升總體用戶體驗。
目前,終端實驗室不只對內服務了包括螞蟻金服體系下的支付寶 App、網商銀行、口碑商家等,同時藉助 mPaaS 與大量生態合做夥伴一同共建能力,包括常熟農商行、西安銀行、泰隆銀行等。因爲篇幅限制,不少技術要點咱們沒法一一展開,歡迎你們經過技術文檔或點擊「閱讀原文」進一步瞭解 mPaaS :tech.antfin.com/docs/2/4954…
MTSC2019 第五屆中國移動互聯網測試開發會將於 6 月 28-29 日在北京國際會議中心舉行,50+ 來自 Google,BAT,TMD 等一線互聯網企業的測試大咖分享精彩議題,涵蓋移動自動化測試、服務端測試、質量保障 QA、高新測試技術(AI+、大數據測試、IoT 測試)等專題。
螞蟻金服多位技術專家將在大會上分享精彩議題,解密螞蟻金服內部移動測試 2.0+ 演進之路、代碼實時染色系統如何完成代碼覆蓋率檢測等,期待與你交流。
往期閱讀
《螞蟻金服 mPaaS 服務端核心組件:億級併發下的移動端到端網絡接入架構解析》
《mPaaS 核心組件:支付寶如何爲移動端產品構建輿情分析體系?》
釘釘羣:經過釘釘搜索羣號「23124039」
期待你的加入~