© Excellent backgrounds/Shutterstock.com
Kleine Helferlein im Android SDK

Versteckte Perle: uiautomator


Innerhalb des Android SDKs befinden sich eine ganze Menge kleiner Helferlein, von denen leider viele Entwickler bisher kaum Kenntnis genommen haben. Grund genug für „Good to know“, immer mal wieder eine dieser Perlen vorzustellen. Heute im Programm: uiautomator.

Das im Android SDK enthaltene Android Testing Framework [1] zur Umsetzung von Unit und Integration-Tests ist wohl jedem Android-Entwickler ein Begriff. Dass in dem SDK zusätzlich zwei weitere Tools zum automatisierten UI Testing schlummern, dürfte dagegen für den einen oder anderen neu sein:

  • uiautomatorviewer: Ein GUI-Tool zum Scannen und Analysieren der UI-Komponenten einer Android-Anwendung.

  • uiautomator: Eine Java Library zur Implementierung von Functional-UI-Tests inkl. Excecution Engine zur Ausführung der Tests.

In Kombination genutzt, erlauben die beiden Tools ein automatisiertes UI Blackbox Testing. Während das Android Testing Framework und auch andere UI Testing Frameworks, wie Espresso, lediglich das „Klicken“ innerhalb der eigenen App simulieren können, geht das uiautomator Framework [2] einen etwas anderen Weg und erlaubt so auch das Starten und Testen anderer Apps. Der typische Workflow für einen uiautomator-UI-Test gestaltet sich wie folgt:

  • Step 1: Installieren und Analysieren der zu testenden App.

  • Step 2: Schreiben der automatisierten Tests zur Simulation von Userinteraktion.

  • Step 3: Kompilieren der Tests und installieren des JARs auf dem Test Device.

  • Step 4: Test starten und Ergebnisse analysieren.

UI-Analyse

In einem ersten Schritt wird die zu testende Anwendung auf dem Emulator oder realen Device installiert und bezüglich ihrer zu testenden Komponenten analysiert. Hier kommt das erste Tool des Frameworks ins Spiel, der uiautomatorviewer. Nach dem Starten via

uiautomatorviewer

über die Kommandozeile im Verzeichnis

<android-sdk>/tools/

öffnet sich ein visuelles Tool, das die detaillierte Analyse des UI ermöglicht. Das Tool zeigt alle Komponenten an, mit denen der User interagieren kann, also alle potenziellen Kandidaten für einen automatisierten Test. Neben den UI-Komponenten selbst wird zusätzlich ein Qualifier angezeigt, der im späteren Verlauf der Testimplementierung als Selektionskriterium zum Auffinden der Komponente dienen kann. Der Qualifier ergibt sich übrigens aus der android:contentDescription und sollte somit in einer gut designten App für jede UI-Komponente vorhanden sein.

Testdefinition

Hat man einmal die zu testende App analysiert und weiß, auf welche Kompon...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang