连接到远程 ADB 的 Appium 服务器

Appium server connecting to remote ADB

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

能够在 Dockerized 环境中使用 Appium 服务器是必不可少的。

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

您可以寻找开源库,例如 OPEN-STF,它为您提供了一种通过 adb 远程访问设备的媒介。

在您的 Appium 界面上,您需要做的就是在与远程服务器 url 相同的 URL 上执行 setup/tests,其中 appium-server-node 将是 运行.

这可以通过 ADB 连接函数来完成。在 Appium 容器中,运行 adb connect <host>:<port> 其中 <host>:<port> 是远程 ADB 服务器的 IP address/port(默认端口 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 卷将主机硬件暴露给容器。将 -v /dev/bus/usb:/dev/bus/usb/ 选项传递给 docker 运行 命令将使容器能够完全访问 USB 总线和所有连接的设备。

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

但是,如果在 Linux 系统上使用 Docker,则可以采用一种解决方法(如果 ADB 服务器 运行s 在Docker 机器创建的虚拟机)。

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

仅当设备连接到 Docker 容器 运行.

所在的同一台机器时才有效