李冬睿 邱尚明 劉琳
摘要:隨著移動互聯網的逐步興起以及智能手機的不斷更新,移動應用的普及以及數量的逐步提升已經成為當前智能手機發展的主要方向,相應的應用測試也發揮著重要的作用。本文將會對Andriod的發展概況做出詳細的闡述,并從其測試原理出發,分析Andriod自動化測試工具的測試情況,為自動化測試的發展提供一定的參考。
關鍵詞:Andriod自動化測試;Robotium;移動應用
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9416(2018)01-0092-02
1 Android測試的原理介紹
Android常用的自動化測試工具框架:
Monkey,MonkeyRunner,UIAutomator,Robotium,Appium,Monkey Talk.Android常用的測試框架如圖1所示。
2 測試要求
為了實現對Robotium的詳細介紹,本文會結合移動端QQ實時聊天工具進行測試,包括登錄、聊天、語音等方面的內容。研究過程中所采用的主要指標包含了以下幾點:(1)啟動時延,它可以來確認應用程序加載過程中所消耗的時間。(2)輸入時間,用自動化測試工具傳到登錄界面并輸入賬號和密碼所用的時間。(3)應用等待時間,即用戶在登錄成功后進行任意功能所消耗的時間。(4)網絡響應時間,在用戶進入聊天發送或語音請求后到達對方的響應時間。(5)CPU占用百分比。當Mobile QQ在運行過程中所占據的CPU峰值。(6)內在占用百分比。當Mobile QQ在運行過程中所占據的內存數值。(7)產生流量,運行操作時產生的下行流量。總的來說,測試中會依據上述步驟進行至少60次的測試操作,最終將其結果保留到相應文件中,這樣不僅可以有效了解Mobile QQ的運行穩定性,也能為后續開發者的持續改善與優化提供一些新的思路。
3 測試中的準備工作
3.1 簽名工具
需要測試的程序會以APK文件的形式進行,其簽名為re-sign.Jar,而自動化測試工具Robotium的使用需要將測試程序與被測試程序之間的簽名保持一致,因此,在測試準備工作中需要對被測試的程序簽名進行修改。當簽名被修改之后會形成一項新的APK文件,為后續的測試進行提供支持。
3.2 搭建測試環境
在實施測試的過程中,搭建測試環境是其操作準備工作中的主要內容。本研究中測試環境主要是對JDK以及Android SDK開發工具的安裝,確保其運行的穩定性。測試過程中使用的開發包為是robotium-solo-5.0.1.jar,它是一項能夠有效通過控件獲取來模擬用戶操作的軟件,這其中包含了輸入、滑動、點擊等內容。
4 測試過程
在做完相應的準備工作之后,對Robotium的測試便可以按以下幾個步驟來進行:
4.1 測試代碼
首先,通過創建QQTest測試文件,將新獲取簽名的測試程序當作測試工程,并將簽名導入進去,編寫測試用例。第二,根據測試要求所指出的幾項測試指標進行測試,這些時間的統計上計算方法大多相似,在對各項指標時間測試的開始與結束時獲取相應的系統時間,以此來確認最終的結果。第三,測試指標中涉及的下行流量以及CPU峰值,在測試方法上比較相似,本文從4.2.2版本的Android系統開始一項trafficstats類,并為每一項程序安裝時提供單獨的UID,并將流量信息傳入到手機相應目錄下。部分測試代碼如下:
public void testQQ() throws Exception{
//獲取當前的測試app的名稱
String appName = solo.getCurrentActivity().getClass().getSimpleName();
System.out.println(appName);
solo.getButton(0).getClass().getSimpleName();
solo.assertCurrentActivity(“Expected login activity”, appName);
System.out.println(solo.getButton(0).getText());//獲取第一個Button的名稱
solo.clickOnButton(“登錄”);
}
4.2 測試執行
在測試階段主要使用的執行方法有兩項,一種是利用Eclipse來將計算機與手機設備相互連接,并利用Run as Android JUnit Test來運行相關的測試工程;另外一種則是通過命令行的方式來進行執行。將測試代碼編寫為APK文件,并將其安裝到模擬器或者手機設備中,然后讓其能夠利用adb命令來實現腳本的運行。
5 測試結論
根據上述步驟進行測試,從打開應用、QQ登錄、打開聊天界面發送文字聊天的時間總共持續了45秒,這是自動化測試所得出的結果。如果利用人工方式的測試,則很難達到這個狀態,不僅重復性枯燥的工作讓人難受,浪費了大量的人力,也容易導致工作效率低下,測試穩定性與準確性難以得到保障。因此,通過測試工具Robotium則可以很好的解決上述問題,其持續性自動化的測試也幫助快速獲取到相應的測試結果,以此來解決相關的問題。根據上文對Mobile QQ的測試我們發現,其操作流暢,在黑盒測試中用例編寫簡單,且測試執行效率較高,可讀性強,能夠同時在多個設備中保持正常運行狀態,從而為Android手機應用程序測試提供了新的發展方向。
參考文獻
[1]祝陽陽,侯永宏,王寶亮. Android自動化測試工具Robotium的應用與研究[J].信息技術,2015(10):198-200+205.
[2]鄭婷婷,黃英持.Android應用的多設備自動化測試實現[J].軟件導刊,2016,15(02):95-97.