© Excellent backgrounds/Shutterstock.com
Java Magazin
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.

Arne Limburg, Lars Röwekamp


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

/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 Komponenten man mithilfe welcher Qualifier innerhalb des Blackbox-Test zugreifen möchte, kann mit der Implementierung des Tests begonnen werden.

In unserem Beispiel wollen wir den Test nicht auf einer eigenen App durchführen sondern direkt auf dem Android OS. Dies ergibt zum Beispiel Sinn...

Java Magazin
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.

Arne Limburg, Lars Röwekamp


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

/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 Komponenten man mithilfe welcher Qualifier innerhalb des Blackbox-Test zugreifen möchte, kann mit der Implementierung des Tests begonnen werden.

In unserem Beispiel wollen wir den Test nicht auf einer eigenen App durchführen sondern direkt auf dem Android OS. Dies ergibt zum Beispiel Sinn...

Neugierig geworden?


   
Loading...

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