다음을 통해 공유


XUser의 헤드리스 자동화

테스트를 위해 게임에서 사용자를 자동으로 추가할 수 있습니다. Microsoft GDK(게임 개발 키트)의 경우 게임에서 XUserAddAsync를 호출할 때만 사용자를 추가할 수 있습니다. 자동화와 관련하여 이 함수에는 두 가지 주요 제한 사항이 있습니다.

  • AddDefaultUserSilently플래그를 사용하여 XUserAddAsync을(를) 호출하면 UI가 표시되지 않습니다(이는 자동화에 도움이 됩니다). 그러나 게임을 실행한 사용자만 받을 수 있습니다. 이 플래그를 사용하여 API를 반복적으로 호출해도 결과가 변경되지 않습니다. 동일한 사용자에 대한 새 핸들을 계속해서 가져올 수 있습니다.
  • AddDefaultUserSilently 플래그 없이 XUserAddAsync을(를) 호출하면 UI가 표시되며 단추가 눌릴 때까지 기다립니다. 이렇게 하면 자동화가 중단됩니다.

테스트 코드에서 사용자를 추가하는 자동화를 지원하기 위해, Microsoft GDK(게임 개발 키트)는 사용자 입력이 필요한 UI를 표시하지 않고 사용자를 추가할 수 있는 헤드리스 옵션을 지원합니다. 다음 단계에서는 기본 접근 방법을 요약하여 설명합니다.

  1. 로그인한 사용자를 콘솔에 추가하기 위해 개발자는 signin 옵션과 함께 xbuser(NDA 항목)권한 부여 필요 명령줄 도구를 사용할 수 있습니다. 각 사용자에 대해 이 단계를 반복합니다.
  2. 게임에서 사용자를 추가할 때 일반적으로 표시되는 UI를 사용하지 않게 하기 위해 개발자는 다음과 같이 HeadlessXuser 옵션과 함께 xbconfig(NDA 항목)권한 부여 필요 명령줄 도구를 사용할 수 있습니다.
    xbconfig HeadlessXUser=true
    
  3. 게임을 시작합니다.
  4. 게임을 시작하면 AddDefaultUserSilently 플래그가 없는 XUserAddAsync을(를) 호출할 때마다 게임에 의해 연결된 미결 상태의 XUserHandle 개체가 없는 본체에 로그인한 첫 번째 사용자가 반환됩니다.
  5. 게임에서 XUserAddAsync을(를) 계속 호출하면 결국 본체에 로그인한 사용자의 수가 소모됩니다. 이 경우 XUserAddAsync에서 E_ABORT이(가) 반환됩니다. 이 오류는 사용자가 본체에 로그인하지 않았거나(또는 UI로 이미 백업된 경우) 반환되는 XUserAddAsync에서 발생하는 것과 동일합니다.
  6. 테스트를 위해 게임에서 본체에 로그인한 테스트 계정의 수를 알고 싶을 수 있습니다. 이를 위해 게임에서는 CreateProcess을(를) 호출하고 list 옵션을 사용하여 wduser 명령줄 도구를 시작할 수 있습니다.