Testa Uiautomator

  
Framework per i test dell'UI funzionale tra app
Aggiornamento più recente Release stabile Candidato per la release Versione beta Release alpha
21 febbraio 2024 2.3.0 - - -

Dichiarazione delle dipendenze

Per aggiungere una dipendenza al test, devi aggiungere il Repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il Repository Maven di Google.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per l'app o il modulo:

Trendy

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation "androidx.test.uiautomator:uiautomator:2.3.0"
}

Kotlin

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
}

Per ulteriori informazioni sulle dipendenze, vedi Aggiungere dipendenze build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se rilevi nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne una nuova. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Crea un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 2.3.0

Versione 2.3.0

21 febbraio 2024

androidx.test.uiautomator:uiautomator:2.3.0 viene rilasciato. La versione 2.3.0 contiene questi commit.

Modifiche importanti dalla versione 2.2.0

  • Supporto di più display: è stato aggiunto il supporto per trovare e gestire oggetti su più display e UiDevice metodi per gestire i display secondari (Ie6544, I912cd).
  • Nuovi selettori:
    • È stato aggiunto By.displayId per selezionare gli oggetti in base al relativo ID visualizzato (I1825b).
    • Sono stati aggiunti By.hasParent e By.hasAncestor per selezionare gli oggetti in base ai relativi elementi padre (I93c36).
    • Sono stati aggiunti By.hint metodi per selezionare gli oggetti in base al testo del suggerimento (Idd345).
  • Condizioni personalizzate: è stata esposta un'interfaccia Condition per supportare condizioni di attesa personalizzate; sono stati aggiunti i metodi UiDevice#wait, UiObject2#wait e UiObject2#scrollUntil corrispondenti (27c0ea, 099d6e).
  • Correzioni di bug e affidabilità
    • Risolto il problema per cui i calcoli delle dimensioni di visualizzazione a volte non erano corretti e potevano ignorare parti dello schermo (Ifc016). Le coordinate e gli offset utilizzati nei test potrebbero dover essere modificati.
    • È stata aggiornata l'inserimento di MotionEvent per migliorare l'accuratezza (678ca3) ed emulare meglio i gesti dell'utente (454450).
    • È stata migliorata l'affidabilità di scorrimenti (I7b059), rotazioni (c6cea0), clic lunghi (49572b), pizzichi (3c619a) e altro ancora.

Versione 2.3.0-rc01

7 febbraio 2024

androidx.test.uiautomator:uiautomator:2.3.0-rc01 viene rilasciato senza modifiche. La versione 2.3.0-rc01 contiene questi commit.

Versione 2.3.0-beta01

13 dicembre 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 viene rilasciato. La versione 2.3.0-beta01 contiene questi commit.

Modifiche alle API

  • I metodi di margine basati su percentuale di UiObject2 sono stati rinominati in setGestureMarginPercentage e setGestureMarginsPercentage per coerenza (I24435)

Correzioni di bug

  • Miglioramento dell'errore generato quando un display secondario non viene trovato o non è accessibile (116b23)

Versione 2.3.0-alpha05

1° novembre 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 viene rilasciato. La versione 2.3.0-alpha05 contiene questi commit.

Modifiche alle API

  • È stato aggiunto UiObject2#getDrawingOrder per esporre le informazioni sull'ordine dei disegni (z-index). (I5dfa4).
  • Sono stati aggiunti UiDevice metodi per recuperare, impostare, bloccare e sbloccare la rotazione dei display secondari. (I912cd).

Correzioni di bug

  • È stato aggiunto un nuovo tentativo a UiObject2#scrollUntil quando non è stato possibile rilevare la fine dello scorrimento (Ibac6f).
  • Risolto il problema per cui UiDevice utilizzava un'istanza Instrumentation inattiva se veniva ricreata (I18cae).
  • Risolto il possibile NPE se non è possibile determinare l'ID visualizzato durante il dump dei nodi (Icafcb).
  • È stato aggiunto un avviso quando si eseguono clic/scorrimenti su oggetti non cliccabili/scorribili (I4a5d9).
  • È stata ridotta la velocità di scorrimento predefinita UiObject2 per migliorare l'affidabilità (I5e071).

Versione 2.3.0-alpha04

26 luglio 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha04 viene rilasciato. La versione 2.3.0-alpha04 contiene questi commit.

Modifiche alle API

  • Sono stati aggiunti By.hasParent e By.hasAncestor per supportare la ricerca di oggetti in base ai relativi elementi padre (I93c36).
  • Sono stati aggiunti UiObject2#getHint per recuperare il testo del suggerimento di un oggetto e By.hint metodi per selezionare gli oggetti in base al testo del suggerimento (Idd345).
  • È stato aggiunto By.displayId per supportare la selezione degli oggetti in base al display in cui si trovano (I1825b).
  • Sono stati aggiunti i metodi UiDevice#getDisplayHeight(int) e UiDevice#getDisplayWidth(int) per trovare le dimensioni di un display in base al relativo ID (Ie6544).
  • Sono stati aggiunti di nuovo i metodi wait(SearchCondition, long) e wait(UiObject2Condition, long) per la compatibilità con le versioni precedenti (Iebfda).
  • UiDevice#executeShellCommand modificato in pubblico ma sconsigliato anziché nascosto (Ic48a1).

Correzioni di bug

  • È stata aggiornata l'iniezione di MotionEvent per ridurre la sfalsamento dando la priorità alla precisione dei gesti rispetto alla velocità (678ca3).
  • È stato aggiunto il tracciamento ai metodi che utilizzano molte risorse per identificare i colli di bottiglia delle prestazioni (d17de3).
  • È stato aggiunto un meccanismo di nuovo tentativo durante l'avvio di una connessione UiAutomation (048caf).
  • È stato corretto un possibile NPE da nodi nulli in UiDevice#dumpWindowHierarchy (b725eb).
  • Sono stati corretti gli errori imprevisti legati all'esecuzione di query o all'utilizzo su display privati (985db6, 7053d4).

Versione 2.3.0-alpha03

19 aprile 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha03 viene rilasciato. La versione 2.3.0-alpha03 contiene questi commit.

Modifiche alle API

  • L'interfaccia Condition è stata esposta per consentire condizioni di attesa personalizzate anziché fare affidamento esclusivamente sulle funzionalità integrate in Until; inoltre, i metodi UiDevice#wait e UiObject2#wait sono stati aggiornati per accettare questa interfaccia (27c0ea).
  • È stato aggiunto UiObject2#scrollUntil per supportare lo scorrimento fino a quando una condizione non è soddisfatta e per raggiungere la parità con UiScrollable (099d6e).
  • Sono stati aggiunti UiDevice#setOrientationPortrait e setOrientationLandscape per facilitare le rotazioni tra i tipi di dispositivi (e13cb7).
  • È stato aggiunto UiObject2#setGestureMarginPercent per supportare l'impostazione dei margini relativi alle dimensioni dell'oggetto. (Ib8c77)

Correzioni di bug

  • Sono stati corretti i metodi UiScrollable che a volte utilizzavano coordinate non valide negli SDK da 18 a 22 (b53ece).
  • Risolto il problema di UiObject2#setText e clearText per la mancata modifica del testo negli SDK 18 e 19 (77e41d).
  • Risolto il problema di esecuzione degli elementi UiWatcher nell'ordine corretto (c85f92).
  • È stato risolto il problema per cui la rotazione del dispositivo potrebbe non essere ancora stata completata dopo un cambio di orientamento di UiDevice (c6cea0).
  • Migliorata l'affidabilità di clic lunghi, trascina e pizzicatura (49572b, 3c619a).

Versione 2.3.0-alpha02

11 gennaio 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha02 viene rilasciato. La versione 2.3.0-alpha02 contiene questi commit.

Modifiche alle API

  • Logging rielaborato in tutta la libreria per fornire maggiori informazioni, avvisare in caso di possibili problemi e migliorare la coerenza.
  • È stato aggiunto UiDevice#pressKeyCodes per supportare la pressione di più tasti contemporaneamente, ad esempio la pressione di POWER e VOLUME_DOWN per acquisire uno screenshot (22e525).
  • Sono stati aggiunti UiDevice#setCompressedLayoutHierarchy e deprecato UiDevice#setCompressedLayoutHeirarchy per correggere un errore ortografico nel nome del metodo (4e2f65).
  • Contrassegnato UiAutomatorInstrumentationTestRunner come deprecato perché gestisce gli UiAutomatorTestCase deprecati e non è più necessario (be6c85).
  • Ritardo aggiornato tra UiObject2 MotionEvent al doppio della frequenza di aggiornamento del display per emulare meglio i gesti dell'utente (454450).
  • Aggiunto il supporto per la corrispondenza di descrizione e testo multiriga (1625e6, b/255787130).

Correzioni di bug

  • È stato risolto il problema che a volte venivano generati (StaleObjectException) durante l'esecuzione di query o l'attesa degli oggetti (4cbcc0).
  • Sono stati corretti i valori restituiti di UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning e flingToEnd che non indicavano se l'inizio/fine è stato raggiunto (d33e06).
  • Sono stati corretti i metodi UiScrollable#scrollForward e scrollBackward, ignorando il timeout configurato (29e4f3).
  • È stato corretto il costruttore di copia BySelector che non gestisce i selettori di profondità (6c7b91).
  • È stata corretta la gestione dei valori percentuali non validi in UiObject#pinchIn e pinchOut (01b973).
  • Risolto un raro problema per cui il supporto della modalità multi-finestra andava perso se la connessione UiAutomation sottostante veniva reimpostata (1bb956).

Versione 2.3.0-alpha01

7 settembre 2022

androidx.test.uiautomator:uiautomator:2.3.0-alpha01 viene rilasciato. La versione 2.3.0-alpha01 contiene questi commit.

Modifiche alle API

  • Annotazione dello stato nullo di tutti i metodi pubblici.
  • L'inserimento di MotionEvent è stato cambiato in asincrono con un breve ritardo per gesti UiObject2 più fluidi.
  • Intervallo di polling ridotto nell'attesa da 1000 ms a 100 ms.
  • Sono stati aggiornati UiDevice#wakeUp e UiDevice#sleep in modo che utilizzino KEYCODE_WAKEUP e KEYCODE_SLEEP per supportare i dispositivi che sostituiscono il tasto di accensione.
  • Sono stati aggiunti UiObject2#getDisplayId e supporto per trovare e gestire oggetti su più display.
  • Sono stati aggiunti i metodi UiObject#click e UiObject2#clickAndWait per fare clic su un punto utilizzando le sue coordinate.

Correzioni di bug

  • Risolto il problema per cui i calcoli delle dimensioni di visualizzazione a volte erano errati e potevano ignorare parti dello schermo, soprattutto in modalità multi-finestra (Ifc016c).
  • È stato corretto il ridimensionamento degli screenshot in UiDevice#takeScreenshot (Id80ad6).
  • È stata migliorata l'affidabilità di Until.scrollFinished e UiObject2#scroll (I7b0595).
  • Correzione degli avvisi IncorrectContextUseViolation relativi alla modalità con restrizioni (Iffa6a0).