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