Appium AndroidDriver的DesiredCapabilities

时间:2015-10-04 06:31:00

标签: android testing automation appium

我是一名自动化程度较高的程序员。目前我正在Appium工作。我已经阅读了Appium的文档,并能够在Android虚拟设备,物理设备和GenyMotion上运行测试用例。但是,我仍然不清楚如何追求所需的能力。

1)UDID

它代表我们连接的物理设备的唯一设备标识符。 我有两个问题。 (a)当我们连接物理设备并运行“adb设备”时,它是否是相同的标识符? (b)我们可以将它用于仿真器/模拟器或AVD吗?我在网上看过很多代码片段,它们用于下面的模拟器。

capabilities.setCapability("udid", "emulator-5554");

2)deviceName

(a)如何查找设备名称? (b)是否有任何命令行工具可以返回所有连接设备的名称? (c)UDID和设备名称是否相同?或者这两件完全不同的东西? (d)虚拟设备可以有设备名称吗?

我见过代码片段,它使用deviceName的值与模拟器的UDID相同。

capabilities.setCapability("udid", "emulator-5554");
capabilities.setCapability("deviceName", "emulator-5554");

此外,我在网上看到了很多代码片段,它们使用“Android模拟器”,“模拟器”和“Android”以及“Nexus”等值。

3)avd

(a)我们是否必须将我们为虚拟设备设置的名称作为此参数的值传递? (b)如果我们使用它,我们是否必须使用device或udid?

4)deviceType和device

这两个功能未在Appium文档中列出,但我见过许多代码片段,如下所示。

capabilities.setCapability("deviceType", "phone"); 
capabilities.setCapability("device", "Android"); 

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

将逐一回答您的问题。

1)UDID:当你想用ios设备运行时使用,这个功能不适用于android,它只适用于ios“真实设备”而不是模拟器,你可以从itunes带来iu设备的uuid,或者从设备信息窗口到xcode。

2)deviceName:命令“adb devices”将显示所有连接设备的名称,没有uuid不是相同的设备名称,并且记住uuid仅适用于ios“真实设备”,对于模拟器,您可以只是“ Android模拟器“,无论如何你应该运行的功能中的设备名称错误,因为appium会查找连接的设备,只要你的设备连接的设备不仅仅是设备,你就会有一个问题。

3)当使用虚拟机“模拟器”运行时需要这样做,如果您正在通过机器中运行的appium sevrer运行,则根本不需要传递此功能。

4)我根本没有在appium中看到这些功能,我没有看到它们的任何使用,你看到的代码可能是一个非常旧版本的appium,当时需要它。