Teste Robo do Firebase Test Lab

O Robo é uma ferramenta de teste integrada ao Firebase Test Lab que analisa a estrutura da IU do app e a explora de modo metódico, simulando automaticamente as atividades do usuário. Ao contrário do teste UI/Application Exerciser Monkey, quando você utiliza o Robo em um app com uma configuração específica, ele sempre simula as atividades do usuário na mesma proporção e ordem. O Robo valida correções de bugs e testa regressões que não são possíveis fazer com o teste UI/Application Exerciser Monkey.

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 executadas. Registros, capturas de tela e vídeos ajudam você a determinar a causa principal da falha no app, além de auxiliar na detecção de problemas na IU.

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 esses dados na parte superior da guia "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 do Robo, ações randômicas (monkey testing) e diretivas do 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 rastreamento 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 Robo atravessou seu aplicativo 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 do Android Studio e do Google Developer Console e de 1.500 segundos (25 minutos) para testes executados na linha de comando gcloud.

Erros de tempo limite de inicialização do aplicativo

Se a inicialização do seu aplicativo demorar muito, o Robo poderá gerar um erro e não conseguirá fazer o rastreamento. Isso só acontecerá se o tempo de inicialização for extremamente longo. Para resolver o problema, revise seu aplicativo para que ele seja iniciado mais rapidamente.

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.

Com os scripts Robo, você pode gravar a si mesmo durante um fluxo de trabalho no seu app e fazer upload dessa gravação para o Firebase console a fim de realizar testes Robo. Ao executar um teste Robo com um script anexado, primeiro o Robo lê suas ações em script e depois explora o app normalmente.

Para usar scripts Robo com a ferramenta do Firebase no Android Studio, faça o seguinte:

  1. Abra o Android Studio.
  2. No menu principal, selecione Ferramentas > Firebase.
  3. Selecione Test Lab e clique em Gravar script Robo e usá-lo para guiar o teste Robo.
  4. Siga as etapas restantes na ferramenta para gravar o script Robo.
  5. Faça upload do script Robo para o Test Lab e inicie seu teste.

Erros de script Robo

Se um script Robo falhar em qualquer ponto, o Test Lab abandonará todas as outras etapas do script e retomará um rastreamento Robo comum. Na maioria das vezes, os scripts do Robo falham porque o Test Lab não consegue encontrar um elemento necessário na tela. Para evitar falhas, verifique se a navegação do seu aplicativo é previsível e se suas telas não são mostradas em alguma ordem não determinista.

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 do Robo recaem no Monkey Actions para testar essa tela. Ao contrário das ações mais metódicas do Robo, o Monkey Actions simplesmente 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 Test Lab do Firebase.

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 para login na conta de teste e também permite que você insira texto predefinido em campos do aplicativo. Para fazer login personalizado e para outras entradas de texto predefinidas, o teste Robo pode inserir texto nos campos EditText do seu app. Para cada string, você precisa identificar o campo EditText usando um nome de recurso do 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, será necessário informar ao teste Robo onde inserir essas credenciais.
  • Login automático: se seu app tem uma tela de login que usa uma Conta do Google para autenticação, o teste Robo gera uma conta de teste do Google, a menos que você forneça credenciais da conta de teste para o login personalizado.

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

  1. Na página Selecionar dimensões, selecione Mostrar opções avançadas.
  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, selecione Mostrar opções avançadas.
  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 predefinido

O Robo procura campos EditText com um nome de recurso Android que corresponda a uma expressão regular fornecida. Se não for encontrado um campo correspondente, seu texto não será inserido e o rastreamento continuará 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.

Se não for encontrada uma atividade correspondente ao seu link direto, ele será 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 aplicativo. Verifique a 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:

  • Suporte à biblioteca de IU. O teste Robo só é compatível com aplicativos que usam elementos de IU da biblioteca de IU do Android (incluindo objetos View e ViewGroup, mas excluindo 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 ação adicional do usuário além da inserção de credenciais para fazer login (como a conclusão de um Captcha).

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.