diff options
author | Bill Napier <napier@google.com> | 2010-10-18 00:00:20 -0700 |
---|---|---|
committer | Bill Napier <napier@google.com> | 2010-10-18 13:54:38 -0700 |
commit | 6db57208c8fb964bba0bc6da098e8aac94ea6b93 (patch) | |
tree | 0e61f339dda319b881e2adccf24945c247a29777 /monkeyrunner/scripts | |
parent | 7564d1720b5505dde7a9a9a6ec000757a8e42cbf (diff) | |
download | sdk-6db57208c8fb964bba0bc6da098e8aac94ea6b93.zip sdk-6db57208c8fb964bba0bc6da098e8aac94ea6b93.tar.gz sdk-6db57208c8fb964bba0bc6da098e8aac94ea6b93.tar.bz2 |
Initial cut at MonkeyRecorder.
MonkeyRecorder (and MonkeyPlayback) are a set of tools for using MonkeyRunner to record and playback actions. The current implementation is not very sophisticated, but it works.
Please don't review yet. Needs a lot of style cleanup.
Change-Id: Id300a27294b5dc13a842fade900e8b9916b8a17b
Diffstat (limited to 'monkeyrunner/scripts')
-rw-r--r-- | monkeyrunner/scripts/monkey_playback.py | 70 | ||||
-rw-r--r-- | monkeyrunner/scripts/monkey_recorder.py | 20 |
2 files changed, 90 insertions, 0 deletions
diff --git a/monkeyrunner/scripts/monkey_playback.py b/monkeyrunner/scripts/monkey_playback.py new file mode 100644 index 0000000..45d801a --- /dev/null +++ b/monkeyrunner/scripts/monkey_playback.py @@ -0,0 +1,70 @@ +#!/usr/bin/env monkeyrunner +# Copyright 2010, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from 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(): + file = sys.argv[1] + fp = open(file, 'r') + + device = MonkeyRunner.waitForConnection() + + process_file(fp, device) + fp.close(); + + +if __name__ == '__main__': + main() + + + diff --git a/monkeyrunner/scripts/monkey_recorder.py b/monkeyrunner/scripts/monkey_recorder.py new file mode 100644 index 0000000..29e6e50 --- /dev/null +++ b/monkeyrunner/scripts/monkey_recorder.py @@ -0,0 +1,20 @@ +#!/usr/bin/env monkeyrunner +# Copyright 2010, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from com.android.monkeyrunner import MonkeyRunner as mr +from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder + +device = mr.waitForConnection() +recorder.start(device) |