UI Automator é um framework de testes de IU recomendado para testes funcionais de IU entre apps instalados e do sistema.
O framework de testes do UI Automator oferece um conjunto de APIs para criar testes de IU que realizam interações em apps de usuário e do sistema. As APIs do UI Automator permitem realizar operações como abrir o menu de configurações ou o Acesso rápido aos apps em um dispositivo de teste. O framework de testes do UI Automator é adequado para programar testes automatizados no estilo caixa preta, em que o código do teste não se baseia em detalhes internos de implementação do app de destino.
Os principais recursos do framework de testes do UI Automator incluem:
- Um visualizador para inspecionar a hierarquia de layouts. Para saber mais, consulte Visualizador do UI Automator.
- Uma API para recuperar informações de estado e realizar operações no dispositivo de destino. Para saber mais, consulte Como acessar o estado do dispositivo.
- APIs compatíveis com testes de IU entre apps. Para saber mais, consulte APIs do UI Automator.
Visualizador do UI Automator
A ferramenta uiautomatorviewer
oferece uma GUI conveniente para verificar e analisar os componentes de IU exibidos no momento em um dispositivo Android. Você pode usar essa ferramenta para inspecionar a hierarquia de layouts e ver as propriedades de componentes de IU visíveis no primeiro plano do dispositivo. Essas informações permitem criar testes mais detalhados por meio do UI Automator. Por exemplo, é possível criar um seletor de IU correspondente a uma propriedade visível específica.
A ferramenta uiautomatorviewer
fica localizada no diretório <android-sdk>/tools/bin
.
Como acessar o estado do dispositivo
A estrutura de teste UI Automator fornece uma classe UiDevice
para acessar e realizar operações no dispositivo em que o app de destino está sendo executado. Você pode chamar os métodos dessa classe para acessar propriedades do dispositivo, como orientação atual ou tamanho da tela. A classe UiDevice
também permite realizar ações como:
- Mudar a rotação do dispositivo.
- Pressionar uma tecla de hardware, como "Aumentar volume".
- Pressionar os botões "Voltar", "Início" ou "Menu".
- Abrir a aba de notificações.
- Fazer uma captura de tela da janela atual.
Por exemplo: para simular o pressionamento do botão "Início", chame o método UiDevice.pressHome()
.
APIs do UI Automator
As APIs do UI Automator permitem programar testes robustos sem conhecer os detalhes de implementação do app de destino. Você pode usar essas APIs para capturar e manipular componentes da IU em vários apps:
UiCollection
: enumera os elementos da IU de um contêiner com a finalidade de contar ou segmentar subelementos de acordo com o texto visível ou pela propriedade de descrição de conteúdo.UiObject
: representa um elemento da IU que está visível no dispositivo.UiScrollable
: permite procurar itens em um contêiner de IU rolável.UiSelector
: representa uma consulta para um ou mais elementos da IU de destino em um dispositivo.Configurator
: permite definir parâmetros importantes para executar testes do UI Automator.
Por exemplo, o código a seguir mostra como programar um script de teste que exibe o Acesso rápido aos apps padrão no dispositivo.
Kotlin
device = UiDevice.getInstance(getInstrumentation()) device.pressHome() // Bring up the default launcher by searching for a UI component // that matches the content description for the launcher button. val allAppsButton: UIObject = device.findObject( UiSelector().description("Apps")) // Perform a click on the button to load the launcher. allAppsButton.clickAndWaitForNewWindow()
Java
device = UiDevice.getInstance(getInstrumentation()); device.pressHome(); // Bring up the default launcher by searching for a UI component // that matches the content description for the launcher button. UiObject allAppsButton = device .findObject(new UiSelector().description("Apps")); // Perform a click on the button to load the launcher. allAppsButton.clickAndWaitForNewWindow();
Para saber mais sobre o uso do UI Automator, consulte a Referência da API e o guia Testar a IU de vários apps.
Outros recursos
Para saber mais sobre o uso do UI Automator em testes do Android, consulte os recursos a seguir.
Amostras
- BasicSample (em inglês): amostra básica do UI Automator.