Now i want to automate the process to do this task--The monkeyrunner API can apply one or more test
suites across multiple devices or emulators. You can physically attach all the
devices or start up all the emulators (or both) at once, connect to each one in
turn programmatically, and then run one or more tests
i thought of doing this through monkeyrunner extending plugins concept, this concept doesn't help me becoz communicaton between two or more plugins creating a new problem. so ,please help me how to get my task done through other approach
Posted by vijju
A: Probably the best solution to your problem is based on the divide and conquer philosophy. Create your test scripts in a way that they receive a serial number argument to determine which device to connect to. The following is a very simple example of this concept. We will call it getprop.mr
Once we have our test script we need a driver to run it in every device we specify. In this example we will be using a python script but a bash script would be good enough.
I hope this is the answer you were looking for.
#! /usr/bin/env monkeyrunner
import sys, os
from com.android.monkeyrunner import MonkeyRunner
prog = os.path.basename(sys.argv[0])
def usage():
print >>sys.stderr, "usage: %s serial-no" % prog
sys.exit(1)
def main():
if len(sys.argv) != 2:
usage()
serialno = sys.argv[1]
print "waiting for connection to %s..." % serialno
device = MonkeyRunner.waitForConnection(30, serialno)
s = ""
for p in ['build.manufacturer', 'build.device', 'build.model']:
s += " " + device.getProperty(p)
print s
if __name__ == '__main__':
main()
This script expects the first argument to be the serial number of the emulator or device where the specific tests will be run. In this simple case we are just obtaining some properties to identify it.Once we have our test script we need a driver to run it in every device we specify. In this example we will be using a python script but a bash script would be good enough.
#! /usr/bin/env python
import os
devices = [ 'XXX00000001', 'emulator-5554' ]
cmd = 'getprop.mr'
for d in devices:
os.system(cmd + " " + d)
This script will run the test, getprop.mr in this case, for each of the devices which serial numbers are in the list.I hope this is the answer you were looking for.