如何使用Appium运行需要两个设备的测试

时间:2018-11-08 12:39:23

标签: appium

我了解到,为了使用Appium控制多个设备,我需要启动多个具有不同端口的Appium服务器。但是,当多个设备连接到主机时,我无法获得如何将部分测试目标定向到特定设备的方法。

我了解,以下是我需要做的两种配置,以便处理连接到计算机的多个设备。

  1. 端口设置:例如在webdriver初始化下方的4723中

    webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps_first_device)

  2. 所需的用于不同设备的电容,例如

    desired_caps_first_device = {'platformName':'Android','platformVersion':'7.0', 'deviceName':'gts210velte','appPackage':'package_name','appActivity':'activity_name'}

我有两个连接到机器的Android设备,并且两个都是相同的型号(deviceName)。我知道我可以创建两个驱动程序实例,但是Appium如何知道哪个实例适用于哪个物理设备?换句话说,我应该如何区分代码中的两个设备,以便我知道要在连接到机器的两个设备中的特定设备上执行一段代码?

3 个答案:

答案 0 :(得分:3)

udid的所需功能与您需要映射到所需服务器的设备的ID一起使用。

可以使用以下命令找到设备的ID:

$ adb devices

答案 1 :(得分:1)

我发现有一个名为udid的属性,当多个设备连接到主机时,可以将adb设备ID分配给目标特定的android设备。

例如

device_caps_first_device =  {'platformName': 'Android', 'platformVersion': '7.0', 'udid': 'xxxxxxx', 'deviceName': 'gts210velte', 'appPackage':'package_name', 'appActivity':'activity_name'}

device_caps_second_device =  {'platformName': 'Android', 'platformVersion': '7.0', 'udid': 'yyyyyyy', 'deviceName': 'gts210velte', 'appPackage':'package_name', 'appActivity':'activity_name'}

udid定义为位于http://appium.io/docs/en/writing-running-appium/caps/的已连接物理设备的唯一设备标识符

答案 2 :(得分:0)

udid区分了两种类似的设备。

这里是一个示例脚本,用于与1台设备建立连接,您可以查看一下并对其进行修改,以适应您对多台设备的需求。

例子不言自明。

https://automationlab0000.wordpress.com/2018/08/21/first-automation-script-using-robot-framework/