如何使用AndroidViewClient连接多个设备

发布于 2021-01-29 16:46:30

我想使用AndroidViewclient连接到两个多个设备(device1,device2)以自动化测试用例,其中我必须从device1拨打电话并在device2上接听电话。请帮助如何同时连接两个设备。

关注者
0
被浏览
46
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    更新资料

    库莱布拉 现在支持 多设备
    模式,因此不再需要此答案中描述的步骤。可以在android上找到说明,示例和视频,其中显示了在3个不同设备上同时运行的同一测试。culebra multi-
    device functions

    回答

    一如既往。我的建议是让
    culebra
    创建您的脚本,然后您可以对其进行调整。 culebra 将为一个设备生成脚本,然后您可以为另一设备复制这些行,或者在需要时可以遍历设备列表。

    这是生成的修改后的脚本(用 设备 的实际序列号替换 serialno1serialno2 ):

    $ 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的Viewid/no_id/1并打印结果。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看