> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Automação headless do XUser

> Automação headless do XUser

Para testes, os jogos podem querer automatizar a adição de usuários ao jogo. Com o Microsoft Game Development Kit (GDK),
os usuários só são adicionados quando o jogo chama [XUserAddAsync](/pt-BR/reference/system/xuser/functions/xuseraddasync). Com relação à
automação, essa função tem as duas principais limitações a seguir.

* Se você chamar `XUserAddAsync` com o sinalizador `AddDefaultUserSilently`, não obterá interface do usuário (o que
  ajuda na automação). No entanto, você só pode obter o usuário que iniciou o jogo.
  Chamar a API repetidamente com esse sinalizador não altera o resultado. Você continuará
  obtendo novos identificadores para os mesmos usuários.
* Se você chamar `XUserAddAsync` sem o sinalizador `AddDefaultUserSilently`, a interface do usuário
  será exibida e aguardará que alguém pressione um botão. Isso interrompe a automação.

Para ajudar na automação da adição de usuários em código de teste, o Microsoft Game Development Kit (GDK) oferece suporte à ativação de uma
opção headless, na qual você pode adicionar usuários sem que seja exibida uma interface do usuário que exija entrada do usuário. As
etapas a seguir descrevem a abordagem básica.

1. Para adicionar um usuário conectado ao console, você pode usar a ferramenta de linha de comando [xbuser (tópico sob NDA)](/pt-BR/tools/tools-console/commandlinetools/xbuser)
   com a opção `signin`. Repita esta etapa para cada usuário.
2. Para suprimir a interface do usuário que normalmente seria exibida ao adicionar um usuário no jogo, você
   pode usar a ferramenta de linha de comando [xbconfig (tópico sob NDA)](/pt-BR/tools/tools-console/commandlinetools/xbconfig) com a opção `HeadlessXuser`, conforme mostrado a seguir.

```
    xbconfig HeadlessXUser=true
```

3. Inicie o jogo.
4. No jogo, cada chamada a `XUserAddAsync` que não tenha o
   sinalizador `AddDefaultUserSilently` retorna o primeiro usuário que entrou no console e
   que não tem objetos `XUserHandle` pendentes associados a ele pelo jogo.
5. Se o jogo continuar chamando `XUserAddAsync`, ele acabará esgotando o número
   de usuários conectados ao console. Depois que isso acontecer, `XUserAddAsync`
   retornará `E_ABORT`. Esse é exatamente o mesmo erro que `XUserAddAsync` teria retornado
   se o usuário tivesse cancelado a entrada no console (ou saído da
   interface do usuário de outra forma).
6. Para fins de teste, os jogos podem querer saber o número de [contas de teste](/pt-BR/services/xbox-services/develop/test-accounts/live-setup-testaccounts)
   conectadas ao console. Para facilitar isso, os jogos podem chamar `CreateProcess` e iniciar
   a ferramenta de linha de comando `wduser` com a opção `list`.


## Related topics

- [Usuários](/pt-BR/build/core-features/common/user/user-toc.md)
- [Identidade do usuário e APIs XUser no GDK](/pt-BR/build/core-features/common/user/index.md)
- [Suporte multiplataforma do XUser](/pt-BR/build/core-features/common/user/xuser-crossplatform.md)
- [Identidade do usuário e XUser](/pt-BR/build/core-features/common/user/player-identity-xuser.md)
- [XBOX Manager: gerenciar a automação do console](/pt-BR/tools/tools-console/xbom/manager-tool-automation.md)
