【发布时间】:2016-03-23 16:22:42
【问题描述】:
我正在使用 Appium 使用 Genymotion 模拟器进行 Android 测试。我有几个模拟器,我想做的是构建一个脚本,在每个模拟器上一个接一个地测试我的应用程序(并且并行)。该脚本启动一个模拟器,在其上测试应用程序,然后将其关闭。
为此,我需要在每次迭代时为appium 命令提供特定的设备标识符(这很关键,因为在任何给定时间都有多个模拟器在运行):
appium --udid XXXXXXXX
Appium 然后使用 -s XXXXXXXX 参数运行 adb。
问题是 Genymotion 模拟器不显示 udid 序列号,而是在运行 adb 时,我看到了在启动时分配给设备的地址:端口,这些不能用于自动化,因为它们是不可预测的。
我发现 adb 可以通过指定要使用的属性来使用 udid 以外的参数调用特定设备。这样,我需要做的就是使用模拟器的模型,一切都应该工作:
adb -s model:Google_Nexus_4___4_4_4___API_19___768x1280
但是,当我尝试像这样将其合并到 Appium 中时:
appium --udid model:Google_Nexus_4___4_4_4___API_19___768x1280
我收到以下错误:
[36minfo[39m: Retrieving device
[36minfo[39m: [debug] Trying to find a connected android device
[36minfo[39m: [debug] Getting connected devices...
[36minfo[39m: [debug] executing cmd: /Users/mor/Library/Android/sdk/platform-tools/adb devices
[36minfo[39m: [debug] 2 device(s) connected
[36minfo[39m: [debug] Sent shutdown command, waiting for UiAutomator to stop...
[33mwarn[39m: UiAutomator did not shut down fast enough, calling it gone
[36minfo[39m: [debug] Cleaning up android objects
[36minfo[39m: [debug] Cleaning up appium session
[36minfo[39m: [debug] Error: Device model:Google_Nexus_4___4_4_4___API_19___768x1280 was not in the list of connected devices
这显然意味着 Appium 首先运行 adb devices,然后才尝试将 udid 与参数中给出的匹配,所以没有运气。
有人对此问题有解决方案/解决方法吗?
【问题讨论】:
标签: android testing adb appium genymotion