歡迎來到趙小歪的Android世界楼熄,最近在學(xué)習(xí)Android monkey測試,并小試牛刀編寫了第一個簡單的monkey腳本,并成功運(yùn)行排监,故而記錄下來與大家分享。
monkey杰捂,作為Android自動化測試的利器舆床,有其強(qiáng)大之處,而其基本命令網(wǎng)上大致都有資料可以查詢嫁佳,本篇文章主要從monkey腳本的角度出發(fā)挨队,帶大家了解Windows平臺下monkey腳本的搭建以及運(yùn)行過程,讓我們開始這次旅程吧蒿往!
1.SDK配置
對于Android開發(fā)者來說盛垦,Android SDK我想都不陌生,下載完整的Android SDK后瓤漏,將文件夾platform-tools路徑添加到環(huán)境變量中腾夯,以便能使用adb以及fastboot命令省撑,配置完成后可以通過在命令提示窗口運(yùn)行adb version查看adb是否成功安裝。
2.配置Android模擬器
對于使用Android真機(jī)的同學(xué)可以忽略這個部分俯在。對于Android模擬器我使用的是Genymotion竟秫,Genymotion以其運(yùn)行速度快,資源占用少的優(yōu)勢被眾多Android開發(fā)人員使用跷乐。Genymotion的安裝過程也很簡單肥败,具體步驟如下:
a.首先登錄Genymotion官網(wǎng):www.genymotion.net。
b.點(diǎn)擊注冊按鈕進(jìn)行注冊愕提,并進(jìn)入注冊使用的郵箱查看激活郵件馒稍,點(diǎn)擊激活鏈接進(jìn)行激活。成功注冊后點(diǎn)擊Download進(jìn)入如下頁面:
c.若機(jī)器上已經(jīng)安裝了VirtualBox直接下載without VirtualBox的版本浅侨,若沒有安裝選擇with VirtualBox的版本纽谒。下載完成后直接進(jìn)行安裝即可,安裝完成打開Genymotion如输。
d.點(diǎn)擊Setting按鈕進(jìn)入設(shè)置頁面鼓黔,選擇ADB Tab后選擇Use custom Android SDK tools,并將安裝的SDK路徑添加進(jìn)去即可不见。
e.在配置完成SDK路徑后澳化,我們創(chuàng)建自己的Android模擬器。這里在Your virtual devices中已經(jīng)存在一個我配置的模擬器稳吮,我們可以通過點(diǎn)擊Add按鈕創(chuàng)建一個新的模擬器缎谷,但在創(chuàng)建之前需要將VirtualBox打開,然后點(diǎn)擊Add按鈕灶似。
f.選擇想要安裝的模擬器進(jìn)行下載安裝即可列林,安裝完成后選中想要打開的模擬器,點(diǎn)擊Start按鈕酪惭,啟動模擬器希痴,經(jīng)過短暫的等待后,模擬器成功啟動撞蚕。
3.Python環(huán)境安裝
對于不想安裝Python的同學(xué)可以跳過這個步驟润梯。首先安裝Python環(huán)境,成功后安裝PyCharm集成開發(fā)環(huán)境(為將來學(xué)習(xí)monkeyrunner編寫腳本提供方便)
4.編寫monkey腳本并進(jìn)行測試
我們選擇Android原生瀏覽器作為測試目標(biāo)甥厦,打開瀏覽器我們看到如下界面:
我們需要編寫的腳本很簡單纺铭,主要功能如下:
1)啟動Browser應(yīng)用
2)在網(wǎng)址輸入框中輸入網(wǎng)址,如www.baidu.com
3)點(diǎn)擊加載按鈕
下面我們分步來完成這些工作刀疙,首先是啟動Browser應(yīng)用舶赔,對于monkey而言,我們可以使用LaunchActivity函數(shù)來啟動應(yīng)用谦秧,但需要傳遞應(yīng)用的包名以及Activity名竟纳。我們在模擬器中打開瀏覽器撵溃,然后打開命令提示框,輸入adb shell進(jìn)入shell锥累,輸入命令logcat | grep START查看當(dāng)前正在運(yùn)行的應(yīng)用程序以及包名和Activity名缘挑。
在成功啟動應(yīng)用后,我們需要在網(wǎng)址輸入框中輸入網(wǎng)址桶略,這里我們需要點(diǎn)擊輸入框语淘,輸入網(wǎng)址文本后點(diǎn)擊軟鍵盤的回車按鈕使輸入的網(wǎng)址進(jìn)入EditText控件中。對于點(diǎn)擊輸入框际歼,我們可以通過函數(shù)DispatchPointer來完成惶翻,該函數(shù)重要的是第三、四鹅心、五三個參數(shù)吕粗,第三個參數(shù)表示點(diǎn)擊動作的類型,類型有:ACTION_DOWN=0,ACTION_UP=1,ACTION_MULTIPLE=2旭愧。第四個參數(shù)以及第五個參數(shù)表示點(diǎn)擊的位置的x坐標(biāo)以及y坐標(biāo)颅筋,這里對于點(diǎn)擊位置的獲取,我們可以通過使用Google提供的uiautomatorviewer工具來獲取榕茧。該工具位于SDK tools目錄下垃沦,進(jìn)入該目錄客给,按住shift鍵不松用押,點(diǎn)擊鼠標(biāo)右鍵選擇在此處打開命令窗口,打開后輸入uiautomatorviewer.bat腳本運(yùn)行uiautomatorviewer靶剑。
選中需要點(diǎn)擊的控件蜻拨,如EditText即我們要輸入網(wǎng)址的控件,在右側(cè)我們會看到該控件的有效范圍桩引,我們只需要保證點(diǎn)擊位置的x以及y坐標(biāo)在這個范圍內(nèi)即可缎讼。對于輸入文本,我們可以使用函數(shù)DispatchString來完成坑匠,輸入文本后通過使用函數(shù)DispatchPress并傳入?yún)?shù)66(軟鍵盤回車按鈕的key code)來完成點(diǎn)擊軟鍵盤回車按鈕操作血崭。完成網(wǎng)址的輸入工作后,我們需要點(diǎn)擊加載按鈕厘灼,我們同樣可以通過DispatchPointer函數(shù)來完成夹纫,點(diǎn)擊位置仍然通過uiautomatorviewer來獲取。在所有的操作過程中我們可以通過使用函數(shù)UserWait函數(shù)來設(shè)置等待時間设凹。完整的腳本如下:
5.腳本編寫完畢后舰讹,使用adb push命令將腳本push到模擬器中,在push之前使用adb remount掛載系統(tǒng)分區(qū)闪朱,push成功后執(zhí)行命令adb shell monkey命令運(yùn)行腳本月匣,對于使用monkey命令只執(zhí)行一次腳本的原因钻洒,在上面完整的腳本圖片中有說明。具體運(yùn)行腳本命令格式如下所示锄开。
6.執(zhí)行腳本后我們會看到模擬器成功啟動Browser應(yīng)用素标,并在網(wǎng)址輸入框中輸入www.baidu.com,并且點(diǎn)擊加載按鈕萍悴,加載網(wǎng)站(瀏覽器網(wǎng)址不是www.baidu.com是因為輸入該網(wǎng)址后點(diǎn)擊加載按鈕自動鏈到百度的手機(jī)客戶端地址)
這是小歪的第一篇簡書技術(shù)類型的文章糯钙,語言組織有不到位的地方還希望各位看官見諒,小歪一直相信退腥,未來的路還很長任岸,只要有一顆永遠(yuǎn)不停止學(xué)習(xí)的心,追求卓越狡刘,總有一天會強(qiáng)大起來享潜。