我使用此脚本同时连接到多个Android设备(即通过adb发送文件):
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import time
import sys
import time
import os
devices = os.popen('adb devices').read().strip().split('\n')[1:]
device1 = MonkeyRunner.waitForConnection( devices[0].split('\t')[0])
package = 'com.android.browser'
activity = 'com.android.browser.BrowserActivity'
runComponent = package + '/' + activity
device1.startActivity(component=runComponent)
MonkeyRunner.sleep(1)
device2 = MonkeyRunner.waitForConnection( devices[1].split('\t')[0])
package = 'com.android.browser'
activity = 'com.android.browser.BrowserActivity'
runComponent = package + '/' + activity
device2.startActivity(component=runComponent)
我用过
adb 1.0.36 (Rev 1:7.0.0+r33-2) and
monkyrunner(Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35)
但是我得到的是:
09:02:54 E/DeviceMonitor: Adb connection Error:EOF
09:02:54 E/DeviceMonitor: Connection attempts: 1
09:02:55 E/DeviceMonitor: Connection attempts: 2
09:02:56 E/DeviceMonitor: Connection attempts: 3
任何提示怎么办?
谢谢!
(原始线程:How to run Monkeyrunner script on multiple devices at the same time)
答案 0 :(得分:0)
您可以使用支持多种设备的AndroidViewClient/culebra。如果我没记错的话,这是AndroidViewClient解决的monkeyrunner
局限性之一。
您只需使用以下命令即可生成脚本
$ culebra -Uu --multi-device --start-activity='com.android.chrome/com.google.android.apps.chrome.Main' -o multi-browser.py
生成单元测试(-U
),不验证屏幕转储(-u
)中的内容,使用多个设备,启动特定活动作为前提,并将生成的脚本保存到{ {1}}。
然后,将脚本运行为
multi-device.py
其中$ multi-browser.py -s all
指定要运行脚本的设备的序列号,在这种情况下为-s
,浏览器将在所有设备上启动。