上一文中我們已經對MonkeyRunner啟動一個應用程序有了初步的了解,本文將舉例來加深對MonkeyRunner執行Python腳本的理解。
目標:對手機短信程序進行壓力測試。
代碼如下:
1 #導入我們需要用到的包和類並且起別名 2 import sys 3 from com.android.monkeyrunner import MonkeyRunner as mr 4 from com.android.monkeyrunner import MonkeyDevice as md 5 from com.android.monkeyrunner import MonkeyImage as mi 6 #connect device 連接設備 7 #第一個參數為等待連接設備時間 8 #第二個參數為具體連接的設備ID 9 device = mr.waitForConnection(1.0,‘device_id’) 10 if not device: 11 print >> sys.stderr,"fail" 12 sys.exit(1) 13 #定義要啟動的Activity 14 componentName='com.android.mms/.ui.BootActivity' 15 #啟動特定的Activity 16 device.startActivity(component = componentName) 17 #等待時間,防止操作太快,設備反應不及時 18 mr.sleep(1.0) 19 #do someting 進行我們的操作 20 #新建短信 21 #參數是屏幕上坐標值,最后一個參數是動作 22 device.touch(57,747,'DOWN_AND_UP') 23 mr.sleep(1.0) 24 #輸入收件人號碼 25 device.type('10086') 26 #發送短信條數 27 for i in range(0,10): 28 #輸入短信內容 29 device.touch(187,402,'DOWN_AND_UP') 30 device.type('Hello') 31 mr.sleep(1.0) 32 #發送短信 33 device.touch(432,380,'DOWN_AND_UP') 34 mr.sleep(1.0) 35 device.touch(51,752,'DOWN_AND_UP') 36 mr.sleep(1.0) 37 #takeSnapshot截圖 38 mr.sleep(1.0) 39 result = device.takeSnapshot() 40 #save to file 保存到文件,D盤的根目錄下 41 result.writeToFile('d:\\result2.png','png');
以上代碼很好理解,關鍵問題是如何解決坐標值。畢竟不同的設備分辨率是不一樣的,下面我們就來看看如何獲取屏幕上的坐標值。
注意:如果monkeyrunner腳本文件要使用中文,記得格式保存為utf-8.
屏幕坐標值的獲取
我們通過腳本錄制工具可以很方便的獲取屏幕上的坐標值,下載地址:http://115.com/file/e6r0sln9
下載解壓好后,我們在Cmd中運行“monkeyrunner monkey_playback.py”(運行時在monkey_recorder.py前加上它所在的路徑),就可以啟動腳本錄制工具了。如下圖所示:

紅色部分就是相應的坐標值了。
我們也可以保存以上腳本,通過運行“monkeyrunner monkey_playback test.mr”(test.mr為保存的腳本名),對腳本進行回放。
具體參考:http://www.cnblogs.com/youxilua/archive/2011/11/12/2246576.html
