◆版權聲明:本文出自胖喵~的博客,轉載必須注明出處。
轉載請注明出處:http://www.cnblogs.com/by-dream/p/4861693.html
前言
在實際項目進行過程中,頻繁的需求變更和突如其來的測試任務,不會留給我們過多的時間去寫測試腳本,這個時候如果可以進行錄制我的一次操作,然后自動的回放出來,那么就能夠節省很多的時間。
恰好monkeyrunner幫我們提供了可以錄制 回放的功能。
發現一個看源碼的網址:http://124.16.141.157/lxr-0101/source/sdk/monkeyrunner/scripts/?v=android-4.0.4
錄制
很簡單,四條命令遍可以打開MonkeyRecorder
from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder device = mr.waitForConnection() recorder.start(device)
可以選擇在cmd中打開,也可以將命令寫到python腳本中進行打開(其實這就是 Android源代碼 /source/sdk/monkeyrunner/scripts/ 目錄下的 monkey_recorder.py 腳本的內容)。
cmd中的打開方式
打開后界面如下圖所示:
介紹一下這個工具的簡單用法,MonkeyRecorder主要用來錄制測試者操作的整個過程,在打開這個軟件之前,你需要保證你的手機設備已經成功連接了電腦。這個界面上顯示的內容就是你手機當前屏幕的內容。
用鼠標點擊這個界面,點擊的坐標就會被記錄下來,這樣就算是錄制了你的點擊事件。我們知道一個相對完整的腳本僅有點擊事件是不夠的,那么其他的一些事件如何添加的,那就得依靠上面的按鈕:
Wait: 相當於在sleep,在每一步和每一步操作中間有時候需要添加一個等待,以防止點擊速度過快有些ui還沒跳轉成功。
輸入數字后,點擊確定,在屏幕的右側,就可以看到 “Wait for 2.00000 seconds” 的字樣了
Press a Button: 相當於MonkeyDevice.press 的命令,用來模擬“home鍵點擊”,“back鍵按下、抬起” 等事件。
Type Something: 相當於type,輸入文本用的。
Fling: 模擬滑動事件。
Refresh Display: 刷新一下,同步手機端的屏幕。
Export Actions: 導出我們剛才操作的動作,右邊紅框內就是剛才操作的內容。
導出后,在本地生成一個文件,這個文件將來我們就用它來進行回放。導出后的文件內容:
回放
首先將我們錄制的文件(假如文件名為123),拷貝到和monkeyrunner同級目錄下。
然后還需一個腳本,腳本的內容如下:
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()
將該腳本也保存到根目錄下,命令為 replay.py。
然后直接運行在命令行下: monkeyrunner.bat replay.py 123 即可完成回放。