2021年5月29-31日,由極客邦科技旗下 InfoQ 中國主辦的綜合性技術盛會 QCon 全球軟件開發(fā)大會于北京召開。大會設置了包括“人工智能驅動業(yè)務實踐”、“云原生技術應用”、“大數據實時計算與分析”、“音視頻體驗提升實戰(zhàn)”、“低代碼實踐與應用”、“彈性工程及運維體系”等在內的 35 個技術專題,邀請業(yè)界頂級的技術專家,面向技術團隊負責人、架構師、工程總監(jiān)、開發(fā)人員分享技術創(chuàng)新和實踐。
圖1:2021Qcon·北京站
在音視頻服務解決方案專場中,全球互聯網通信云領先廠商融云作為受邀嘉賓,重點解析了融云音視頻SDK的自動化測試鏈路探索與實踐,讓開發(fā)者了解了SDK 打包集成測試過程中的難點痛點,以及多樣性 SDK 自動化交互測試設計思路。
測試的終極目標是保證SDK質量
融云自2014年創(chuàng)立以來,專注于通信云賽道,以提供SDK/API的方式,為數百種應用場景賦予通信云能力。為了不斷滿足開發(fā)者對產品功能的需求,成立7年來,融云的SDK接口數量從279個增長到597個,服務端的API接口數量從36個增長到107個,并且適配Android、iOS、Web、Flutter、小程序、桌面版等全平臺。
同時,融云還將眾多的SDK集合成不同類型的Demo,方便開發(fā)者調用,覆蓋了直播模式SealLive、即時通訊SealTalk、融云課堂SealClass、實時音視頻SealRTC、語音聊天室SealMic、視頻會議SealMeeting等眾多場景。這些場景化的Demo和SDK已累計服務超過 30萬款App,SDK觸達50億用戶。
伴隨著SDK數量增長,和場景Demo的多樣化,開發(fā)者最關心的是融云如何保障終端SDK的質量。會上,融云自動化測試架構師陳沛杰發(fā)表了《融云 SDK 交付質量保障探索及應用》的主題演講,從實戰(zhàn)經驗出發(fā),為開發(fā)者答疑解惑。
圖2:融云自動化測試架構師陳沛杰發(fā)表演講
目前,衡量音視頻質量的指標眾多,分為直接與音視頻相關的和與網絡相關的兩大類。其中,直接與音視頻相關的包括視頻連通率、卡頓、清晰度、花屏、黑屏、首幀時間,以及音頻嘯叫抑制、回聲抵消、噪聲抑制等;而在網絡傳輸中,弱網、丟包、延時、抖動和網絡自適應調整,也會影響終端SDK質量。此外,CPU、內存、IO、流量、發(fā)熱等性能指標,與安全、兼容相關的靜態(tài)代碼掃描、安全工具分析,以及版本兼容、設備碎片化等,也都是影響終端SDK質量的因素。
因此,為交付有質量保證的SDK,融云的做法就是兩個字:測試。只有通過測試,才能掌握這些指標,進而針對薄弱環(huán)節(jié)加以優(yōu)化,確保SDK穩(wěn)定性。在測試環(huán)節(jié),融云通過工具化、腳本化的方式,實現Demo業(yè)務測試的自動化,通過對業(yè)務測試、專項測試、SDK 接口測試的快速迭代,來跟進和掌握相關指標數據。
基于業(yè)務的專項自動化測試實踐
融云對Demo業(yè)務自動化測試的思考基于兩個維度:一個是如何實現業(yè)務自動化測試,保證終端 SDK 產品多樣性以及多端交互的穩(wěn)定性?另一個是音視頻專項測試是如何進行的?
在業(yè)務自動化測試實踐方面,融云通過對終端業(yè)務自動化測試工具的選型,制定出科學的終端業(yè)務自動化測試流程。
圖3:終端業(yè)務自動化測試流程
通過這一流程,首先可以實現在大量的 Android 、Web、iOS 、Win、Mac 之間任意自由組合,進行多端交互、交叉測試。其次,利用插件重點關注連通率、穩(wěn)定性、畫面檢測(黑屏、綠屏等)、性能數據、弱網和抓包數據等重要質量指標。第三,完整保存了終端過程數據。例如:日志、真實終端渲染后音頻、視頻畫面錄制等。
在音視頻專項測試的實踐方面,測試需要實現端到端的整體覆蓋,包括采集、預處理、編碼,到網絡傳輸,再進行解碼、后處理和渲染的整個傳輸過程。
圖4:音視頻專項測試實踐
要完成這一過程,陳沛杰以音視頻抗丟包自動化測試為例,介紹了主要步驟:
通過業(yè)務UI自動化平臺鏈接到網損儀路由;
由接口調用網損儀的相關參數傳輸至終端設備,錄制終端畫面后,上傳至平臺。
第三, 自動或人工分析,完成音視頻抗丟包自動化測試。
此外,融云還可通過傳統(tǒng)手工+測試工具結合的方式,進行自動化測試,完成端到端的延時測試,以及通過工具實現性能數據統(tǒng)計等。
通過這些測試,最終可以掌握諸如CPU 占用率、內存占用值、耗電量、流量、FPS、卡頓等相關性能指標,以及視頻、聲音延遲;視頻、聲音質量;嘯叫距離、嘯叫抑制和音頻、視頻通話抗丟包的測試數據。
融云SDK接口自動化測試探索
所謂SDK接口自動化測試,就是要驗證SDK 接口字段校驗覆蓋率、SDK 接口復雜調用的可測試性以及系統(tǒng)版本及設備碎片化覆蓋率。目前,普遍使用的SDK接口測試方案有三種:SDK單元測試、UI自動化方法和注冊廣播方法。
圖5:SDK接口測試方案
在實踐中,融云認為SDK自動化測試工具應具備以下能力:
第一,大部分 SDK 接口做到脫離 UI 可以快速迭代;
第二,可以對 SDK 接口字段進行自由組合邏輯校驗;
第三,可以范圍性的開展 SDK 打包集成測試。
基于此,融云對SDK自動化測試工具進行了兩次探索與迭代,第一版采用的是終端設備微服務模式,SDK 接口綁定 URL 地址;第二版則通過 URL 動態(tài)反射接口,實現了參數動態(tài)反射序列化。
最后,陳沛杰強調:自動化測試要盡可能在短的測試周期內達到更高的覆蓋率,并且自動化測試盡量不以流程為中心,應適應場景快速變化的需要。
圖 6:開發(fā)者聆聽演講
結語
通過測試和優(yōu)化,目前,融云音頻最大抗丟包可達80%,視頻最大抗丟包40%;語音延遲小于120 ms,視頻延遲小于 200 ms,語音直播延遲小于350 ms,視頻直播延遲小于350 ms,可保障端到端之間延遲無感知的實時互動。從陳沛杰的分享中也能夠看出,融云之所以擁有卓越的音視頻能力,源于融云對于各項技術的嚴苛要求和不懈探索。過硬的指標,過硬的質量,永遠是融云追求的方向。
文章內容僅供閱讀,不構成投資建議,請謹慎對待。投資者據此操作,風險自擔。
2024年的Adobe MAX 2024發(fā)布會上,Adobe推出了最新版本的Adobe Creative Cloud。
奧維云網(AVC)推總數據顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來都要半個月了,現在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關材料,僅幾秒鐘,重慶市民曾某的賬戶就打進了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準的色彩呈現能力,為您的創(chuàng)作工作帶來實質性的幫助,雙十一期間低至2799元,性價比很高,簡直是創(chuàng)作者們的首選。