嚴關武,黎宏劍,黃廣文
(中國移動通信集團廣東有限公司中山分公司,廣東 中山 528403)
隨著科技、通信網絡、移動互聯網的快速發展,移動終端和應用的數量呈現爆炸式增長。移動終端品牌、機型繁多,同一應用在不同移動終端上可能存在不同的運行狀態。為保證應用在移動終端上功能的正確性、性能的穩定性以及良好的用戶體驗,終端廠商、移動應用開發商和移動運營商需對移動終端上的應用進行大量撥測。目前的撥測以人工方式為主,撥測人員通過裝載有SIM卡的移動終端訪問應用并記錄撥測結果。龐大的撥測量、眾多撥測人員的參與,使得人工撥測方式不僅耗費人力和撥測資源,而且存在撥測資源使用率不高、易丟失、撥測效率低、撥測結果統計不準確等問題。
為改變該弊端,針對人工撥測的不足,本文提出基于B/S的終端應用自動撥測系統,通過對撥測終端、撥測SIM卡等撥測資源的統一管理和調度,提高了撥測資源的利用效率;同時通過對撥測任務的自動化執行,自動輸出撥測結果并形成撥測指標報表,提高撥測工作的質量和效率,有效地節省了時間和人力,最終節約了撥測成本。
本系統采用B/S架構,用戶無需接觸真實的撥測資源,所有撥測資源在后臺統一集中管理、調配,用戶只需利用內部網絡,通過前端瀏覽器訪問系統。通過FLASH和圖像技術,用戶在前端虛擬移動設備的操作映射到后端真實移動終端的按鍵和觸屏,進行撥測腳本編輯、指標設定和任務執行。系統技術架構如圖1所示。
系統技術架構包括硬件層、通信層、業務層、采集層和應用層。

圖1 系統技術架構
硬件層:包括SIM卡池、終端設備池,負責實現終端應用撥測的響應、執行。
通信層:通過模擬映射實現屏幕、按鍵等操作的傳輸,采用協議驅動實現應用撥測。
業務層:實現各類終端應用、SP業務的執行撥測。
采集層:負責進行撥測數據的采集分析、統計。
應用層:負責實現用戶界面的接入呈現、業務控制、任務制定等人機交互接口以及其他系統接口。
系統網絡拓撲如圖2所示:

圖2 系統網絡拓撲
用戶通過PC上的瀏覽器基于局域網訪問后臺服務器,系統程序部署在應用服務器。SIM卡池模塊通過SIM卡槽延長線與終端電路板相連,負責SIM卡的集中管理,供終端池模塊隨機調用。終端池和服務器模塊通過TCP/IP協議進行組網連接,負責撥測終端的集中管理和分配。終端池模塊與SIM卡池模塊之間支持靈活調度和配置。
系統包括基礎管理、腳本管理、任務管理、統計報表和系統管理五大模塊,具體如圖3所示。
(1)基礎管理模塊
包括參數設置、設備管理、SIM卡管理、SIM卡綁定、消息模板等子功能。參數設置提供對終端FLASH圖片中區域標識的按鍵設置功能。設備管理提供設置終端池中手機終端基礎信息的功能,包括手機終端ID、設備名稱、OS版本、IP地址、位置、占用情況等信息。SIM卡管理提供編輯SIM卡池中的SIM卡信息的功能,包括卡池編號、號碼、品牌、套餐描述等信息。SIM卡綁定提供設置SIM卡與手機終端綁定狀態的功能。消息模板包括告警模板和通知模板,設置自動撥測任務正常執行或者異常執行時的信息通知格式和內容。
(2)腳本管理模塊
包括新建腳本和腳本查詢2個子功能。在新建腳本功能中,撥測人員選擇終端設備后,瀏覽器會呈現一個FLASH模擬器畫面,撥測人員可以直接通過鼠標在FLASH模擬器上進行真實的操作,包括按鍵、屏幕點擊、長按、拖動、開關機等動作,可以直接在瀏覽器界面上進行在線腳本編輯、調試。腳本編輯不限制特定的業務、流程和指標,撥測人員只需根據測試需求進行腳本編輯,并提供常用業務的腳本模板。腳本查詢提供對已新建腳本的多條件組合查詢,并可以對某一腳本進行復制和運行。

圖3 系統功能結構
(3)任務管理模塊
包括新建任務和任務查詢2個子功能。在新建任務功能中,撥測任務設定任務的名稱和描述,選擇腳本后,可以設定任務周期性執行或者某個時間點執行,可以關聯某一號碼或某一品牌,并設定執行次數。任務查詢提供對所有狀態任務的多條件查詢。多任務同時執行時,按照任務的優先級、占用資源情況進行排序,優先級高的任務先執行。任務執行完后,釋放所占用的資源。對于撥測失敗的任務,提供重新執行機制。
(4)統計報表模塊
包括資源使用統計、撥測結果統計、業務量統計等子功能。資源使用統計提供多維度的撥測終端和SIM卡使用的統計報表。撥測結果統計提供各撥測任務執行結果、各項指標情況的統計報表。業務量統計提供系統訪問、腳本創建、任務執行等指標的統計報表。
(5)系統管理模塊
包括模塊管理、角色管理、用戶管理、日志管理等子功能。模塊管理提供系統功能菜單的編輯并和角色關聯;角色管理設置系統的角色信息和用戶、設備關聯;用戶管理設置系統的使用用戶;日志管理提供系統詳細的訪問和操作記錄信息。
所有終端采用專屬的硬件連接板進行連接、組網。硬件連接板一端通過電信號連接手機,與手機運行的嵌入式操作系統無關,可以連接和控制任何類型的移動終端;硬件連接板另一端采用了專用的高速LAN接口,并提供標準的HTTP軟件接口協議,可以被任何第三方軟件調用和控制。每個硬件連接板需要占用子網內的一個獨立的IP地址。
硬件連接板的功能指標如下:
◆采用非介入式方法,對手機軟件運行環境沒有影響;
◆提供標準的HTTP協議接口,可與任意第三方軟件集成;
◆可以模擬對手機按鍵的短按、長按操作;
◆可以模擬對手機觸屏的Tap、Tap and Hold、Drag和Draw操作;
◆可以模擬對手機電池的插入和拔出操作;
◆可以模擬對手機的開機和關機操作;
◆可以模擬對手機USB電纜的插入和拔出操作;
◆可以抓取手機的屏幕顯示,支持BMP或壓縮格式;
◆可以抓取手機輸出的音頻和視頻信號,支持用戶定義的格式。
將所有終端資源進行集中管理,基于TCP/IP的設計,用戶通過瀏覽器隨時進行遠程接入,申請任意終端的控制,按任意預定流程將待測試的業務轉換成測試腳本,利用圖像及文字識別技術,實現終端屏幕自動分析及驗證,完成整個測試流程的自動撥測、識別和過程記錄,實現在瀏覽器中即可完成真實終端的所有控制。
終端池的自動撥測基于以下原理進行設計:
◆通過主程序自動控制移動終端的鍵盤、旋鈕和觸摸屏,以模擬雙手操作;
◆使用智能OCR及圖片識別技術來模擬雙眼進行內容識別和邏輯判斷;
◆模擬最終用戶使用手機的真實操作方式,獲取最終用戶使用手機的真實體驗;
◆程序設計獨立于待測試業務和指標,業務流程由腳本定義,實現所有業務和指標的自定義測試;
◆整個自動測試過程都是基于UI(用戶接口)/MMI(人機接口)完成。
腳本圖形化編輯通過FLASH技術實現。腳本編輯模塊是基于RIA理念、采用Flex技術、依托FlashPlayer的“桌面”級網絡應用程序。程序整體采用板塊獨立型框架結構,按視圖區域劃分成多個獨立板塊,板塊間的信息交換采用字符命令附加參數的形式,由板塊管理器統一調度,大大降低了板塊間的耦合度,可任意拆除、新增板塊。同時采用了分層式結構對顯示對象進行分層,主要顯示對象位于里層,提示性對象位于外層,主次分明,方便對各層的顯示對象進行管理。
為了使結構靈活化,降低各功能部分的耦合度,腳本編輯模塊根據功能的不同,劃分為資源列表、視圖管理、用例編輯、屬性面板、設備模塊、日志記錄等6個子模塊,每個子模塊繼承IBlock接口,子模塊間的通信方式為字符串消息附帶參數的形式由BlockManager統一調度。
腳本編輯模塊對手機的屏幕、按鍵、外殼進行了封裝,再將這3部分進行“完全對象”封裝構成一個完整而獨立的手機模型構造器,構造器動態提取模型數據并建立模型,模型對象的完整性提高了對模型的可控程度。用例編輯以樹形結構展現,腳本錄制時激活操作延時計時器,根據實際操作的間隔自動填充每個步驟之間的延時時間,同時自動識別用戶對手機模型的操作行為。
系統提供對手機單擊、長按、拖到、觸屏等操作的統一控制接口,采用C語言封裝。具體流程為:
(1)通信網關對外接口接收上層調用手機控制請求,發送給身份驗證模塊,并記錄日志;
(2)身份驗證模塊對請求進行身份合法性驗證后發送給數據驗證模塊;
(3)數據驗證模塊對請求進行數據有效性驗證,有效請求發送給協議適配模塊,無效請求反饋給通信網關對外接口進行響應;
(4)協議適配模塊調用消息路由將請求發送給對應終端進行處理并響應結果。
采用進程池模式,通過后臺守護端口,實時接收任務,完成任務調度和任務執行。具體流程為:
(1)守護端口監聽,等待任務命令,命令到達時,分攤任務到任務執行進程;
(2)任務執行進程對任務進行解析,調用相關腳本、終端和SIM卡,如資源空閑則執行任務輸出結果,否則進入隊列等待,等資源空閑時再執行。
(1)系統易用性設計
系統采用B/S結構,通過IE瀏覽器,用戶可以方便地進行系統的相關操作,符合用戶日常互聯網操作習慣,同時采用Flex技術,實現手機控制。
(2)系統性能設計
核心通信程序采用C代碼實現,通過MemCache解決資源鎖定和占用;數據存儲采用結構文件方式,提高查詢、讀寫效率;數據庫SQL語句拼寫采取優化措施,提高執行效率。
(3)安全性設計
系統安全性設計主要從以下3個層次進行設計:
◆系統級安全。支持IP端的訪問限制,登錄時間段的限制,連接數的限制,特定時間段內登錄次數的限制。
◆平臺資源訪問控制安全。對程序資源的訪問進行安全控制,在客戶端上,為用戶提供和其權限相關的用戶界面,僅出現和其權限相符的菜單、操作按鈕;在服務端則對URL程序資源和業務服務類方法的調用進行訪問控制。
◆數據域安全。對不同權限的用戶,對所能訪問操作的數據域進行功能限制,所有交互數據和報表數據都采用加密算法進行加密,確保數據安全。
根據上文的設計,對基于B/S的終端應用自動撥測系統進行開發實現。操作系統使用Freebsd8.0-RELEASE,數據庫使用MySQL5.5.9,WEB服務器軟件使用apache-2.2.17,WEB開發技術采用php-5.2.17+memcache-1.4.5+Flex,客戶端使用IE8.0或Firefox3.0及以上的瀏覽器。SIM卡池設計成16卡槽、4通道,可以同時與4臺終端進行通信。終端池包括基于Android的三星I9008、基于iOS的iPhone4、基于Windows Phone的諾基亞920T和基于Symbian的諾基亞E62等4款手機。WEB系統包括3個主要模塊,分別為WEB服務模塊、數據服務模塊和通信服務模塊,根據實際需求,部署在同一個服務器。
下面給出系統實現的部分截圖。
(1)SIM卡池
SIM卡池示意圖如圖4所示。
(2)腳本編輯頁面
腳本編輯頁面示意圖如圖5所示。

圖4 SIM卡池

圖5 腳本編輯頁面

圖6 撥測指標統計報表
(3)撥測指標統計報表
撥測指標統計報表示意圖如圖6所示。
基于B/S的終端應用自動撥測系統彌補了現有人工撥測的不足,自動撥測比手工撥測可靠性更高,自動撥測可在任何時間內進行,提高了撥測效率、降低了撥測成本。
[1]李洪,渠凱,邱墨楠.移動業務撥測實現方式探討[J].電信技術, 2009(12): 41-43.
[2]曾新民.增值業務撥測系統的研究與實現[J].廣東通信技術, 2008,28(6): 47-49.
[3]黃昭文.數據業務撥測網絡開發與實施[J].廣東通信技術, 2006,26(2): 51-56.
[4]王其敏.移動業務撥測報表系統的設計與實現[D].北京: 北京郵電大學, 2010.
[5]李雪生.基于EJB與Hibernate的業務撥測系統的研究與實現[D].武漢: 武漢理工大學, 2009.