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

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

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

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

圖3 編程界面及識圖畫面

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