《A2--周迎鳳--B站移動端測試平臺實踐.pdf》由會員分享,可在線閱讀,更多相關《A2--周迎鳳--B站移動端測試平臺實踐.pdf(34頁珍藏版)》請在三個皮匠報告上搜索。
1、B站移動端測試平臺實踐周迎鳳 嗶哩嗶哩 質保中心 資深開發工程師 周迎鳳嗶哩嗶哩 質保中心 資深開發工程師目前主要負責B站移動端測試工具及平臺開發工作,保障嗶哩嗶哩、必剪、直播姬、Bili國際版等產品的穩定性。畢業后曾就職于網易、第九城市、百度及創業公司,從事web開發、測試開發及質效開發相關工作。目錄C O N T E N T S1.平臺建設背景2.建設實踐介紹3.效果和探索4.總結1.平臺建設背景B 站-年輕人的潮流文化社區內容豐富:有動畫、番劇、游戲、知識等多元內容創作豐富:大量高質量原創視頻交互豐富:彈幕互動玩法獨特B站客戶端介紹日均活躍用戶1億+,月均活躍3億+日均使用時長99分鐘U
2、P主 300萬+,月均投稿2000萬+覆蓋 手機+PC+車載+TV功能迭代需求數量多,周期緊湊,環節多,可能打回重提端側測試需求分類技術優化需求周期長,還可能需要反復實驗探索線上需求實時響應,快速反饋結果測試平臺需求公司級移動端測試工具平臺外部參考成熟工具和方案探索新技術新設備內部支撐多種業務測試整合已有技術建設統一管理設備+數據提供高效穩定測試服務外部已有平臺人工服務比例高服務水平參差不齊架構設計能力層層聚焦能力實現提供4類10+項業務所需測試能力服務層務層聚焦任務維度配置、執行、展現任務數據設備層設備層聚焦設備穩定200+真機持續接入接口層層聚焦用戶體驗多種方式供對外接入2.建設實踐介紹公
3、司內建機房,方便維護及使用考慮因素-恒溫恒濕:專用制冷+寬敞機柜-穩定供電:UPS+企業級USB Hub-穩定WiFi:柜內AP+機柜電磁屏蔽機房硬件建設真機接入建設 安卓接入優化控制不穩定影響:認識到無法根除 控制故障影響面 降低真機外的影響因素腳本中:使用多層轉發的ADB連接方式一:adb-H IP-P PORT devices方式二:export ADB_SERVER_SOCKET=tcp:IP:PORT方式三:adb connect IP:PORT真機接入建設 安卓接入優化手工操作:使用瀏覽器連接可操作的UI界面+shell環境調用方案:提供多種大家習慣的使用途徑,并注意內外隔離真機使
4、用優化iOS:生態較完善且閉環,連接相對更穩定;重點在使用時優化版本兼容、優化執行效率開源工具+自有針對性優化-兼容iOS多個版本-封裝靈活度提高,無需反復部署-部分操作額外優化,速度10 x up安卓:自動化處理彈窗,減少測試執行障礙-安裝過程:自動點擊和輸入密碼-系統彈窗:自動點擊-應用內彈窗:提供功能但默認不處理,由用戶決定真機使用優化方案優點缺點適用場景無障礙服務可以脫機執行,速度較快-和其它自動化測試框架沖突-不合理的頁面結構處理困難-圖片內文字無法識別空閑時的系統彈窗adb+OCR基于坐標點擊,兼容性較好-依賴額外服務-部分隱私界面無法截圖聯機的非隱私界面硬件模擬弱網專用屏蔽設備控
5、制移動信號強弱適合遠程調試使用網絡建設探索弱網AP管理界面控制丟包/延遲/帶寬等參數適合在工位附近公用軟件模擬弱網弱網模擬工具開WiFi熱點可能影響本機其它程序適合單人臨時使用手機有線上網宿主容器開啟透明代理adb reverse至手機降低WiFi AP壓力測試能力概覽兼容類穩定類功能類性能類UI自定義用例界面基線對比智能遍歷基礎性能過度繪制啟動耗時測試能力關注機型/系統兼容關注長時間運行穩定關注功能是否如預期關注能耗/時長非SDK API檢測頁面跳轉安裝卸載分為四大類,多種通用測試能力+業務專項測試能力 兼容性測試能力 非SDK API檢測背景從安卓9(API level 28)開始,平臺限
6、制應用調取非 SDK 接口,以降低應用發生崩潰的風險方案APK文件黑名單方法配置表veridex沒想到這這么簡單簡單,也能踩踩坑 工具舊版本只支持到安卓11 veridex更新版本 工具新版本只支持安卓12 自己拿源碼修改,支持13+各業務用的安卓SDK有高低 讀取APK信息,確定合理配置和工具 業務代碼特有低版本兼容 業務確認白名單,消除誤報背景應用需要在各個機型和操作系統版本上可以正常安裝、卸載、覆蓋安裝等,流程相對固定,自動化執行將節省大量人力方案隨機挑選多臺top機型,覆蓋多個常見場景:1.跨多個版本覆蓋安裝2.前一版本卸載再安裝3.前一版本覆蓋安裝4.同一版本卸載再安裝經驗-關注設備
7、id是否穩定生成-少量機型就是偶發失敗,只能重啟兼容性測試能力 安卓安裝卸載背景需要快速驗證某個活動頁面在不同機型上的UI表現;需要查看用戶新上傳皮膚在各分辨率的顯示情況方案多種操作封裝,適應不同需要:-一步跳轉至指定界面-自定義腳本-短時長隨機遍歷經驗-結束自動截圖,也支持過程中截圖(包括長截圖)-自動檢測截圖的黑屏/白屏等異常兼容性測試能力 頁面兼容背景利用隨機、高頻率、長時間的操作,跑出非預期崩潰;是業務最需要的平臺測試能力之一穩定性測試能力 智能遍歷更好的遍歷效果u選擇配置豐富、可擴展的工具u自己動手,補充工具不足u充分利用工具的已有功能u嘗試多種方案優化遍歷過程u豐富采集內容,提供崩
8、潰細節u減少重復,精準指派u遍歷過程:能不能 “隨機又可控”?u崩潰上報:能不能讓研發更高效排查問題?u遍歷工具:選擇哪個?穩定性測試能力 智能遍歷背景對于一些核心業務場景,我們需要對其CPU、內存、FPS、耗電等指標進行監測,并提供版本內&版本間的性能對比,防止由于應用對CPU和內存的不合理占用,導致應用消耗過高的電量,甚至發生非預期的異常經驗-事先固定測試場景列表和機型,版本之間盡量一致-提供API,方便上傳本地測試數據-兼容外部報告格式解析性能測試能力 基礎性能數據性能測試能力 啟動耗時方案從用戶點擊圖標至首頁完全加載的時長,是一個用戶體驗的重要指標;我們采用本機錄屏或外部錄像的方式生成
9、視頻,并基于圖像算法+深度學習+OCR識別的進行自動分幀計時經驗-不依賴埋點數據:不同于人體感受,且拿不到競品-多輪測試取均值:絕對時間不長,單輪測試易波動-盡量本機錄屏:常規機型,性能干擾很小-盡量算法分幀:人工對起止幀判斷會波動-關閉開屏廣告背景應用可能會在單個幀內多次繪制同一個像素,這種情況稱為“過度繪制”,因為GPU需要浪費時間來渲染與用戶在屏幕上所見內容無關的像素,可能導致性能問題方案打開手機“GPU過度繪制”選項,對各個界面截圖,并由圖像算法來判斷色塊位置并計算比例性能測試能力 過度繪制無顏色表示沒有重繪,即一個像素點只被繪制了1次藍色表示重繪了1次,即一個像素點被繪制了2次。屏幕
10、上如果有大塊的的藍色區域是可以接受的;但如果整個屏幕都是藍色就需要優化,可以去掉一層綠色表示重繪了2次,即一個像素點被繪制了3次。中等面積的綠色區域是可以接受的,不過最好引起警惕,去看一下能不能優化淡紅色表示重繪了3次,即一個像素繪制了4次。很小的淡紅色區域是可以接受的,其他情況就需要優化深紅色表示重繪了4次以上。強烈建議優化UI自動化測試業務測試通常有建設自己的UI自動化用例庫希望遷移到平臺執行,釋放本地真機資源使用需要支持多種接入方式,各有優劣功能測試能力 UI自動化測試一些小小的經驗“我的代碼本地運行好好的,怎么機房就跑不通了?!”-多檢查代碼里有沒有默認設備的調用-第三方工具可能有額外
11、安裝、額外端口要求-別用絕對路徑!“為什么在機房的失敗率這么高?!”-代碼對機型/分辨率/系統有依賴-前置操作建議多用快捷方式,少UI操作步驟-有些操作確實自有封裝比公用的更好:)功能測試能力圖片對比測試各界面及活動頁面訪問后截圖并和基線圖做結構相似度對比指令編排部分通用操作使用頻繁、實現簡單提供指令組合能力,順序執行,無需代碼編寫3.效果和探索在平臺中探索應用AI能力用例自動生成用例自動篩選(用例優化)對業務要求高平臺探索有限提問大模型給出修復建議崩潰堆棧/錯誤日志結果優化使用效果不佳仍有改進空間端側遍歷優化運行時效果緩存,有效但粗糙集中訓練優化上傳服務端訓練,探索長期積累執行優化已有部分效果繼續深入嘗試圖片處理相關文字識別 圖片相似度 結構相似度 色塊占比輔助服務已穩定實現可持續優化視頻處理相關視頻分幀 視頻質量評估 靜音識別 花屏識別總結平臺建設背景對內:協助業務移動端測試,整合零散建設對外:參考業界成熟經驗,探索新設備和技術建設實踐介紹建設穩定的自有機房建設高效的真機使用建設多樣化的測試能力效果和探索使用數據持續上升,效果數據持續反饋后續多層次探索AI應用方向感謝聆聽關注公眾號