Appium服务器连接到远程ADB

时间:2016-06-06 10:54:23

标签: android adb appium

是否可以使Appium服务器使用远程ADB服务器而不是localhost

能够在Dockerized环境中使用Appium服务器至关重要。

3 个答案:

答案 0 :(得分:3)

这可以通过ADB连接功能完成。从Appium容器中运行adb connect <host>:<port>,其中<host>:<port>是远程ADB服务器的IP地址/端口(默认为端口5555)。

例如,如果硬件设备在IP地址192.168.1.101处物理连接,则连接的adb命令将是 adb connect 192.168.1.101:5555

此时,如果从Appium主机运行adb devices,远程设备应列为已连接,您可以继续进行测试。要断开远程设备的连接,请使用adb disconnect功能;例如adb disconnect 192.168.1.101:5555

如果您的目标只是在Dockerized Appium环境中使用USB连接的硬件设备,另一个选择是使用docker volume将主机硬件暴露给容器。将-v /dev/bus/usb:/dev/bus/usb/选项传递给docker run命令将使容器可以完全访问USB总线和所有连接的设备。

答案 1 :(得分:0)

是。可以使appium服务器使用远程adb服务器。

您可以查找OPEN-STF等开源库,它们为您提供通过adb远程访问设备的媒介。

在您的Appium界面上,您只需要执行setup / tests到与运行appium-server-node的远程服务器URL相同的URL。

答案 2 :(得分:0)

在调查此问题并检查答案后,我认为简短的回答是:目前不可能不使用第三方工具。

但是,如果在Linux系统上使用Docker,则可以采用一种解决方法(如果ADB服务器在Docker Machine创建的VM上运行,则可以在Windows上实现类似)。

ADB服务器在Linux上运行,Docker容器中运行的Appium服务器可以在localhost上连接ADB。需要使用--privileged-v /dev/bus/usb:/dev/bus/usb/,以便Docker容器可以连接设备。

仅当设备连接到运行Docker容器的同一台机器时才会起作用。