Execute um script Robo (Android)

Este documento descreve como usar scripts Robo , que são testes que automatizam tarefas manuais de controle de qualidade para aplicativos móveis e permitem integração contínua (CI) e estratégias de teste de pré-lançamento. Por exemplo, você pode usar scripts Robo para testar uma jornada de usuário comum ou fornecer entradas específicas da interface do usuário (IU), como nome de usuário e senha. Os scripts Robo são um recurso do teste Robo .

Com os scripts Robo, você grava sua caminhada por um fluxo de trabalho em seu aplicativo e, em seguida, carrega essa gravação no console do Firebase para ser executada em testes Robo. Quando você executa um teste do Robo com um script anexado, o Robo primeiro percorre suas ações predefinidas e depois explora o aplicativo normalmente.

Os scripts Robo usam o teste Robo como mecanismo de teste. Em sua forma mais básica, um script Robo consiste em uma sequência de ações da interface do usuário, como inserir o texto 'nome de usuário' e tocar no botão OK . Os scripts Robo também podem incluir ações como esperar que um elemento apareça, tocar em um ponto específico dentro de um elemento e executar comandos shell do Android Debug Bridge ( adb ).

Os scripts Robo têm as seguintes vantagens sobre as estruturas de teste tradicionais:

Capacidade Descrição
Altamente robusto Os scripts Robo podem tolerar diferenças estruturais e comportamentais significativas entre as versões do aplicativo e a instabilidade do aplicativo.
Aberto Após a conclusão de um script Robo, o teste base do Robo pode assumir e continuar testando o aplicativo. Essa abordagem de testes contínuos permite vários casos de uso importantes. Por exemplo, você pode usar um script Robo para colocar um aplicativo em um estado específico executando um fluxo de login personalizado.
Gravável Você não precisa codificar scripts Robo manualmente. Eles podem ser gravados usando o gravador de script Robo no Android Studio. Criar ou modificar scripts Robo normalmente não requer nenhum conhecimento de desenvolvimento móvel.
Flexível Os scripts Robo podem interagir com elementos de UI não nativos que são comuns em jogos.

Os scripts Robo são acionados condicionalmente durante um teste Robo, o que permite aos usuários aumentar o comportamento do Robo - normalmente para obter maior cobertura ou atingir funcionalidades específicas. Em contraste com as estruturas de teste tradicionais, os scripts Robo suportam o seguinte:

  • Várias condições de acionamento, por exemplo, um nome de pacote de aplicativo específico estando ativo (ou não) ou um elemento específico sendo exibido na tela (ou não).
  • A execução controla, por exemplo, um número máximo de execuções, prioridade, estágio de rastreamento relevante.
  • Tipos de ação não convencionais (condicional, ignorar elemento, fechar tela).

Recomendamos que você use scripts Robo sempre que possível porque eles podem ser mantidos sem esforço. Por exemplo, você pode usar um script Robo para fazer o seguinte:

  • Navegue por fluxos de trabalho significativos para chegar ao núcleo da funcionalidade de um aplicativo. Por exemplo, você pode fazer login, configurar o estado de um aplicativo após a primeira inicialização e registrar um novo usuário.
  • Concentre o Robo em uma parte específica de um aplicativo para aproveitar ao máximo o tempo de teste do Robo. O script Robo orienta o teste Robo para chegar à parte relevante de um aplicativo, onde o teste Robo retoma um rastreamento totalmente automatizado.
  • Coloque um aplicativo em um estado ou tela específico para realizar uma análise, por exemplo, para analisar uma mensagem no aplicativo, uma política de privacidade ou um nível específico de um jogo.
  • Execute um teste de instrumentação de ponta a ponta, com ou sem teste Robo, retomando um rastreamento totalmente automatizado após a conclusão do script Robo.

Use recursos de script Robo mais avançados para fazer o seguinte:

  • Execute ações antes que o Robo comece a rastrear o aplicativo em teste ou após a conclusão de um rastreamento, por exemplo, limpe os dados do aplicativo em teste antes de um rastreamento ou altere as configurações do dispositivo.
  • Altere aspectos do comportamento do Robo durante um rastreamento, em particular:
    • Faça o Robo ignorar alguns widgets da interface do usuário ou telas de aplicativos.
    • Forneça uma ação personalizada para o Robo executar ao voltar de uma tela específica.
    • Faça com que o Robo execute ações específicas sempre que uma tela específica do aplicativo for encontrada durante um rastreamento.
  • Personalize completamente como o Robo realiza um rastreamento. Por exemplo, use uma combinação de ações condicionais e não condicionais para manter o aplicativo em teste em segundo plano durante todo o rastreamento, enquanto executa manipulações do dispositivo e descarta quaisquer caixas de diálogo pop-up que aparecem ao longo do caminho.

Tenha em mente que os scripts Robo não substituem todos os tipos de testes. Você ainda precisa de testes de unidade para detectar bugs lógicos de baixo nível em seu aplicativo; esses testes normalmente não exigem um ambiente Android ou iOS. Recomendamos que você complemente os testes de script Robo com testes de instrumentação direcionados que possam ter afirmações específicas e detalhadas sobre a lógica de negócios, que são melhor expressas em código.

Grave um script Robo usando Test Lab no Android Studio

O gravador de script Robo no Android Studio permite gravar scripts Robo interagindo diretamente com o aplicativo no seu dispositivo. Siga estas instruções para começar a usar scripts Robo por meio da ferramenta Firebase no Android Studio:

  1. Abra o Android Studio e selecione Ferramentas -> Firebase .

  2. No painel Firebase, clique em Gravar script do Robo e usá-lo para guiar o teste do Robo .

  3. Clique em Gravar script do Robo . A caixa de diálogo Selecionar destino de implantação é exibida.

  4. Selecione o dispositivo no qual deseja gravar o script Robo.

  5. Depois de gravar o script Robo no dispositivo, salve o arquivo como um arquivo JSON no local desejado.

  6. Abra a página Test Lab no console do Firebase e faça upload do arquivo de script JSON e do APK do aplicativo.

  7. Clique no botão Continuar . Você será solicitado a selecionar o dispositivo e o nível da API. Após a conclusão do script de teste, o Test Lab gera o relatório de teste.

  8. (Opcional) Para copiar ou baixar o logcat do relatório de teste e do vídeo, clique em Visualizar arquivos de origem .

Por padrão, os mecanismos de robustez do script Robo evitam que ele falhe antecipadamente. Se você escolher o modo de execução strict e um script do Robo falhar a qualquer momento, o Test Lab abandonará todas as etapas adicionais do script e retomará um rastreamento normal do Robo. Na maioria das vezes, os scripts do Robo falham porque o Robo não consegue encontrar um elemento necessário na tela. Para evitar falhas, certifique-se de que a navegação do seu aplicativo seja previsível e que suas telas sejam mostradas em uma ordem determinística.

Execute um script Robo no Test Lab

Para executar um script Robo no Test Lab, siga estas instruções:

  1. Abra a página Test Lab no console do Firebase.

  2. Faça upload do APK ou AAB do aplicativo no campo App APK ou AAB .

  3. Carregue seu arquivo de script Robo gravado ou criado manualmente no campo Robo script (opcional) .

Forneça um script Robo para uma execução de teste local do Robo

Para fornecer um script Robo para uma execução de teste Robo local, use a seguinte opção de teste Robo:

--robo-script-file <robo-script-path>

Substitua <robo-script-path> por um caminho para o arquivo de script Robo no sistema de arquivos local. Siga as instruções para uma execução de teste local do Robo .

Especifique um script Robo em uma invocação de teste da CLI gcloud

Para especificar um script Robo em uma invocação de teste da CLI gcloud, use o seguinte sinalizador da CLI gcloud:

--robo-script = <robo-script-path>

Substitua <robo-script-path> por um caminho para o arquivo de script Robo no sistema de arquivos local ou no Cloud Storage usando a notação gs:// . Por exemplo:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

Próximos passos