【Android测试】MonkeyRunner之录制回放
在實際項目進行過程中,頻繁的需求變更和突如其來的測試任務,不會留給我們過多的時間去寫測試腳本,這個時候如果可以進行錄制我的一次操作,然后自動的回放出來,那么就能夠節省很多的時間。
恰好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()
將該腳本也保存到根目錄下,命令為 repaly.py。
然后直接運行在命令行下: monkeyrunner.batrepaly.py123 ?即可完成回放。
總結
以上是生活随笔為你收集整理的【Android测试】MonkeyRunner之录制回放的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: .NET CoreMVC添加登录过滤器
 - 下一篇: Android逆向学习---静态分析反调