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 (UI) 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, em seguida, cria um vídeo dessas capturas de tela para mostrar as operações de usuário simuladas que ele executou. Esses logs, 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 ajudá-lo a encontrar problemas com a 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 .

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 do 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 do Robo, ações de macaco 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 teste Robo na forma de um gráfico de rastreamento. O grafo tem telas como nós e ações como arestas. Ao seguir as bordas entre as telas, você pode ter uma ideia de como o teste Robo atravessou seu aplicativo durante o rastreamento.

tempo limite do teste Robo

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 de tempo limite é de 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 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 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 uma entrada de interface do usuário específica, como um nome de usuário e senha. Os scripts Robo podem ajudar. Para saber mais sobre os scripts do Robo, consulte Executar um script do Robo e Guia de referência de scripts do Robo .

Testes Robo e widgets de IU não Android

Os testes Robo usam a API do Android para executar ações diretamente nos widgets da interface do usuário 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 a fim de executar testes nela.

Se uma tela em seu aplicativo não usar widgets de interface do usuário do Android, os testes do Robo recorrerão ao Monkey Actions para testar essa tela. Ao contrário das ações de teste Robo mais metódicas, o Monkey Actions simplesmente simula 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 dos testes de loop de jogo 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 fatores de forma 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 em 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 teste Robo 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 teste Robo 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 o nome de usuário e os nomes dos recursos de 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 do Android que corresponda a uma expressão regular fornecida. Se o Robo não conseguir encontrar um campo correspondente, ele não inserirá seu texto, mas continuará 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 ACTION_VIEW Android. Portanto, cada link deve corresponder a um filtro de intenção em 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 profundo é rastreado por 30 segundos adicionais cada.

Se o teste Robo não conseguir encontrar uma atividade correspondente 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 de 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 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 carregar seu aplicativo no Test Lab.

Problemas conhecidos

Atualmente, o teste Robo 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 testar 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 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 entrar, por exemplo, concluir um Captcha.

Próximos passos

,

O teste Robo é uma ferramenta de teste integrada ao Firebase Test Lab. O teste Robo analisa a estrutura da interface do usuário (UI) 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, em seguida, cria um vídeo dessas capturas de tela para mostrar as operações de usuário simuladas que ele executou. Esses logs, 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 ajudá-lo a encontrar problemas com a 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 .

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 do 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 do Robo, ações de macaco 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 teste Robo na forma de um gráfico de rastreamento. O grafo tem telas como nós e ações como arestas. Ao seguir as bordas entre as telas, você pode ter uma ideia de como o teste Robo atravessou seu aplicativo durante o rastreamento.

tempo limite do teste Robo

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 de tempo limite é de 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 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 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 uma entrada de interface do usuário específica, como um nome de usuário e senha. Os scripts Robo podem ajudar. Para saber mais sobre os scripts do Robo, consulte Executar um script do Robo e Guia de referência de scripts do Robo .

Testes Robo e widgets de IU não Android

Os testes Robo usam a API do Android para executar ações diretamente nos widgets da interface do usuário 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 a fim de executar testes nela.

Se uma tela em seu aplicativo não usar widgets de interface do usuário do Android, os testes do Robo recorrerão ao Monkey Actions para testar essa tela. Ao contrário das ações de teste Robo mais metódicas, o Monkey Actions simplesmente simula 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 dos testes de loop de jogo 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 fatores de forma 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 em 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 teste Robo 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 teste Robo 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 o nome de usuário e os nomes dos recursos de 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 do Android que corresponda a uma expressão regular fornecida. Se o Robo não conseguir encontrar um campo correspondente, ele não inserirá seu texto, mas continuará 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 ACTION_VIEW Android. Portanto, cada link deve corresponder a um filtro de intenção em 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 profundo é rastreado por 30 segundos adicionais cada.

Se o teste Robo não conseguir encontrar uma atividade correspondente 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 de 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 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 carregar seu aplicativo no Test Lab.

Problemas conhecidos

Atualmente, o teste Robo 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 testar 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 login: o teste Robo não pode ignorar as telas de login que exigem ação adicional do usuário além de inserir credenciais para entrar, por exemplo, concluir um Captcha.

Próximos passos