Executar um teste Robo

O Robo é uma ferramenta de teste integrada ao Firebase Test Lab. O teste Robo analisa a estrutura da interface de usuário do app e a examina de modo metódico, simulando automaticamente as atividades do usuário. O teste Robo sempre simula as mesmas atividades do usuário na mesma ordem quando você o utiliza para testar um app em uma configuração de dispositivo específica e 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 registro, salva diversas capturas de tela anotadas e cria um vídeo para mostrar as operações de usuário simuladas que ele executa. Esses registros, capturas de tela e vídeos podem ajudar a determinar a causa raiz de falhas do app. Esses recursos de teste Robo também podem ajudar você a descobrir problemas com a IU do seu app.

Os testes Robo podem ser executados regularmente e personalizados usando os scripts Robo que são um recurso deles. Para saber mais, consulte Executar um script Robo.

Estatísticas de rastreamento para teste Robo

Para ajudar você a interpretar os resultados dos seus testes, o Robo registra as 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 realizadas durante o rastreamento, incluindo ações de script Robo, ações randômicas (monkey testing) 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. As telas são os nós do gráfico, enquanto as ações são as bordas. Ao seguir as bordas entre as telas, você pode ter uma ideia de como o teste Robo atravessou seu app durante o rastreamento.

Tempo limite do teste Robo

De acordo com a complexidade da IU do app, o teste Robo pode levar cinco minutos ou mais para executar um conjunto detalhado de interações. Recomendamos configurar o tempo limite do teste para, pelo menos, 120 segundos (2 minutos) na maioria dos apps e 300 segundos (5 minutos) em apps moderadamente complexos. O valor padrão para tempo limite é de 300 segundos (5 minutos) para testes executados no Android Studio e no Console do Firebase e de 900 segundos (15 minutos) para testes executados na linha de comando gcloud.

Erros de tempo limite de inicialização do aplicativo

Quando a inicialização do app demora muito, o teste Robo pode gerar um erro e interromper o rastreamento. Isso acontece apenas se o tempo de inicialização for extremamente longo. Para resolver isso, revise o app e acelere a iniciação dele.

Mais controle com scripts Robo

Às vezes você precisa de mais controle dos seus testes. Por exemplo, você pode querer testar uma jornada comum dos usuários ou fornecer uma entrada de IU específica como um 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 interface do usuário não Android

Os testes Robo usam a API Android para executar ações diretamente nos widgets da interface do Android. Com isso, os testes podem explorar a interface do usuário automaticamente, mas também significa que eles precisam extrair uma hierarquia de interface do Android para uma tela, a fim de executar testes nela.

Se uma tela do seu aplicativo não usar widgets de interface do Android, os testes Robo recaem no Monkey Actions para testar essa tela. Ao contrário das ações mais metódicas do teste Robo, o Monkey Actions apenas simula eventos de toque em locais semialeatórios na tela de um dispositivo.

Para realizar testes melhores nas telas que não usam widgets da interface do Android, você pode substituir os toques arbitrários de uma Monkey Action por um conjunto de toques e interações com script com os testes de loop de jogos do Firebase Test Lab.

Integrar com o Google Play

É possível usar o teste Robo no Google Play Console ao carregar e publicar o arquivo APK do seu app usando o Canal Alfa ou o Beta. O Robo é executado em um grupo de dispositivos físicos populares em diversos locais do mundo, fornecendo cobertura de teste em vários formatos e configurações de hardware. Para mais informações, consulte Utilizar relatórios de pré-lançamento para identificar problemas.

Login na conta de teste e entrada de texto predefinida

O teste Robo oferece suporte ao login na conta de teste e também permite inserir texto predefinido nos campos do seu app. Para fazer login personalizado e para outras entradas de texto predefinidas, ele pode inserir texto nos campos EditText do seu app. Para cada string, é preciso identificar o campo EditText usando um nome de recurso Android. Para saber mais, consulte Acesso a recursos.

Fazer login

O teste Robo dispõe de dois métodos mutuamente exclusivos para oferecer suporte ao login:

  • Login personalizado: se você fornecer credenciais da conta de teste, vai precisar informar ao teste Robo onde inserir essas credenciais.

  • Login automático: se o app tiver uma tela de login que usa uma Conta do Google para autenticação, o teste Robo usa uma conta de teste do Google, a não ser que você forneça credenciais da conta de teste para o login personalizado.

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

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

  2. Em Testar credenciais da conta (opcional), insira os nomes dos recursos de nome de usuário e senha, além do nome de usuário e da senha da conta de teste.

Entrada de texto predefinida

Você pode fornecer texto de entrada personalizado para outros campos de texto usados pelo seu app. 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 recurso e as strings para preenchimento nos campos de texto correspondentes.

Erros de entrada de texto predefinida

O Robo procura campos EditText com um nome de recurso Android que corresponda a uma expressão regular fornecida. Quando não é encontrado um campo correspondente, seu texto não é inserido e o rastreamento continua normalmente.

Você pode fornecer até três links diretos compatíveis com seu app para testes. Esses links diretos são emitidos para o app como intents ACTION_VIEW do Android. Portanto, cada link precisa corresponder a um filtro de intent no seu app.

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

Quando não é encontrada uma atividade correspondente ao link direto, ele é ignorado pelo Test Lab. Problemas com links diretos geralmente são resultado de uma discrepância entre o link direto fornecido e a respectiva definição no seu app. Verifique os URLs fornecidos e seu app quanto à existência de erros de digitação e outras inconsistências.

Suporte ao licenciamento de apps

O Test Lab é compatível com apps que usam o serviço de licenciamento de apps oferecido pelo Google Play. Para verificar o licenciamento ao testar seu app com o Test Lab, publique o app no canal de produção na Play Store. Para testar seu app no Canal Beta ou Alfa usando o Test Lab, remova a verificação de licenciamento antes de fazer o upload do seu app no Test Lab.

Problemas conhecidos

O teste Robo tem as seguintes limitações:

  • Compatibilidade com o framework de IU: o teste Robo só é compatível com apps que usam elementos de IU do framework de IU do Android, incluindo objetos View e ViewGroup, salvo objetos WebView. Se ele for usado para testar apps que utilizam outras estruturas, incluindo o mecanismo de jogos Unity, ele provavelmente será encerrado sem passar da primeira tela.
  • Captchas de login: o teste Robo não pode ignorar as telas de login que exigem outra ação do usuário além da inserção de credenciais para fazer login, por exemplo, para concluir um Captcha.

Próximas etapas