я хочу подключиться к двум нескольким устройствам (device1,device2) с помощью AndroidViewclient для автоматизации тестового примера, где мне нужно сделать вызов с устройства1 и принять вызов на устройстве2. Помогите, пожалуйста, как подключиться к двум устройствам одновременно.
как подключить несколько устройств с помощью AndroidViewClient
Ответы (1)
Обновлять
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/no_id/1
на обоих и распечатать результат.
AdbClient.getDevices()
, он может вернуть список со всеми устройствами.
- person Diego Torres Milano; 26.04.2016
-s all
для запуска на всех подключенных устройствах.
- person Diego Torres Milano; 28.04.2016