Execute um teste Robo (Android)

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 usar 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, em seguida, cria um vídeo a partir dessas capturas de tela para mostrar as operações simuladas do usuário 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 na IU 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 .

Se você quiser experimentar a versão Beta do Robo para iOS+, consulte Executar um teste do 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 gráfico tem telas como nós e ações como arestas. Seguindo 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 Robo

Dependendo da complexidade da IU do seu aplicativo, o teste Robo pode levar cinco minutos ou mais para concluir um conjunto completo de interações da IU. 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 é 300 segundos (5 minutos) para testes executados no Android Studio e no console do Firebase e 900 segundos (15 minutos) para testes executados na linha de comando gcloud .

Erros de tempo limite de inicialização do aplicativo

Se o seu aplicativo demorar muito para iniciar, o teste Robo poderá gerar um erro e não será possível rastrear seu aplicativo. Isso só acontece em casos de tempo de inicialização extremamente longo e só pode ser resolvido revisando seu aplicativo para que ele inicie 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 entradas de interface de usuário específicas, como nome de usuário e 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 UI não Android

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

Se uma tela do seu aplicativo não usa widgets de IU do Android, os testes do Robo recorrem ao Monkey Actions para testar essa tela. Ao contrário das ações de teste mais metódicas do Robo, 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 de testes de loop de jogos do Firebase Test Lab .

Integração com o 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 formatos e configurações de hardware. Para saber mais, consulte Usar relatórios de pré-lançamento para identificar problemas .

Teste o login da conta e a entrada de texto predefinida

O teste Robo oferece suporte ao login da conta de teste e também permite que você insira texto predefinido nos campos do seu aplicativo. Para login personalizado e outras entradas de texto predefinidas, o teste Robo pode inserir texto nos campos EditText do seu aplicativo. Para cada string, você precisa identificar o campo EditText usando um nome de recurso 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 predefinido {:#predefined-text}

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 conseguir 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. Links diretos são emitidos para seu aplicativo como intents ACTION_VIEW do Android. Portanto, cada link deve corresponder a um filtro de intent no seu aplicativo.

Se um ou mais links diretos forem fornecidos, o aplicativo será inicializado 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 conseguir encontrar uma atividade que corresponda ao seu link direto, o Test Lab ignorará o link. Problemas de link direto geralmente são o resultado de uma discrepância entre o link direto fornecido e sua definição no seu aplicativo. Verifique o URL fornecido e seu aplicativo em busca de erros de digitação ou outras inconsistências.

Suporte para licenciamento de aplicativos

O Test Lab oferece suporte a aplicativos que usam o serviço de licenciamento de aplicativos oferecido pelo Google Play. Para verificar o licenciamento com sucesso 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.

Próximos passos