Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自動化測試之MonkeyRunner錄制和回放腳本

Android自動化測試之MonkeyRunner錄制和回放腳本

編輯:關於Android編程

對於MonkeyRunner,有些人可能會想,既然是Android自動化測試,離不開測試腳本,那麼,我們可不可以錄制測試腳本呢,答案是可以的。 我們先看看以下monkeyrecoder.py腳本: [html]   #Usage: monkeyrunner recorder.py   #recorder.py  http://mirror.yongbok.net/linux/android/repository/platform/sdk/monkeyrunner/scripts/monkey_recorder.py    com.android.monkeyrunner import MonkeyRunner as mr    com.android.monkeyrunner.recorder import MonkeyRecorder as recorder       device = mr.waitForConnection()    recorder.start(device)   #END recorder.py     首先,連接你已經打開調試模式的ANDROID設備或模擬器,然後運行上面的腳本,例如在cmd窗口中執行命令: monkeyrunner monkeyrecoder.py 執行下面的代碼後,將運行錄制腳本的程序: #Press ExportAction to save recorded scrip to a file   #Example of result: #PRESS|{""name"":""MENU"",""type"":""downAndUp"",} #TOUCH|{""x"":180,""y"":175,""type"":""downAndUp"",} #TYPE|{""message"":"""",} ================================================= 這種腳本需要另外一個monkeyrunner的腳本來解釋執行。monkeyplayback.py [html]   #Usage: monkeyrunner playback.py "myscript"      #playback.py   http://mirror.yongbok.net/linux/android/repository/platform/sdk/monkeyrunner/scripts/monkey_playback.py      import sys    com.android.monkeyrunner import MonkeyRunner      # The format of the file we are parsing is very carfeully constructed.   # Each line corresponds to a single command.  The line is split into 2   # parts with a | character.  Text to the left of the pipe denotes   # which command to run.  The text to the right of the pipe is a python   # dictionary (it can be evaled into existence) that specifies the   # arguments for the command.  In most cases, this directly maps to the   # keyword argument dictionary that could be passed to the underlying   # command.       # Lookup table to map command strings to functions that implement that   # command.   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:               # Parse the pydict               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():   www.2cto.com     file = sys.argv[1]       fp = open(file, ""r"")          device = MonkeyRunner.waitForConnection()              process_file(fp, device)       fp.close();             if __name__ == ""__main__"":       main()    ================================================= Usage:monkeyrunner playback.py "myscript"
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved