We’re currently exploring integrating our Gauntlet-based client tests with mobile devices from third-party cloud providers for mobile test execution. However, we’ve identified some limitations with Horde Device Manager (HDM) related to device connectivity and networking.
This is what I learned from Gaunlet’s (android) device reservation code:
- Gauntlet uses Horde’s device reservation APIs to reserve devices and retrieve their hostname/IP address. It also handles automatic lease renewal.
- It checks whether a device with the same hostname/IP is already connected locally.
- If not, it attempts to connect using ADB:
- `adb connect <hostname>:5555` (if the hostname doesn’t include a port)
- `adb connect <hostname>` (if the hostname includes a port)
- If the connection is successful, Gauntlet proceeds with the test using the now-local device.
This suggests the horde agent can only work with Android devices that 1) has adb tcpip enabled and 2) directly accessible in the same network.
Could you please confirm:
- Does HDM only officially support on-premises mobile devices that are directly accessible through our corporate network?
- If third-party devices are not accessible via the corporate network (thus limiting direct ADB-over-network access), what would be the recommended approach for integrating these external devices with Gauntlet tests?
- Does Epic have any plans to extend HDM functionality to natively support third-party device providers in the future?
Specifically, would a custom BuildGraph node or specialized Gauntlet commands, which handle reserving devices via HDM and then manage connectivity through third-party tools/APIs, be the appropriate solution?
Your guidance on the best practices for integrating such third-party device providers would be greatly appreciated.