是否可以使Appium服务器使用远程ADB服务器而不是localhost
?
能够在Dockerized环境中使用Appium服务器至关重要。
答案 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容器的同一台机器时才会起作用。