호드 디바이스 매니저는 모바일 및 콘솔 개발 키트 리소스를 관리합니다. 이 서비스는 에픽게임즈에서 광범위하게 사용되며, 상당히 발전되어 있습니다. 특징은 다음과 같습니다.
- 환경설정 가능한 디바이스 플랫폼 및 풀
- 사용자 체크아웃 기능이 있는 공유 원격 디바이스 리소스
- 문제 보고 및 복구 기능이 포함된 자동화 디바이스 예약
- 하드웨어 관리를 위한 대시보드 지원
- 디바이스 사용 히스토리, 원격 측정, 풀 상태 보고
- 건틀릿 자동화 프레임워크와의 통합
공유 풀
호드 사용자는 개발 및 테스트를 위해 공유 풀을 사용하여 원격 디바이스 리소스를 체크아웃합니다. 사용자는 대시보드를 통해 디바이스를 체크아웃하며, 디바이스는 명시적인 체크인을 통해 풀에 반환되거나 환경설정 가능한 기간이 초과되었을 때 풀에 반환됩니다.
체크인이 만료되기 24시간 전에 사용자에게 알리는 알림 싱크가 있으므로 사용자는 원하는 경우 디바이스를 갱신할 수 있습니다. 체크아웃이 만료되면 후속 알림이 전송되며 디바이스는 풀로 반환됩니다.
예를 들어, 빌드를 설치하기 위해 체크아웃된 디바이스를 대상으로 자동화 작업을 구성하는 것도 가능합니다.
자동화 풀
디바이스 매니저는 풀, 플랫폼, 모델의 제약을 받을 수 있는 자동화 작업 디바이스 예약을 지원합니다.
예약 시스템과 함께 건틀릿 통합을 사용하는 것이 좋습니다. 하지만 동일한 REST API를 사용하여 커스텀 솔루션을 구동할 수도 있습니다.
플랫폼 및 풀 환경설정
디바이스 플랫폼 하드웨어는 자동화된 테스트와 사용자가 사용하기 위해 풀로 분할됩니다. 디바이스 플랫폼 및 풀은 globals.json 파일의 Devices 섹션을 사용하여 환경설정됩니다(DeviceConfig 참고).
환경설정 예시
다음 환경설정 프래그먼트는 디바이스 매니저 환경설정을 선언합니다.
- 여러 모델을 지정하는
Android디바이스 플랫폼 추가 -
자동화된 테스트에서 사용할 수 있는
Automation풀, 사용자가 원격 디바이스 하드웨어를 체크아웃할 수 있는Shared풀이라는 2가지 디바이스 풀 추가"devices": { "platforms": [ { "id": "android", "name": "Android", "models": [ "Pixel4", "Pixel5", "Pixel8" ] } ], "pools": [ { "id": "ue5", "name": "UE5", "poolType": "Automation" }, { "id": "remote-ue5", "name": "Remote UE5", "poolType": "Shared" } ] }
디바이스 환경설정
공유 및 자동화 디바이스는 호드 대시보드의 SERVER > Resources > Devices 로 이동하여 추가 및 관리할 수 있습니다.
여기에서는 다음 작업을 지원합니다.
- 디바이스 추가 및 편집하기
- 디바이스를 유지보수 모드로 전환하기
- 디바이스에 관한 인라인 노트 추가하기
- 풀 간에 디바이스 이동하기
- 풀 상태 및 사용량 원격 측정 보기
- 디바이스를 수정하기 위해 작업 히스토리 및 마지막 사용자 보기
건틀릿 통합
건틀릿 테스트는 호드 디바이스 매니저에서 하드웨어를 예약할 수 있습니다. 건틀릿 통합에는 디바이스 관련 문제 보고, 새 디바이스로 복구와 같은 기능이 포함되어 있습니다. 또한 일련의 자동화 테스트에 걸쳐 설치된 빌드가 있는 디바이스를 재사용하는 데 사용할 수 있는 예약 차단 기능도 지원합니다.
건틀릿 통합 예시
다음 BuildGraph 프래그먼트를 선언합니다.
- 호드 서버 및 사용할 풀을 지정하는
HordeDeviceManager및HordeDevicePool프로퍼티 -
테스트를 위해 Android Pixel 8을 예약하는
BootTest Android노드 추가<Property Name="HordeDeviceManager" Value="https://horde.yourdomain.com" /> <Property Name="HordeDevicePool" Value="UE5" /> <Node Name="BootTest Android"> <Command Name="RunUnreal" Arguments="-test=UE.BootTest -platform=Android " -deviceurl="$(HordeDeviceManager)" -devicepool="$(HordeDevicePool)" -PerfModel=Pixel8/> </Node>