我想使用 AndroidViewclient 连接到两个多台设备(设备 1、设备 2)以自动化测试用例,我必须从设备 1 拨打电话并在设备 2 上接听电话。请帮助如何同时连接到两个设备。
问问题
1181 次
1 回答
0
更新
culebra现在支持多设备模式,因此不再需要此答案中描述的步骤。说明、示例和视频显示在 3 个不同设备上同时运行的相同测试可以在android: culebra 多设备功能中找到。
回答
一如既往。我的建议是让culebra创建您的脚本,然后您可以调整它。 culebra将为一个设备生成一个脚本,然后您可以为另一个设备复制这些行,或者如果需要,您可以遍历设备列表。
这是由(将serialno1和serialno2替换为设备的实际序列号)生成的修改脚本:
$ culebra -VC -d on -t on -o myscript.py serialno1
修改后myscript.py
看起来像这样:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Copyright (C) 2013 Diego Torres Milano
Created on 2013-11-28 by Culebra v4.5.2
__ __ __ __
/ \ / \ / \ / \
____________________/ __\/ __\/ __\/ __\_____________________________
___________________/ /__/ /__/ /__/ /________________________________
| / \ / \ / \ / \ \___
|/ \_/ \_/ \_/ \ o \
\_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
'''
import re
import sys
import os
try:
sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
pass
from com.dtmilano.android.viewclient import ViewClient
kwargs1 = {'verbose': True, 'ignoresecuredevice': False}
device1, serialno1 = ViewClient.connectToDeviceOrExit(serialno='serialno1', **kwargs1)
device2, serialno2 = ViewClient.connectToDeviceOrExit(serialno='serialno2', **kwargs1)
kwargs2 = {'startviewserver': True, 'forceviewserveruse': False, 'autodump': False, 'ignoreuiautomatorkilled': True}
vc1 = ViewClient(device1, serialno1, **kwargs2)
vc2 = ViewClient(device2, serialno2, **kwargs2)
vc1.dump(window='-1')
vc2.dump(window='-1')
no_id1_1 = vc1.findViewById("id/no_id/1")
print no_id1_1
no_id1_2 = vc2.findViewById("id/no_id/1")
print no_id1_2
这将同时连接到两个设备,获取转储,并在两个设备上找到一个带有 id 的视图id/no_id/1
并打印结果。
于 2013-11-28T21:34:14.903 回答