Blog

Jenkins emuliert Android-Devices

Emulierter Android

Emulierter Android

In den vergangenen Artikeln haben wir gezeigt, wie sich Android-Apps auf einem Jenkins-Buildserver bauen lassen.

Mit dem Emulieren von Android-Devices auf unserem Buildserver schaffen wir uns nun die Möglichkeit, automatisierte Unit-Tests über dieses Werkzeug zu steuern.

Auf unserem Server ist das Android-SDK bereits installiert. Da wir auch die Umgebungs-Variable $ANDROID_HOME gesetzt haben, müssen wir in unserem Jenkins nur noch das Android-Emulator-Plugin installieren. Weitere Konfigurationen sind dann nur noch in den einzelnen Build-Projekten vorzunehmen.

Einstellungen Build-Umgebung

Einstellungen Build-Umgebung

Konfiguration

Für jeden Build können dort die gewünschte Android-OS-Version, Bildschirmauflösung, SD-Kartengröße und lokale Informationen konfiguriert werden. Darüber hinaus können weitere generische Properties als Key-Value-Paare hinzugefügt werden.

Bei jedem Build-Vorgang wird dann auf dem Server die gewünschte Emulations-Instanz hochgefahren. Gegen diese können dann Unit-Tests durchgeführt werden. Es können APKs auf dem virtuellen Device installiert und deinstalliert werden. Stress-Tests mit dem Werkzeug Monkey sind ebenfalls möglich.

Verteiltes Bauen

Jenkins bietet eine Reihe weiterer Plugins an, um Build-Vorgänge auf separate Slave-Rechner zu verteilen. Bei den relativ lange laufenden Android-Emulatoren bieten sich Slaves auf jeden Fall an. Das PXE-Plugin ist dafür die erste Wahl, das es insbesondere das Konfigurieren der Slaves zum Kinderspiel macht.

Etwas fürs Auge

Bei der hier vorgestellten Konfiguration läuft der Android-Emulator nur als Kommandozeilen-Variante ohne Anzeige des Android-Displays. Für das Kompilieren der App und die allermeisten Unit-Tests sollte das völlig ausreichen.

Nice-to-have: Falls gewünscht ist, dass das Android-Display während des automatischen Tests sichtbar ist, kann dies mithilfe eines weiteren Jenkins-Plugins, dem Xvnc-Plugin, realisiert werden. Dazu muss auf dem Build-Server ein VNC-Server installiert sein. Damit lassen sich dann via VNC-Client von einem lokalen Rechner aus die automatischen Tests auf dem Build-Server betrachten.

Android Test via VNC betrachten

Android Test via VNC betrachten

Fazit

Will man Android-Builds und -Tests professionell und in großem Umfang durchführen, ist Jenkins mit seinen unzähligen Plugins das Mittel der Wahl. Man muss ein wenig Aufwand in den Aufbau der Infrastruktur investieren, doch danach können Integrations-Builds und Unit-Tests sehr komfortabel und vor allem automatisiert abgewickelt werden.

Bildquellen

Holisticon AG — Teile diesen Artikel

Über den Autor

Jan Weinschenker

Jan beschäftigt sich sich seit knapp sieben Jahren mit dem Design, der Entwicklung und der Verbesserung von verteilten Web- und Unternehmensanwendungen. Die Erstellung solider, qualitativ hochwertiger Software, sowie deren Wartbarkeit liegen ihm dabei besonders am Herzen. Jan Weinschenker ist Organisator des Web-Performance-Meetups Hamburg.

Antwort hinterlassen