最近一段時(shí)間在學(xué)習(xí)自動(dòng)化測試,先是使用了monkey屡谐,monkeyscript知市,再接著是現(xiàn)在的monkeyrunner量瓜。學(xué)習(xí)monkeyrunner先是花了大量時(shí)間做了準(zhǔn)備工作,因?yàn)槭褂胢onkeyrunner需要用到Python這門語言,所以自己花了大半個(gè)月的時(shí)間去學(xué)習(xí)了Python的一些基本語法俩功。
使用monkeyrunner之前需要配置好Android開發(fā)環(huán)境幻枉,這一步應(yīng)該都好,畢竟做Android開發(fā)的很多诡蜓,網(wǎng)上資料很多熬甫,再不行就請教公司里的開發(fā)人員幫忙配置。
以下進(jìn)入正題蔓罚,第一次寫這種東西椿肩,有不對之處還請勿噴(寫給噴子看),有錯(cuò)誤之處還請不吝賜教豺谈,共同進(jìn)步郑象。
一、準(zhǔn)備工作
利用monkeyrunner啟動(dòng)應(yīng)用之前茬末,必須要先知道該應(yīng)用的package和Activity厂榛,如何獲取呢?網(wǎng)上大多給的是Android自帶的aapt進(jìn)行獲取丽惭,在這里給出另一種方法噪沙,使用命令行直接獲取(前提是手機(jī)要連接電腦吐根,并且已經(jīng)安裝了應(yīng)用正歼,手機(jī)處于主頁位置):
1、先確認(rèn)手機(jī)已經(jīng)連接到電腦拷橘,并且可以調(diào)試:
adb devices
執(zhí)行這個(gè)命令后局义,終端就會(huì)出現(xiàn)對應(yīng)手機(jī)的id,出現(xiàn)id就代表我們可以進(jìn)行下一步操作冗疮,而且這個(gè)id我們還有可能會(huì)用到萄唇。
2、打開terminal术幔,輸入命令行:adb logcat | grep START另萤。出來一串結(jié)果,如圖:
此時(shí)點(diǎn)擊需要測試的App诅挑,又出來一串類似的結(jié)果:
補(bǔ)充:這里的前提是我們的手機(jī)上已經(jīng)安裝了需要測試的App没龙,但是如果App還在持續(xù)開發(fā)中铺厨,發(fā)布頻率不是很高缎玫,難道每次都要找開發(fā)人員安裝App,聽起來是不是很煩解滓?在這里介紹一個(gè)方法赃磨,只需要開發(fā)人員提供apk,咱們就可以自己安裝到手機(jī)上洼裤,命令行如下:
adb install apk的路徑邻辉。如圖:
二、啟動(dòng)monkeyrunner
很多人都在這里耗費(fèi)比較長時(shí)間在扰,總是起不來monkeyrunner缕减。在剛才的基礎(chǔ)上重起(command+N)一個(gè)terminal窗口,直接執(zhí)行命令行:
monkeyrunner
就可以啟動(dòng)了芒珠,進(jìn)入了交互模式桥狡。然后在交互模式狀態(tài)導(dǎo)入monkeyrunner需要的類(一共三個(gè)類,這里不是全部用到皱卓,但是我一并導(dǎo)入):
from com.android.monkeyrunner import MonkeyRunner,MonkeyImage,MonkeyDevice
回車裹芝,又進(jìn)入交互模式,連接設(shè)備(不連接設(shè)備娜汁,monkeyrunner也是無能為力啊嫂易,哈哈):
device = MonkeyRunner.waitForConnection(3.0,'2babc241')
函數(shù)后面的括號里的參數(shù)可以不填寫,如果只鏈接一部手機(jī)掐禁。如果電腦同時(shí)鏈接多部手機(jī)則需要填寫了怜械。解釋:參數(shù)一,3.0.表示鏈接手機(jī)等待的時(shí)間傅事,在這個(gè)時(shí)間仍未連接成功則拋出異常缕允,參數(shù)二,2babc241蹭越。表示手機(jī)的id障本。
本節(jié)內(nèi)容最重要的一步,啟動(dòng)應(yīng)用响鹃,輸入命令行:
device.startActivity(component='com.zywulian.smartlife/com.zywulian.smartlife.ui.splash.RootActivity')驾霜。
這樣就會(huì)把應(yīng)用啟動(dòng)了,接著就可以進(jìn)行其他操作了买置。
解釋:device.startActivity(component='package name/Activity name')寄悯。
當(dāng)然了,這只是最簡單的堕义,我們最終還是需要在編輯器里進(jìn)行編寫Python腳本猜旬,從而運(yùn)行腳本脆栋。因?yàn)槲疫€不會(huì)使用簡書把腳本內(nèi)嵌進(jìn)來,所以暫時(shí)先不講了洒擦,有需要的可以聯(lián)系我椿争,我們共同學(xué)習(xí)。
是不是很簡單熟嫩,祝你學(xué)習(xí)愉快秦踪。
注意:如果使用 monkeyrunner 不能直接運(yùn)行,可以進(jìn)入到 monkeyrunner 所在的目錄下進(jìn)行操作掸茅,我的 monkeyrunner 所在的路徑是:
/Users/yonghuming/Library/Android/sdk/tools/bin
如圖:
可以直接雙擊 monkeyrunner椅邓,也可以使用命令行在終端啟動(dòng):“./monkeyrunner”(雙引號“”中間的部分是命令行)。運(yùn)行成功即進(jìn)入交互模式昧狮,如圖: