曾 里,胡夢飛,陳 明,袁 銳,向小華,李 芳
(中國移動通信集團重慶有限公司,重慶 400000)
自動化質量監控系統是一種依靠各種互聯網診斷命令、協議監控等手段實現互聯網資源訪問質量評估的系統。質量監控系統基于自動撥測工具,通常通過模擬用戶打開被監控網站域名,監測網卡對應報文發起、回復時間差、下載文件大小等,實現對用戶訪問感知的測評。撥測結果與用戶真實感知一致,能夠發現訪問網站各類資源訪問質量情況。
APP是Application的縮寫,用以統稱手機應用軟件。目前常用的APP主要歸屬于兩大操作系統陣營——Google的Android與Apple的 IOS。
目前主流APP分為三類:Web App、Hybrid App、Native App。
Web App是手機版的網站,通過訪問云端瀏覽器讀取數據;Hybrid App(混合App)是指采用原生態App的框架,內嵌了一個地址寫死的瀏覽器,讀取數據還是通過訪問云端;Native App(原生App)是重新設計一個原生程序,有“云服務器數據庫+App客戶端”兩部分組成,App應用里所有的UI元素、數據內容、邏輯框架均安裝在手機終端上,有表有里。
綜上,Web App及Hybrid App均為通用或專用瀏覽器+HTML構架方式構成,要實現對這兩類APP質量的撥測,可在原有業務質量監控類撥測系統中的HTTP業務撥測模塊基礎上進行優化設計。而Native App必須開發適合其特點的專用撥測方式。本文將對以上兩種類別APP設計并開發對應撥測工具,實現對主流APP質量檢測功能。
Web類App是通過瀏覽器直接獲取網頁代碼,實現服務提供;Hybrid類App是通過內嵌瀏覽器獲取網頁代碼,實現服務提供。其實質是只要能夠通過瀏覽器獲取到網頁內容,通過后臺報文監控,則能夠評估App實際訪問效果。而要獲取手機用戶通過瀏覽器下載到的網頁內容,并測試其質量的關鍵,就在于如何讓撥測工具獲取到正確的網頁內容上。
經多次測試發現,較多主流網站在用戶訪問時,會通過某種機制識別用戶終端類別,以便提供網頁頁面適配。
以百度為例:在使用手機瀏覽器訪問www.baidu.com時,會收到訪問服務器回復的HTTP 302報文,并重定向到m.baidu.com,該域名為專為手機用戶定制頁面。而使用linux和windows系統訪問www.baidu.com時,會直接訪問到電腦版百度首頁,訪問內容不會有跳轉變化。而使用linux及windows系統瀏覽器訪問m.baidu.com時,則會出現訪問錯誤403。
目前,主流撥測工具均是基于linux或windows系統開發,利用撥測工具撥測APP質量的核心在于如何用linux及windows自帶瀏覽器訪問到手機頁面內容。
經多次抓包分析,發現終端在訪問網站過程中,會在HTTP報文中上報一個字段:User-Agent,其中包含終端操作系統、瀏覽器信息。

圖1 wireshark抓包數據
由此假設,服務器在收到用戶User-Agent報文后,將通過服務器建立的數據庫表查詢到用戶對應終端類型,最終向用戶返回電腦/手機端頁面。
為驗證該思路,利用google瀏覽器功能修改User-Agent字段為:

訪問www.baidu.com,順利實現電腦訪問跳轉至m.baidu.com。服務器依靠User-Agent字段偵測用戶終端類型猜測得到驗證。
以此為基礎,工作組后續建立了主流終端及瀏覽器數據庫,并固化至現有撥測系統中:

圖2 改進后的撥測系統
通過實際撥測,在完成User-Agent替換后,傳統撥測系統已能夠模擬手機瀏覽器,對WEB App及Hybrid App頁面進行撥測。結合已成熟的告警監控流程,達到了APP質量檢測目的。
Native App等效于已編譯后的完整應用程序,不再能采用瀏覽器方式打開,所以傳統撥測手段對其失效。為解決Native App的自動化質量檢測問題,需要通過一種通用手段進行解決,工作組通過研究決定通過能夠在手機上運行的腳本語言開發對應質量檢測工具。
本文通過觸摸精靈android版作為手機端,以觸摸精靈腳本編輯器為電腦端,通過局域網連接手機、電腦終端,以便實時編輯。使用LUA腳本語言作為編程語言進行撥測腳本程序設計。
以測試微信業務基本功能使用感知為例,程序設計如下思路如下:
依靠LUA腳本語言強大的可移植性和函數庫,可以輕松實現手機觸摸、滑動、晃動、點擊、識色等功能,依靠合理的測試邏輯及異常處理機制,能夠為每一款Native App制定合理的自動化測試方案,完成對應APP的監控。

圖3 編程界面及識圖畫面

圖4 流程圖設計
本文通過理論結合實踐,研究出了一套能夠有效解決目前三大類型手機APP自動化撥測的工具體系。利用現有撥測系統結合User-Agent改造功能,實現對Web App及Hybrid App監控功能。利用觸摸精靈+LUA腳本語言實現Native App質量監控能力。系統整體具有較強實踐創新性。目前該系統已在重慶某運營商實際使用,具有較好的準確性及實時性。在使用過程中,腳本化撥測工具不斷完善,具有應對軟件各種異常進程的能力,具備較強可移植性。