高可用 全整合 定製化,螞蟻金服自動化測試如何演進

2021-09-13 02:23:53 字數 2768 閱讀 2449

11月16日,在首屆安卓綠色聯盟開發者大會上,螞蟻金服工程技術部的資深開發工程師裴煬針對無線實驗集群在螞蟻金服內部的發展與實踐做了總結分享,教你如何為8.7億年活躍應用打造自動化測試架構。

關於自動化測試在具體業務場景下的應用,全行業已經沉澱了眾多實踐。而隨著 devops,自動化測試,手工測試的進一步融合,多種多樣的開發框架和設計理念頻繁地被創造出來。如何支撐業務快速迭代,如何面對各種客戶端動態化元件化的新技術方案,如何支援新的iot、人機互動等業務場景的自動化測試,如何在業務邏輯下進行測試用例的深度思考與設計,已然成為焦點。

高可用性是支撐業務的必要條件。

移動雲測平台作為承托自動化測試必備的基礎服務設施,現在在各個廠家都有相應的實現方案。目前螞蟻內部雲測平台的定位即需要具備高可用以及高效靈活的執行控制能力。只有具備足夠靈活、高效的高可用服務能力,才能真正有效地提高研發效率,降低研發成本。

1.1 裝置集群

移動終端與傳統伺服器主要的區別之一,即裝置可靠性差距很大。通過一定程度的冗餘結合合理的排程策略,能夠保證高可用的服務sla。螞蟻內部雲測服務對關鍵業務的sla要求是需要達到4個9的標準,而這個目標是通過基於裝置任務雙向選擇的競爭機制配合實時異常檢測和動態任務切換的機制完成的,因為自動化任務粒度遠大於傳統基礎服務(nginx,mysql等) 的請求粒度,所以需要一些特殊的排程策略來進行保證。

1.2 資料分析

為了確保高可用,一方面要對全域性各類資源進行統一監控,另一方面要對埋點資料持續分析挖掘,並針對發現的問題進行不斷的改進。螞蟻雲測服務對裝置和任務執行建立了上百類不同的埋點資料上報,覆蓋裝置健康,任務執行效率,關鍵場景的耗時等多角度資料,自動化任務在執行過程中還可以通過標準擴充套件介面動態新增業務維度的埋點分析資料。

1.3 持續改進

通過對資料的持續分析,我們發現了大量的問題,其中包含了很多nrep的困難問題,配合呼叫棧的記錄都很快進行了修復。一直到今天,螞蟻雲測服務始終保持著每週至少乙個版本的迭代速度。可以說雲測服務從建立第一天起就完全沿襲了敏捷開發小步快跑的模式,這是平台能夠始終支撐業務快速迭代的重要保證。

服務如何能更好的和業務結合落地,是評價服務價值的最好標準。

2.1 服務標準化

螞蟻實驗集群在實際應用場景上,充分思考了如何與業務結合落地的策略。從服務方式來看,對內部域提供標準rpc服務介面,對其他網路隔離的業務域提供了安全可靠的標準服務介面,通過統一的閘道器服務層,一方面讓業務接入特別簡單,另一方面能夠根據不同業務的場景和需求充分進行相應的業務隔離和限流。在保障業務需求被充分滿足的前提下,還可以隨時對異常問題進行控制隔離,目前每天平台服務的各類請求超過20萬次。

2.2 服務個性化

從服務內容角度,螞蟻雲測為通用的業務需求提供了標準化的技術方案和入口;針對特殊場景的業務訴求允許使用者快速組裝個性化的任務構建模式,目前在內部已經有超過200個業務線的專項服務在雲測平台上長期執行,滿足了40+個應用開發的自動化需求。

服務個性化的另乙個角度,即能夠支撐越來越多的新業務場景,如人機互動(臉部識別),iot(掃碼,投屏)等。傳統的自動化方案關注於終端裝置本身,一般無法將驗證的物理場景囊括進來,而新的業務場景對裝置所依賴的外部環境同樣有很高的要求。在這方面,螞蟻實驗平台技術的工程師們充分利用的軟硬體結合的能力,通過大量自研的mcu裝置,配合高精度的工業級機械人,構建出業務所需要各類複雜環境,例如使用者進店掃碼模擬全流程模擬,包含了可能的光照條件;使用者掏出手機裝置時的位移,加速度,角度以及各種終端裝置的自由組合。

通過這些自動化測試場景的構建,支付寶錢包能夠不斷地優化使用者的使用體驗。

通過高可用服務降低運維成本,助力研發效能提公升。

伴隨著實驗集群不斷擴大服務範圍,對資源管理運維的要求和投入成本也越來越高。為了控制運維成本,確保服務可靠性,螞蟻實驗平台技術的同學們設計了基於aio智慧型機櫃一站式的整合解決方案。

3.1 彈性擴容,按需組合

每個aio機櫃都是乙個小型化的裝置集群,提供了以下這些能力:

自定義mcu, 封裝9類67個自定義控制指令,覆蓋資料,電壓,電流,溫度,功耗控制

可控的執行環境(光線,電磁遮蔽)

高精度功耗採集度量能力(±0.01庫侖)

各種鏈路的模擬 (wlan/4g/弱網)

裝置特殊狀態模擬和保護(低電量維持/充放電保護)

這些控制能力可以被高效地整合在乙個智慧型機櫃之中,也可以根據業務需求採用其中的能力子集,在成本控制和產品化定製方面具備成熟的能力。

3.2 服務外掛程式化,硬體模組化

配合aio機櫃內部有相應的宿主服務,服務能力都是以外掛程式化方式進行組合。使用者如果有特殊型別的裝置或者業務上特殊的訴求,可以快速根據外掛程式規範自行定義新的服務外掛程式,對aio的能力進行擴充套件。同時,aio核心的主控板也是全模組化設計,豐富的擴充套件gpio可以方便進行新的模組化硬體能力的擴充套件,滿足未來iot複雜場景的訴求。

截止目前,aio 無線實驗集群已在支付寶體系內完成 50w+ 自動化任務,用例執行 400w 餘次,捕獲閃退 5w+ 次。

安卓綠色聯盟會根據每期技術沙龍議題輸出精彩技術乾貨文章,分享講師ppt,為未能現場參加技術沙龍的您提供另乙個乾貨學習機會。

高可用 全整合 定製化,螞蟻金服自動化測試如何演進

關於自動化測試在具體業務場景下的應用,全行業已經沉澱了眾多實踐。而隨著 devops,自動化測試,手工測試的進一步融合,多種多樣的開發框架和設計理念頻繁地被創造出來。如何支撐業務快速迭代,如何面對各種客戶端動態化元件化的新技術方案,如何支援新的iot 人機互動等業務場景的自動化測試,如何在業務邏輯下...

Nginx Keepalived 整合高可用

2 解壓安裝 3 配置開機啟動 4 對 keepalived.conf 配置 5 nginx check.sh 指令碼 6 啟動兩台機器的keepalived 7 測試 先安裝 keepalived 編譯需要依賴包 yum install y openssl openssl develtar zxv...

mycat整合HAProxy實現高可用

haproxy的狀態資訊統計頁面 目前haproxy支援的負載均衡演算法有如下8種 1 roundrobin 表示簡單的輪詢,每個伺服器根據權重輪流使用,在伺服器的處理時間平均分配的情況下這是最流暢和公平的演算法。該演算法是動態的,對於例項啟動慢的伺服器權重會在執行中調整。2 leastconn 連...