Uiautomator testen

  
Framework für anwendungsübergreifende UI-Tests
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpha-Release
26. Juni 2024 2.3.0 - - 2.4.0-alpha01

Abhängigkeiten deklarieren

Wenn Sie eine Testabhängigkeit hinzufügen möchten, müssen Sie Ihrem Projekt das Maven-Repository von Google hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre Anwendung oder Ihr Modul die Abhängigkeiten für die Artefakte hinzu, die Sie benötigen:

Cool

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")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder Verbesserungsvorschläge für diese Bibliothek haben. Bitte sieh dir die vorhandenen Probleme in dieser Bibliothek an, bevor du eine neue erstellst. Sie können einem vorhandenen Problem Ihre Stimme hinzufügen, indem Sie auf die Sternschaltfläche klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 2.4

Version 2.4.0-alpha01

26. Juni 2024

androidx.test.uiautomator:uiautomator:2.4.0-alpha01 wurde veröffentlicht. Version 2.4.0-alpha01 enthält diese Commits.

API-Änderungen

  • Configurator#getKeyInjectionDelay und setKeyInjectionDelay wurden eingestellt, da der Parameter jetzt nicht mehr verwendet wird, da Text immer direkt und nicht durch Drücken von Tasten eingeschleust wird. (I3bcc5)

Fehlerkorrekturen

  • Die Verzögerung zwischen UiObject2 Bewegungsereignissen wurde aktualisiert, um dynamische Aktualisierungsraten zu berücksichtigen (z.B. Smooth Display) (I43f12).
  • Weniger Unregelmäßigkeiten aufgrund von veralteten Bedienungshilfen-Knoten auf bestimmten Benutzeroberflächen, indem der Bedienungshilfen-Cache regelmäßig entwertet wurde (I3be25).
  • Ein Problem mit StaleObjectException wurde behoben, das beim Aufrufen von toString oder hashCode bei einem veralteten UiObject2 aufgetreten ist. (I38ea1)
  • Die Leistung von UiWatcher wurde verbessert, indem unnötige waitForIdle-Aufrufe übersprungen wurden. (I8c65e)
  • Javadoc-Ungenauigkeiten wurden behoben, um insbesondere zu verdeutlichen, wann die einzelnen Configurator-Parameter verwendet werden. (Ie10b1, I71631).

Version 2.3.0

Version 2.3.0

21. Februar 2024

androidx.test.uiautomator:uiautomator:2.3.0 wurde veröffentlicht. Version 2.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 2.2.0

  • Multi-Display-Unterstützung: Unterstützung für die Suche und Bearbeitung von Objekten auf mehreren Bildschirmen sowie UiDevice-Methoden zum Verwalten sekundärer Bildschirme (Ie6544, I912cd) wurde hinzugefügt.
  • Neue Selektoren:
    • By.displayId wurde hinzugefügt, um Objekte nach ihrer Anzeige-ID auszuwählen (I1825b).
    • By.hasParent und By.hasAncestor wurden hinzugefügt, um Objekte entsprechend ihren übergeordneten Elementen auszuwählen (I93c36).
    • Es wurden By.hint-Methoden zur Auswahl von Objekten nach ihrem Hinweistext hinzugefügt (Idd345).
  • Benutzerdefinierte Bedingungen: Es wurde eine Condition-Schnittstelle zur Unterstützung benutzerdefinierter Wartebedingungen bereitgestellt und entsprechende UiDevice#wait-, UiObject2#wait- und UiObject2#scrollUntil-Methoden (27c0ea, 099d6e) hinzugefügt.
  • Fehlerkorrekturen und Zuverlässigkeit
    • Es wurde ein Problem behoben, bei dem die Berechnungen der Anzeigegröße gelegentlich falsch waren und Teile des Bildschirms ignorierten (Ifc016). Die in Tests verwendeten Koordinaten und Offsets müssen möglicherweise angepasst werden.
    • Die MotionEvent-Injection wurde aktualisiert, um die Genauigkeit (678ca3) zu verbessern und Nutzergesten besser zu emulieren (454450).
    • Die Zuverlässigkeit von Scrollen (I7b059), Rotationen (c6cea0), langen Klicks (49572b), Pinches (3c619a) und mehr wurde verbessert.

Version 2.3.0-rc01

7. Februar 2024

androidx.test.uiautomator:uiautomator:2.3.0-rc01 wurde ohne Änderungen freigegeben. Version 2.3.0-rc01 enthält diese Commits.

Version 2.3.0-beta01

13. Dezember 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 wurde veröffentlicht. Version 2.3.0-beta01 enthält diese Commits.

API-Änderungen

  • Die prozentbasierten Margenmethoden UiObject2 wurden aus Konsistenzgründen in setGestureMarginPercentage und setGestureMarginsPercentage umbenannt (I24435)

Fehlerkorrekturen

  • Die Fehlermeldung, die angezeigt wird, wenn ein sekundärer Bildschirm nicht gefunden wird oder nicht zugänglich ist, wurde verbessert (116b23).

Version 2.3.0-alpha05

1. November 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 wurde veröffentlicht. Version 2.3.0-alpha05 enthält diese Commits.

API-Änderungen

  • UiObject2#getDrawingOrder wurde hinzugefügt, um Informationen zur Zeichenreihenfolge (Z-Index) bereitzustellen. (I5dfa4)
  • Es wurden UiDevice-Methoden zum Abrufen, Festlegen, Einfrieren und Aufheben der Rotation von sekundären Bildschirmen hinzugefügt. (I912cd)

Fehlerkorrekturen

  • UiObject2#scrollUntil wurde Wiederholungsversuch hinzugefügt, wenn das Ende des Scrollens nicht erkannt werden konnte (Ibac6f).
  • Ein Problem wurde behoben, bei dem UiDevice bei Neuerstellung eine veraltete Instrumentation-Instanz verwendet hat (I18cae).
  • Die mögliche NPE wurde behoben, wenn die Anzeige-ID beim Dump von Knoten nicht ermittelt werden konnte (Icafcb).
  • Es wurde eine Warnung hinzugefügt, die beim Klicken oder Scrollen bei nicht klickbaren/scrollbaren Objekten auftritt (I4a5d9).
  • Die standardmäßige Scrollgeschwindigkeit von UiObject2 wurde reduziert, um die Zuverlässigkeit zu verbessern (I5e071).

Version 2.3.0-alpha04

26. Juli 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha04 wurde veröffentlicht. Version 2.3.0-alpha04 enthält diese Commits.

API-Änderungen

  • By.hasParent und By.hasAncestor wurden hinzugefügt, um das Suchen von Objekten gemäß ihren übergeordneten Elementen zu unterstützen (I93c36).
  • Es wurden UiObject2#getHint zum Abrufen des Hinweistexts eines Objekts und By.hint-Methoden zur Auswahl von Objekten gemäß ihrem Hinweistext hinzugefügt (Idd345).
  • By.displayId wurde hinzugefügt, um die Auswahl von Objekten entsprechend dem Bildschirm zu unterstützen, in dem sie angezeigt werden (I1825b).
  • Die Methoden UiDevice#getDisplayHeight(int) und UiDevice#getDisplayWidth(int) wurden hinzugefügt, um die Abmessungen eines Displays anhand der ID zu ermitteln (Ie6544).
  • Die Methoden wait(SearchCondition, long) und wait(UiObject2Condition, long) wurden für die Abwärtskompatibilität wieder hinzugefügt (Iebfda).
  • UiDevice#executeShellCommand“ wurde zu „öffentlich“ geändert, aber nicht mehr als ausgeblendet (Ic48a1).

Fehlerkorrekturen

  • MotionEvent-Injection wurde aktualisiert, um Schwachstellen zu reduzieren, da die Genauigkeit der Touch-Geste Vorrang vor der Geschwindigkeit hat (678ca3).
  • Methoden mit hohem Ressourcenverbrauch wurden um ein Tracing zur Identifizierung von Leistungsengpässen ergänzt (d17de3).
  • Ein Wiederholungsmechanismus zum Initiieren einer UiAutomation-Verbindung (048caf) wurde hinzugefügt.
  • Eine mögliche NPE von Null-Knoten in UiDevice#dumpWindowHierarchy (b725eb) wurde behoben.
  • Unerwartete Fehler bei Abfragen oder beim Ausführen auf privaten Bildschirmen (985db6, 7053d4) wurden behoben.

Version 2.3.0-alpha03

19. April 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha03 wurde veröffentlicht. Version 2.3.0-alpha03 enthält diese Commits.

API-Änderungen

  • Eine Condition-Schnittstelle wurde eingeführt, um benutzerdefinierte Wartebedingungen zu ermöglichen, anstatt sich ausschließlich auf die integrierten Until zu verlassen. Außerdem wurden die Methoden UiDevice#wait und UiObject2#wait aktualisiert, um diese Schnittstelle zu akzeptieren (27c0ea).
  • UiObject2#scrollUntil wurde hinzugefügt, um das Scrollen zu unterstützen, bis eine Bedingung erfüllt ist, und um eine Parität mit UiScrollable zu erreichen (099d6e).
  • UiDevice#setOrientationPortrait und setOrientationLandscape wurden hinzugefügt, um die Rotation zwischen Gerätetypen (e13cb7) zu erleichtern.
  • UiObject2#setGestureMarginPercent wurde hinzugefügt, um das Festlegen von Rändern relativ zur Objektgröße zu unterstützen. (Ib8c77)

Fehlerkorrekturen

  • Fehler bei UiScrollable-Methoden behoben, bei denen in den SDKs 18 bis 22 (b53ece) gelegentlich ungültige Koordinaten verwendet wurden.
  • Das Problem, dass bei UiObject2#setText und clearText Text in SDKs 18 und 19 (77e41d) nicht geändert werden konnte, wurde behoben.
  • Ein Problem wurde behoben, durch das UiWatchers nicht in der richtigen Reihenfolge ausgeführt wurden (c85f92).
  • Ein Problem wurde behoben, durch das die Gerätedrehung nach einer Änderung der UiDevice-Ausrichtung (c6cea0) möglicherweise noch nicht abgeschlossen war.
  • Verbesserte Zuverlässigkeit bei langen Klicks, Ziehbewegungen und Fingern (49572b, 3c619a).

Version 2.3.0-alpha02

11. Januar 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha02 wurde veröffentlicht. Version 2.3.0-alpha02 enthält diese Commits.

API-Änderungen

  • Überarbeitetes Logging in der gesamten Bibliothek, um mehr Informationen bereitzustellen, vor möglichen Problemen zu warnen und die Konsistenz zu verbessern.
  • UiDevice#pressKeyCodes wurde hinzugefügt, um das gleichzeitige Drücken mehrerer Tasten zu unterstützen, z.B. das Drücken der Ein/Aus-Taste und der Leisertaste, um einen Screenshot zu erstellen (22e525).
  • UiDevice#setCompressedLayoutHierarchy wurde hinzugefügt und UiDevice#setCompressedLayoutHeirarchy wurde verworfen, um einen Tippfehler im Methodennamen zu korrigieren (4e2f65).
  • UiAutomatorInstrumentationTestRunner wurde als veraltet gekennzeichnet, da damit eingestellte UiAutomatorTestCases verarbeitet werden und nicht mehr erforderlich sind (be6c85).
  • Die Verzögerung zwischen UiObject2 MotionEvents wurde auf die doppelte Aktualisierungsrate des Displays aktualisiert, um Nutzergesten besser zu emulieren (454450).
  • Der Abgleich von mehrzeiligen Texten und Beschreibungen wird jetzt unterstützt (1625e6, b/255787130).

Fehlerkorrekturen

  • Behebung des Problems, dass StaleObjectExceptions gelegentlich beim Abfragen oder Warten auf Objekte ausgegeben wurden (4cbcc0).
  • Die Rückgabewerte von UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning und flingToEnd, die angeben, ob Anfang/Ende erreicht wurde, wurden korrigiert (d33e06).
  • Fehler bei den Methoden UiScrollable#scrollForward und scrollBackward behoben, bei denen das konfigurierte Zeitlimit (29e4f3) ignoriert wurde.
  • Der BySelector-Kopierkonstruktor, der keine Tiefenauswahlen verarbeitet, wurde behoben (6c7b91).
  • Die Verarbeitung ungültiger Prozentwerte in UiObject#pinchIn und pinchOut (01b973) wurde korrigiert.
  • Ein seltenes Problem wurde behoben, bei dem der Mehrfenstermodus nach dem Zurücksetzen der zugrunde liegenden UiAutomation-Verbindung nicht mehr unterstützt wurde (1bb956).

Version 2.3.0-alpha01

7. September 2022

androidx.test.uiautomator:uiautomator:2.3.0-alpha01 wurde veröffentlicht. Version 2.3.0-alpha01 enthält diese Commits.

API-Änderungen

  • Der Nullwert aller öffentlichen Methoden wurde annotiert.
  • MotionEvent-Injection wurde mit kurzer Verzögerung auf asynchrone UiObject2-Touch-Gesten umgestellt.
  • Das Abfrageintervall beim Warten wurde von 1.000 ms auf 100 ms verkürzt.
  • UiDevice#wakeUp und UiDevice#sleep wurden aktualisiert, sodass KEYCODE_WAKEUP und KEYCODE_SLEEP zur Unterstützung von Geräten verwendet werden, bei denen die Ein/Aus-Taste überschrieben wird.
  • UiObject2#getDisplayId und Unterstützung für die Suche und Verwaltung von Objekten auf mehreren Bildschirmen wurden hinzugefügt.
  • Die Methoden UiObject#click und UiObject2#clickAndWait zum Klicken auf einen Punkt mithilfe seiner Koordinaten wurden hinzugefügt.

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem die Berechnungen der Anzeigegröße gelegentlich falsch waren und Teile des Bildschirms ignorierten, insbesondere im Mehrfenstermodus (Ifc016c).
  • Die Skalierung von Screenshots in UiDevice#takeScreenshot (Id80ad6) wurde korrigiert.
  • Die Zuverlässigkeit von Until.scrollFinished und UiObject2#scroll wurde verbessert (I7b0595).
  • IncorrectContextUseViolation-Warnungen im strikten Modus (Iffa6a0) wurden behoben.