MonkeyDevice.instrument(string class , dictionary args)映射到InstrumentationTestRunner commands。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