Implementar o modo de arcabouço de testes

O modo de arcabouço de teste é um recurso adicionado no Android 10 para desenvolvedores de apps de terceiros que querem automatizar um dispositivo ou uma frota de dispositivos. O recurso oferece um método para limpar todos os dados do usuário em um dispositivo Android, manter as chaves ADB e pular todas as telas de configuração inicial. Isso permite que o usuário execute um teste de interface imediatamente após a inicialização, sem nenhuma interação manual.

Personalização

É possível determinar se um dispositivo está no modo de teste verificando ActivityManager.isRunningInUserTestHarness(). Mantenha as personalizações no mínimo. Limite-as a coisas como pular telas de configuração (no teclado ou no assistente de configuração) que quebrariam testes de interface ou exigiriam interação manual.

Implementação

A implementação padrão de PersistentDataBlockManagerInternal está em PersistentDataBlockService. O modo de arcabouço de testes está implementado em TestHarnessModeService.

A implementação padrão do modo de teste usa o mesmo mecanismo de armazenamento da proteção de redefinição de fábrica para armazenar as chaves adb temporariamente em uma partição persistente. Se uma partição persistente com proteção contra redefinição para a configuração original já estiver implementada no dispositivo de teste, será necessário pouco ou nenhum trabalho para oferecer suporte ao recurso.

Os OEMs que não têm uma partição persistente configurada precisam implementar PersistentDataBlockManagerInternal antes de executar TestHarnessModeService.

Verificar o status do modo de arcabouço de testes

Quando o modo Arcabouço de testes está ativado, ActivityManager.isRunningInUserTestHarness() retorna true.

Executar o modo de arcabouço de testes

Ativar o modo de teste limpa todos os dados do dispositivo e o configura para testes. Isso significa que todas as partes do dispositivo que podem interferir no teste (como contas de sincronização automática, verificação de pacotes e atualizações automáticas) são desativadas por padrão, mas o usuário pode reativá-las.

Execute o comando adb para ativar o modo Arcabouço de testes:

adb shell cmd testharness enable