MonkeyDevice.instrument (строковый класс, аргументы словаря) отображается на команды InstrumentationTestRunner . В документации Android есть хорошая информация о команде инструментовки, здесь .
В документации НЕ сказано, как указывать аргументы. Я нашел это в исходном коде Android. См. AdbChipDevice, строка 483 . Вот копия и вставка кода:
482 @Override
483 public Map<String, Object> instrument(String packageName, Map<String, Object> args) {
484 List<String> shellCmd = Lists.newArrayList("am", "instrument", "-w", "-r");
485 for (Entry<String, Object> entry: args.entrySet()) {
486 final String key = entry.getKey();
487 final Object value = entry.getValue();
488 if (key != null && value != null) {
489 shellCmd.add("-e");
490 shellCmd.add(key);
491 shellCmd.add(value.toString());
492 }
493 }
494 shellCmd.add(packageName);
495 String result = shell(shellCmd.toArray(ZERO_LENGTH_STRING_ARRAY));
496 return convertInstrumentResult(result);
497 }
Итак, следующий код обезьяны python:
params = dict()
params['size'] = 'small'
device = MonkeyRunner.waitForConnection()
device.instrument('com.mycompany.myapp/android.test.InstrumentationTestRunner', params)
Эквивалентно следующей команде:
adb shell am instrument -w -r -e size small com.mycompany.myapp/android.test.InstrumentationTestRunner