Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Executar um teste Robô

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

O teste Robo é uma ferramenta de teste integrada ao Firebase Test Lab. O teste Robo analisa a estrutura da interface do usuário (IU) do seu aplicativo e a explora metodicamente, simulando automaticamente as atividades do usuário. O teste Robo sempre simula as mesmas atividades do usuário na mesma ordem quando você o usa para testar um aplicativo em uma configuração de dispositivo específica com as mesmas configurações. Essa abordagem de teste repetível permite que você use o teste Robo para validar correções de bugs e testar regressões.

O teste Robo captura arquivos de log, salva uma série de capturas de tela anotadas e cria um vídeo a partir dessas capturas de tela para mostrar as operações de usuário simuladas que ele executou. Esses registros, capturas de tela e vídeos podem ajudá-lo a determinar a causa raiz das falhas do aplicativo. Esses recursos de teste do Robo também podem ajudar você a encontrar problemas com a interface do usuário do seu aplicativo.

Além de executar testes Robo regulares, você pode personalizar seus testes usando scripts Robo, que são um recurso dos testes Robo. Para saber mais, consulte Executar um script Robo .

Estatísticas de rastreamento de teste Robo

Para ajudá-lo a interpretar os resultados do teste Robo, o teste Robo registra estatísticas durante cada rastreamento de teste. O Test Lab exibe as estatísticas na parte superior da guia de teste Robo na página de resultados do teste:

  • Ações: o número total de ações executadas durante o rastreamento, incluindo ações de script Robo, ações de macaco e diretivas Robo.

  • Atividades: o número de atividades distintas cobertas durante o rastreamento.

  • Telas: o número de telas distintas visitadas durante o rastreamento.

O Test Lab também usa as estatísticas para criar uma representação visual do teste Robo na forma de um gráfico de rastreamento. O grafo tem telas como seus nós e ações como arestas. Ao seguir as bordas entre as telas, você pode ter uma ideia de como o teste Robo percorreu seu aplicativo durante o rastreamento.

Tempo limite do teste do robô

Dependendo da complexidade da interface do usuário do seu aplicativo, o teste Robo pode levar cinco minutos ou mais para concluir um conjunto completo de interações da interface do usuário. Recomendamos definir o tempo limite do teste para pelo menos 120 segundos (2 minutos) para a maioria dos aplicativos e 300 segundos (5 minutos) para aplicativos moderadamente complexos. O valor padrão para o tempo limite é de 300 segundos (5 minutos) para testes executados no Android Studio e no Firebase console e 900 segundos (15 minutos) para testes executados na linha de comando gcloud .

Erros de tempo limite de inicialização do aplicativo

Se seu aplicativo demorar muito para iniciar, o teste Robo poderá gerar um erro e não poderá rastrear seu aplicativo. Isso só acontece em casos de tempo de inicialização extremamente longo e só pode ser resolvido revisando seu aplicativo para torná-lo mais rápido.

Mais controle com scripts Robo

Às vezes você precisa de mais controle sobre seus testes. Por exemplo, você pode querer testar uma jornada de usuário comum ou fornecer uma entrada de interface do usuário específica, como um nome de usuário e uma senha. Os scripts Robo podem ajudar. Para saber mais sobre scripts Robo, consulte Executar um script Robo e guia de referência de scripts Robo .

Testes Robo e widgets de interface do usuário não Android

Os testes Robo usam a API do Android para realizar ações diretamente nos widgets de IU do Android. Isso ajuda os testes a explorar sua interface do usuário automaticamente, mas também significa que eles precisam extrair uma hierarquia de interface do usuário do Android para uma tela para executar testes nela.

Se uma tela em seu aplicativo não usa widgets de IU do Android, os testes Robo recorrem ao Monkey Actions para testar essa tela. Ao contrário das ações de teste Robo mais metódicas, as Monkey Actions simplesmente simulam eventos de toque em locais semi-aleatórios na tela de um dispositivo.

Para testar melhor as telas que não usam widgets de IU do Android, você pode substituir os toques arbitrários de uma Monkey Action por um conjunto de toques e interações com script por meio do Firebase Test Lab Game Loop Tests .

Integração com Google Play

Você pode usar o teste Robo no Google Play Console ao fazer upload e publicar o arquivo APK do seu aplicativo usando o canal alfa ou beta. O teste Robo é executado em um conjunto de dispositivos físicos populares de diferentes localizações geográficas, fornecendo cobertura de teste em vários fatores de forma e configurações de hardware. Para saber mais, consulte Usar relatórios de pré-lançamento para identificar problemas .

Testar login na conta e entrada de texto predefinida

O teste Robo é compatível com o login da conta de teste e também permite inserir texto predefinido em campos do seu aplicativo. Para login personalizado e outras entradas de texto predefinidas, o Robo test pode inserir texto em campos EditText em seu aplicativo. Para cada string, você precisa identificar o campo EditText usando um nome de recurso do Android. Para saber mais, consulte Acessando recursos .

Entrar

O teste Robo tem dois métodos mutuamente exclusivos para dar suporte ao login:

  • Login personalizado: se você fornecer credenciais de conta de teste, precisará informar ao Robo test onde inseri-las e também fornecer essas credenciais.

  • Login automático: se seu aplicativo tiver uma tela de login que usa uma conta do Google para autenticação, o Robo test usa uma conta de teste do Google, a menos que você forneça credenciais de conta de teste para login personalizado.

Para fornecer credenciais de conta de teste para login personalizado, faça o seguinte:

  1. Na página Selecionar dimensões , escolha Opções adicionais .

  2. Em Credenciais da conta de teste (opcional) , insira os nomes dos recursos de nome de usuário e senha e o nome de usuário e a senha da conta de teste.

Entrada de texto predefinida

Você pode fornecer texto de entrada personalizado para outros campos de texto usados ​​pelo seu aplicativo. Para fornecer entrada de texto para campos adicionais, faça o seguinte:

  1. Na página Selecionar dimensões , escolha Opções adicionais .

  2. Em Campos adicionais (opcional) , insira um ou mais nomes de recursos e as strings a serem inseridas nos campos de texto correspondentes.

Erros de entrada de texto predefinidos

O teste Robo procura campos EditText com um nome de recurso Android que corresponda a uma expressão regular fornecida. Se o Robo não encontrar um campo correspondente, ele não insere seu texto, mas continua o rastreamento normalmente.

Você pode fornecer até três links diretos compatíveis com seu aplicativo para teste. Os links diretos são emitidos para seu aplicativo como intents do Android ACTION_VIEW . Portanto, cada link deve corresponder a um filtro de intent em seu aplicativo.

Se um ou mais links diretos forem fornecidos, o aplicativo será iniciado normalmente (usando a intenção ACTION_MAIN ) e rastreado até o tempo limite especificado. Após o rastreamento principal, cada link direto é rastreado por mais 30 segundos cada.

Se o teste Robo não encontrar uma atividade que corresponda ao seu link direto, o Test Lab ignorará o link. Os problemas de link direto geralmente são o resultado de uma discrepância entre o link direto fornecido e sua definição em seu aplicativo. Verifique o URL fornecido e seu aplicativo quanto a erros de digitação ou outras inconsistências.

Suporte ao licenciamento de aplicativos

O Test Lab é compatível com aplicativos que usam o serviço de licenciamento de aplicativos oferecido pelo Google Play. Para verificar com êxito o licenciamento ao testar seu aplicativo com o Test Lab, você deve publicar seu aplicativo no canal de produção na Play Store. Para testar seu aplicativo no canal alfa ou beta usando o Test Lab, remova a verificação de licenciamento antes de enviar seu aplicativo para o Test Lab.

Problemas conhecidos

O teste Robo atualmente tem as seguintes limitações conhecidas:

  • Suporte à estrutura de interface do usuário: o teste Robo é compatível apenas com aplicativos que usam elementos de interface do usuário da estrutura de interface do usuário do Android (incluindo objetos View e ViewGroup , mas excluindo objetos WebView ). Se você usar o teste Robo para exercitar aplicativos que usam outras estruturas de interface do usuário, incluindo aplicativos que usam o mecanismo de jogo Unity, o teste pode sair sem explorar além da primeira tela.
  • Captchas de entrada: o teste Robo não pode ignorar telas de entrada que exigem ação adicional do usuário além de inserir credenciais para entrar, por exemplo, concluir um Captcha.

Próximos passos