monkeyrunner為我們提供了錄制 回放的功能。
錄制與回放使用原因:實際項目,需求變更頻繁,且測試任務多,我們沒有足夠時間去寫測試腳本,這是就可以進行錄制腳本,然后通過回放,跑完需要的流程。
一、前提條件
1.Windows運行環境
2.android sdk安裝並已配置好環境
3.手機或模擬器已連接電腦
二、MonkeyRecorder啟動
1.方式一:直接在monkeyrunner交互命令行輸入以下4條命令:
from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder device = mr.waitForConnection(5,'127.0.0.1:62001') recorder.start(device)
注意:monkeyrunner交互命令行,即在cmd中輸入monkeyrunner

2.方式二:將以上代碼寫到python腳本中,並命名monkey_recorder.py,cmd命令行中輸入monkeyrunner monkey_recorder.py,進行打開

注意:這里的monkey_recorder.py需要拷貝到和monkeyrunner同級目錄下,即sdk/tools
三、錄制
1.工具簡介


2.錄制
MonkeyRecorder啟動后,界面上顯示的內容就是已連接的手機或模擬器當前屏幕的內容。
用鼠標點擊這個界面,點擊的坐標就會被記錄下來,同時結合MonkeyRecorder界面頂部的按鈕,即可進行錄制。
如下圖,我對app登錄界面,進行如下操作:
1)鼠標點擊“手機號碼”輸入框
2)“手機號碼”輸入框中輸入登錄用的手機號碼
3)等待2秒
4)鼠標點擊“密碼”輸入框
5)“密碼”輸入框中輸入登錄用的密碼
6)等待2秒
7)鼠標點擊“登錄”按鈕

四、回放
錄制完成后,就可以進行回放,操作步驟如下:
1.點擊Export Actions,導出我們錄制時的操作,在本地生成一個文件,並根據需要命名:xxx.mr
2.將錄制的文件(假如命名為test.mr),拷貝到和monkeyrunner同級目錄下,即sdk/tools
3.將回放的腳本monkey_playback.py,同樣保存在sdk/tools下;
monkey_playback.py代碼如下:
import sys from com.android.monkeyrunner import MonkeyRunner CMD_MAP = { "TOUCH": lambda dev, arg: dev.touch(**arg), "DRAG": lambda dev, arg: dev.drag(**arg), "PRESS": lambda dev, arg: dev.press(**arg), "TYPE": lambda dev, arg: dev.type(**arg), "WAIT": lambda dev, arg: MonkeyRunner.sleep(**arg) } #Process a single file for the specified device. def process_file(fp, device): for line in fp: (cmd, rest) = line.split("|") try: rest = eval(rest) except: print ("unable to parse options") continue if cmd not in CMD_MAP: print ("unknown command: " + cmd) continue CMD_MAP[cmd](device, rest) def main(): file = sys.argv[1] fp = open(file, "r") device = MonkeyRunner.waitForConnection() process_file(fp, device) fp.close(); if __name__ == "__main__": main()
4.在cmd命令行中輸入命令:monkeyrunner monkey_playback.py test.mr,運行
5.回放完成
