初窺門徑-MonkeyRunner

前面的內(nèi)容請參見Android應(yīng)用自動化測試-提綱狂巢。
這篇開始我們來看從Android早期版本的SDK中就自帶的一個黑盒自動化測試工具-MonkeyRunner。雖然名字中也有Monkey恋脚,但是MonkeyRunner和Monkey基本沒有太大關(guān)系。Monkey是運行在Adb shell中的焰手,實際執(zhí)行在設(shè)備本身糟描。而MonkeyRunner則是通過PC端,由Android的API接口來控制設(shè)備书妻,進行自動化測試的執(zhí)行船响,其主要邏輯是在PC端完成的。
MonkeyRunner支持用Jython(Python腳本的java實現(xiàn)躲履,語法和Python一致)腳本完成自動化測試腳本见间,可以實現(xiàn)Monkey工具無法提供的邏輯控制、校驗等功能工猜。

在Google的官網(wǎng)上有對MonkeyRunner的介紹,并提供了一個腳本示例米诉,實現(xiàn)了應(yīng)用的安裝、啟動并對啟動后的界面完成截屏操作域慷。

# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()

# Installs the Android package. Notice that this method returns a boolean, so you can test
# to see if the installation worked.
device.installPackage('myproject/bin/MyApplication.apk')

# sets a variable with the package's internal name
package = 'com.example.android.myapplication'

# sets a variable with the name of an Activity in the package
activity = 'com.example.android.myapplication.MainActivity'

# sets the name of the component to start
runComponent = package + '/' + activity

# Runs the component
device.startActivity(component=runComponent)

# Presses the Menu button
device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP)

# Takes a screenshot
result = device.takeSnapshot()

# Writes the screenshot to a file
result.writeToFile('myproject/shot1.png','png')

MonkeyRunner主要由三大模塊組成:MonkeyRunner荒辕、MonkeyDevice、MonkeyImage

  • MonkeyRunner -- 包含一些通用的靜態(tài)方法
  • MonkeyDevice -- MonkeyRunner可以控制的設(shè)備或模擬器的實體類犹褒,可以完成發(fā)送UI事件抵窒、獲取設(shè)備信息、安裝卸載運行應(yīng)用等工作
  • MonkeyImage -- 圖像處理類叠骑,可以獲取當(dāng)前設(shè)備屏幕并完成基本校驗李皇。

MonkeyRunner工具位于Android SDK的tools目錄下,通過運行monkeyrunner.bat(Linux下monkeyrunner.sh)即可啟動MonkeyRunner的交互界面:

>monkeyrunner
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_91
>>>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宙枷,一起剝皮案震驚了整個濱河市掉房,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慰丛,老刑警劉巖卓囚,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诅病,居然都是意外死亡哪亿,警方通過查閱死者的電腦和手機粥烁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝇棉,“玉大人讨阻,你說我怎么就攤上這事〈垡螅” “怎么了钝吮?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長板辽。 經(jīng)常有香客問我奇瘦,道長,這世上最難降的妖魔是什么戳气? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任链患,我火速辦了婚禮,結(jié)果婚禮上瓶您,老公的妹妹穿的比我還像新娘。我一直安慰自己纲仍,他們只是感情好呀袱,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著郑叠,像睡著了一般夜赵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乡革,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天寇僧,我揣著相機與錄音,去河邊找鬼沸版。 笑死嘁傀,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的视粮。 我是一名探鬼主播细办,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蕾殴!你這毒婦竟也來了笑撞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤钓觉,失蹤者是張志新(化名)和其女友劉穎茴肥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荡灾,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瓤狐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年堕虹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芬首。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡赴捞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出郁稍,到底是詐尸還是另有隱情赦政,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布耀怜,位于F島的核電站恢着,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏财破。R本人自食惡果不足惜掰派,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望左痢。 院中可真熱鬧靡羡,春花似錦、人聲如沸俊性。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽定页。三九已至趟薄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間典徊,已是汗流浹背杭煎。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卒落,地道東北人羡铲。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像导绷,于是被迫代替她去往敵國和親犀勒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容