Quando uma macro Android falha no meio de uma sequência, repetir o fluxo inteiro nem sempre mostra a causa. O toque pode estar correto, mas a condição anterior não passou. Um deslize pode funcionar sozinho e chegar à tela errada quando executado depois de outro passo. Apagar ações para encurtar o teste só cria mais trabalho para reconstruí-las depois.
O EmuloMobile oferece dois controles diferentes para investigar esse tipo de falha: o botão Testar executa um passo uma vez na tela atual, enquanto o botão de energia permite desativar temporariamente um passo de primeiro nível. Assim, você pode verificar uma ação isolada, excluir trechos do próximo ensaio completo e manter a configuração no construtor.
Este guia trata de depuração de uma macro já criada. Para montar o primeiro fluxo, comece pelo tutorial de automação Android sem PC, ADB ou root.
Comece pela primeira diferença observável
Antes de editar, reproduza a falha uma vez e anote a primeira diferença entre o resultado esperado e o real. Evite começar pelo último sintoma.
Se a macro deveria abrir uma lista, escolher um item e confirmar, por exemplo, a ausência da confirmação pode ter começado antes: a lista não abriu, o item errado foi tocado ou a condição do botão final não passou. A primeira tela divergente reduz o trecho que precisa ser investigado.
Registre três pontos:
- qual tela deveria estar visível antes do passo;
- qual ação ou condição deveria responder a essa tela;
- qual mudança deveria aparecer logo depois.
Essa referência separa uma falha do passo atual de uma falha herdada do passo anterior.
Entenda a diferença entre testar e desativar
Os dois controles não são equivalentes.
Testar um passo serve para responder: “este card funciona agora, com a tela neste estado?”. O EmuloMobile avalia as condições associadas ao passo e, se elas passarem, dispara a ação uma vez sobre a tela real.
Desativar um passo serve para responder: “como o restante da macro se comporta sem este card durante uma execução?”. O passo desativado é ignorado pelo motor antes da avaliação das condições e antes de qualquer captura ou OCR exigido por ele. Os passos vizinhos mantêm sua ordem.
Um teste individual confirma o comportamento local. Uma execução com passos temporariamente desativados confirma a interação entre um conjunto menor de etapas. Use os dois níveis nessa ordem.
Prepare a tela para um teste individual
Abra o aplicativo que será automatizado e deixe-o exatamente no estado esperado pelo passo. Um teste isolado não executa automaticamente toda a preparação que viria antes dele.
Confira também os pré-requisitos da macro:
- use a mesma resolução e orientação registradas na criação;
- ative o serviço de acessibilidade do EmuloMobile para ações de toque e gesto;
- permita a captura de tela quando o passo ou suas condições dependerem de imagem, cor ou texto;
- pare outra execução antes de pedir uma nova captura no construtor;
- use dados de teste quando a ação puder confirmar, enviar ou excluir algo no app de destino.
Se o passo depende de uma variável alterada anteriormente, reproduza essa preparação no fluxo ou ajuste o caso de teste. As variáveis começam com seus valores padrão em uma nova sessão; o guia de variáveis e contadores em macros Android explica esse ciclo.
Como testar um passo no EmuloMobile
Abra a automação no construtor e localize o primeiro card ligado à divergência. Em seguida:
- posicione o app de destino na tela que o passo espera;
- volte ao construtor sem alterar a resolução ou a orientação;
- toque no ícone verde de Play do card para testar o passo;
- observe se as condições passaram e se a ação foi disparada;
- volte imediatamente ao app de destino e confira a mudança esperada.
Faça apenas uma alteração por rodada. Se um toque por imagem não encontra o alvo, por exemplo, primeiro confira a imagem e a região de busca. Só depois ajuste a correspondência. Mudar região, condição e temporização ao mesmo tempo impede saber qual correção resolveu o problema.
Quando o passo funciona sozinho, mas falha no fluxo
Esse resultado indica que a ação é capaz de funcionar, mas não prova que recebe o estado correto durante a sequência. Investigue:
- se o passo anterior deixou a tela esperada;
- se a interface precisa de tempo para concluir uma transição;
- se a condição é avaliada antes do sinal visual aparecer;
- se uma variável ainda tem o valor esperado;
- se outro passo altera a mesma área da tela antes da ação.
O problema agora está na fronteira entre etapas, não necessariamente no card testado.
Desative passos sem apagá-los
Para reduzir a execução completa, use o botão de energia exibido nos cards de primeiro nível. Ao desativar um card, ele fica esmaecido no construtor. O índice é preservado e a ação continua configurada para ser reativada depois.
Um procedimento seguro é:
- mantenha ativos os passos de preparação necessários;
- desative os cards posteriores ao trecho que está sendo analisado;
- selecione Salvar, pois as mudanças do construtor são explícitas;
- prepare a execução e rode o trecho reduzido;
- confira a primeira mudança incorreta;
- reative um passo por vez até reproduzir a falha.
Não use a exclusão como atalho de depuração. Excluir um passo remove a configuração e pode apagar imagens que pertencem a ele quando a alteração for salva. Desativar mantém o card e seus parâmetros.
Atenção às ações compostas
Somente cards de primeiro nível podem ser ligados ou desligados individualmente. As subações dentro de uma Ação Composta não exibem esse controle separado.
Ao desativar uma Ação Composta de primeiro nível, trate o bloco inteiro como fora do ensaio. Para investigar um filho específico, use o teste disponível no card da subação ou crie uma cópia controlada da macro com uma estrutura menor. Não conclua que todas as subações funcionam apenas porque o bloco passou uma vez.
Essa limitação ajuda a preservar a unidade do bloco: a condição do pai e a sequência interna costumam representar uma única decisão do fluxo.
Exemplo: isole uma falha depois de uma confirmação
Considere uma macro com cinco passos:
- tocar em Abrir;
- deslizar uma lista;
- tocar em um item por texto;
- tocar em Confirmar quando o título correto estiver visível;
- tirar uma captura da tela concluída.
A captura não aparece. Comece posicionando o app na tela de confirmação e teste o passo 5. Se a captura for salva, o último passo funciona naquele estado.
Depois, teste o passo 4 sobre a tela anterior à confirmação. Se ele funcionar sozinho, desative temporariamente os passos 1 e 2, deixe o app manualmente na lista e execute 3, 4 e 5. Se o problema reaparecer, a fronteira entre a seleção do item e a confirmação merece atenção. Se não reaparecer, reative os passos 1 e 2, um por vez.
O objetivo não é provar que cada card funciona em qualquer tela. É encontrar o menor conjunto que ainda reproduz o erro.
Interprete o resultado sem confundir contexto
Um teste isolado pode produzir um falso senso de segurança quando o contexto foi preparado manualmente de forma diferente da execução real. Antes de aprovar o ajuste, compare:
- a tela usada no teste com a tela produzida pelo passo anterior;
- os valores padrão das variáveis com os valores acumulados no fluxo;
- a presença de avisos, teclado ou overlays que mudem o layout;
- a ordem das ações dentro de blocos compostos;
- as condições do card, que sempre são verificadas antes da ação.
Depois do teste reduzido, rode pelo menos uma execução desde o início. Use o controle flutuante do EmuloMobile para pausar assim que observar uma tela inesperada, sem perder o ponto da investigação.
Checklist antes de considerar a macro pronta
Ao terminar a depuração:
- reative todos os passos que pertencem ao fluxo final;
- confirme que nenhum card necessário continua esmaecido;
- salve explicitamente a automação;
- execute uma vez desde o estado inicial real;
- teste também uma condição que não deve passar;
- confira o comportamento de pausa e parada;
- verifique a mesma resolução e orientação usadas na criação.
Uma macro estável não é apenas uma coleção de passos que funcionam sozinhos. A tela produzida por cada etapa precisa ser a tela esperada pela próxima.
Encontre a falha antes de reconstruir o fluxo
Testar um passo e desativar temporariamente cards transforma uma sequência longa em hipóteses menores. Primeiro confirme o comportamento local, depois reduza a execução completa e, por fim, reative as etapas em ordem. Esse método preserva as ações já configuradas e torna explícito onde o estado da tela deixa de corresponder ao plano.
Conheça o EmuloMobile e crie, teste e execute macros diretamente no Android.