Teste Uiautomator
Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
26 de junho de 2024 | 2.3.0 | - | - | 2.4.0-alpha01 |
Declarar dependências
Para adicionar uma dependência ao teste, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle
do
seu app ou módulo:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
Para mais informações sobre dependências, consulte Adicionar dependências de build.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Versão 2.4
Versão 2.4.0-alpha01
26 de junho de 2024
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha01
. A versão 2.4.0-alpha01 contém estas confirmações.
Mudanças na API
- O uso de
Configurator#getKeyInjectionDelay
esetKeyInjectionDelay
foi descontinuado porque o parâmetro não é usado, agora que o texto é sempre injetado diretamente em vez de pressionamentos de tecla (I3bcc5).
Correções de bugs
- O atraso entre os eventos de movimento
UiObject2
foi atualizado para considerar as taxas de atualização dinâmicas (ou seja, Smooth Display) (I43f12). - Redução da inconsistência da inatividade do nó de acessibilidade em determinadas interfaces invalidando periodicamente o cache de acessibilidade (I3be25).
- Correção de
StaleObjectException
s que ocorriam ao chamartoString
ouhashCode
em umUiObject2
desatualizado (I38ea1). - Melhoramos o desempenho de
UiWatcher
ao pular chamadaswaitForIdle
desnecessárias. (I8c65e). - Correção de imprecisões do javadoc, especialmente para esclarecer quando cada parâmetro
Configurator
é usado. (Ie10b1, I71631).
Versão 2.3.0
Versão 2.3.0
21 de fevereiro de 2024
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0
. A versão 2.3.0 contém estas confirmações.
Mudanças importantes desde a versão 2.2.0
- Suporte a várias telas: foi adicionado suporte para encontrar e operar objetos em várias telas, além de métodos
UiDevice
para gerenciar telas secundárias (Ie6544, I912cd). - Novos seletores:
- Condições personalizadas: uma interface
Condition
foi exposta para oferecer suporte às condições de espera personalizadas e os métodosUiDevice#wait
,UiObject2#wait
eUiObject2#scrollUntil
correspondentes foram adicionados (27c0ea, 099d6e). - Correções de bugs e confiabilidade
- Correção de um problema em que os cálculos de tamanho de tela às vezes ficavam incorretos e podiam ignorar partes da tela (Ifc016). As coordenadas e os deslocamentos usados nos testes podem precisar ser ajustados.
- A injeção de
MotionEvent
foi atualizada para melhorar a precisão (678ca3) e emular melhor os gestos do usuário (454450). - Melhoria na confiabilidade de rolagens (I7b059), rotações (c6cea0), cliques longos (49572b), pinças (3c619a) e muito mais.
Versão 2.3.0-rc01
7 de fevereiro de 2024
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-rc01
sem mudanças. A versão 2.3.0-rc01 contém estas confirmações.
Versão 2.3.0-beta01
13 de dezembro de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-beta01
. A versão 2.3.0-beta01 contém estas confirmações.
Mudanças na API
- Os métodos de margem baseados em porcentagem
UiObject2
foram renomeados comosetGestureMarginPercentage
esetGestureMarginsPercentage
para fins de consistência (I24435).
Correções de bugs
- Melhoria no erro gerado quando uma tela secundária não é encontrada ou não acessível (116b23).
Versão 2.3.0-alpha05
1º de novembro de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha05
. A versão 2.3.0-alpha05 contém estas confirmações.
Mudanças na API
- Adição de
UiObject2#getDrawingOrder
para expor informações da ordem de exibição (Z-index). (I5dfa4). - Foram adicionados métodos
UiDevice
para receber, definir, congelar e descongelar a rotação de telas secundárias. (I912cd).
Correções de bugs
- Foi adicionada uma nova tentativa a
UiObject2#scrollUntil
quando o final da rolagem não era detectado (Ibac6f). - Foi corrigido o problema em que
UiDevice
usava uma instânciaInstrumentation
desatualizada se fosse recriada (I18cae). - Foi corrigido um possível NPE se o ID de exibição não pudesse ser determinado durante o despejo de nós (Icafcb).
- Um aviso foi adicionado ao executar cliques/rolagens em objetos não clicáveis/roláveis (I4a5d9).
- A velocidade de rolagem padrão do
UiObject2
foi reduzida para melhorar a confiabilidade (I5e071).
Versão 2.3.0-alpha04
26 de julho de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha04
. A versão 2.3.0-alpha04 contém estas confirmações.
Mudanças na API
By.hasParent
eBy.hasAncestor
foram adicionados para oferecer suporte à localização de objetos de acordo com os pais (I93c36).- Foram adicionados
UiObject2#getHint
para extrair o texto de dica de um objeto e métodosBy.hint
para selecionar objetos de acordo com o texto de dica (Idd345). By.displayId
foi adicionado para oferecer suporte à seleção de objetos de acordo com a tela em que eles estão (I1825b).- Os métodos
UiDevice#getDisplayHeight(int)
eUiDevice#getDisplayWidth(int)
foram adicionados para encontrar as dimensões de uma tela pelo ID (Ie6544). - Os métodos
wait(SearchCondition, long)
ewait(UiObject2Condition, long)
foram adicionados novamente para oferecer compatibilidade com versões anteriores (Iebfda). - O
UiDevice#executeShellCommand
foi mudado para público, mas não recomendado em vez de oculto (Ic48a1).
Correções de bugs
- A injeção de
MotionEvent
foi atualizada para reduzir a inconsistência, priorizando a precisão dos gestos em vez da velocidade (678ca3). - O rastreamento foi adicionado a métodos com muitos recursos para identificar gargalos de desempenho (d17de3).
- Foi adicionado um mecanismo de repetição ao iniciar uma conexão de UiAutomation (048caf).
- Correção de um possível NPE de nós nulos em
UiDevice#dumpWindowHierarchy
(b725eb). - Correção de erros inesperados de consultas ou operações em telas particulares (985db6, 7053d4).
Versão 2.3.0-alpha03
19 de abril de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha03
. A versão 2.3.0-alpha03 contém estas confirmações.
Mudanças na API
- Uma interface
Condition
foi exposta para permitir condições de espera personalizadas, em vez de depender apenas dos integrados noUntil
, e os métodosUiDevice#wait
eUiObject2#wait
foram atualizados para aceitar essa interface (27c0ea). - O
UiObject2#scrollUntil
foi adicionado para oferecer suporte à rolagem até que uma condição seja atendida e alcançar a paridade comUiScrollable
(099d6e). UiDevice#setOrientationPortrait
esetOrientationLandscape
foram adicionados para facilitar as rotações entre tipos de dispositivos (e13cb7).UiObject2#setGestureMarginPercent
foi adicionado para oferecer suporte à definição de margens relativas ao tamanho do objeto. (Ib8c77).
Correções de bugs
- Correção de métodos
UiScrollable
que usavam coordenadas inválidas nos SDKs 18 a 22 (b53ece). - Correção da falha de
UiObject2#setText
eclearText
ao modificar o texto nos SDKs 18 e 19 (77e41d). - Correção de
UiWatcher
s que não eram executados na ordem correta (c85f92). - Foi corrigido um problema em que a rotação do dispositivo podia ainda não estar completa após uma mudança de orientação de
UiDevice
(c6cea0). - Melhoria na confiabilidade de cliques longos, arrastar e fazer gestos de pinça (49572b, 3c619a).
Versão 2.3.0-alpha02
11 de janeiro de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha02
. A versão 2.3.0-alpha02 contém estas confirmações.
Mudanças na API
- A geração de registros foi reformulada em toda a biblioteca para fornecer mais informações, avisar sobre possíveis problemas e melhorar a consistência.
- A
UiDevice#pressKeyCodes
foi adicionada para permitir o pressionamento de várias teclas simultaneamente, por exemplo, pressionando POWER e VOLUME_DOWN para fazer uma captura de tela (22e525). - A
UiDevice#setCompressedLayoutHierarchy
foi adicionada e aUiDevice#setCompressedLayoutHeirarchy
foi descontinuada para corrigir um erro de digitação no nome do método (4e2f65). - A
UiAutomatorInstrumentationTestRunner
foi marcada como descontinuada por lidar comUiAutomatorTestCase
s descontinuadas e não ser mais necessária (be6c85). - Atualizamos o atraso entre
MotionEvent
s deUiObject2
para o dobro da taxa de atualização da tela com o objetivo de emular melhor os gestos do usuário (454450). - Adição de suporte para texto com várias linhas e correspondência de descrição (1625e6, b/255787130).
Correções de bugs
- Correção de
StaleObjectException
s que às vezes eram geradas ao consultar ou aguardar objetos (4cbcc0). - Correção dos valores de retorno de
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
eflingToEnd
que não indicam se o início/fim foi alcançado (d33e06). - Correção dos métodos
UiScrollable#scrollForward
escrollBackward
, ignorando o tempo limite configurado (29e4f3). - Correção do construtor de cópia
BySelector
, que não processava seletores de profundidade (6c7b91). - Correção do processamento de valores percentuais inválidos em
UiObject#pinchIn
epinchOut
(01b973). - Correção de um problema raro em que o suporte a várias janelas era perdido se a conexão da
UiAutomation
fosse redefinida (1bb956).
Versão 2.3.0-alpha01
7 de setembro de 2022
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha01
. A versão 2.3.0-alpha01 contém estas confirmações.
Mudanças na API
- Anotação de nulidade para todos os métodos públicos.
- A injeção de
MotionEvent
agora é assíncrona com um pequeno atraso para gestosUiObject2
mais suaves. - O intervalo de pesquisa durante a espera foi reduzido de 1.000 ms para 100 ms.
UiDevice#wakeUp
eUiDevice#sleep
foram atualizados para usarKEYCODE_WAKEUP
eKEYCODE_SLEEP
para oferecer suporte a dispositivos que substituem o botão liga/desliga.- Foram adicionados o elemento
UiObject2#getDisplayId
e suporte para encontrar e gerenciar objetos em várias telas. - Os métodos
UiObject#click
eUiObject2#clickAndWait
foram adicionados para clicar em um ponto usando as coordenadas dele.
Correções de bugs
- Foi corrigido um problema em que os cálculos de tamanho da tela, algumas vezes, eram incorretos e podiam ignorar partes da tela, especialmente no modo de várias janelas (Ifc016c).
- Foi corrigido o dimensionamento de capturas de tela em
UiDevice#takeScreenshot
(Id80ad6). - Melhorias na confiabilidade de
Until.scrollFinished
eUiObject2#scroll
(I7b0595). - Os avisos de
IncorrectContextUseViolation
no modo estrito foram corrigidos (Iffa6a0).