Android-Apps mit Monkey testen
Dieser Artikel ist bereits über 3 Jahre alt. Die Inhalte sind wahrscheinlich bereits überholt und nicht mehr aktuell.
Mit dem Android-SDK ist es problemlos möglich Apps mit simulierten Benutzereingaben zu testen. Das mitgelieferte Tool “Monkey” übernimmt dabei die ganze Arbeit. Hier erfahren Sie, wie einfach es mit dem Android-SDK möglich ist, Apps auf dem eigenen Gerät problemlos mit simulieren Benutzereingaben zu Testen.
Das Problem
Wer schon einmal eine Android-App entwickelt hat weiß, wie hart es ist, diese App möglichst gut zu Testen. Gerade dafür gibt es Websites wie apkudo.com, die das Testen auf verschiedenen Geräten übernehmen und es sogar ausführlich dokumentieren. Wenn man allerdings keine Lust hat, seine App Anderen anzuvertrauen (aus verschiedensten Gründen), kann man auch selbst mit “Monkey” aus dem Android-SDK testen.
Was ist Monkey?
Monkey wird im Android-SDK ausgeliefert und ist in der adb.exe
enthalten. Wenn Sie das SDK nicht besitzen, können Sie es sich ganz einfach bei Google kostenlos herunterladen. Mit einem einzigen Befehl in der Eingabeaufforderung/Konsole lassen sich beliebig viele Benutzereingaben in der App simulieren. Bei Fehlern oder Problemen wird der Test-Vorgang abgebrochen und Sie sehen den dazugehörigen LogCat.
Der Testvorgang
Monkey ist sehr einfach zu bedienen und Sie benötigen nur folgende Schritte um den Testvorgang zu starten:
Vorbereitung
- In den Ordner mit der
adb.exe
navigieren, dort eine Eingabeaufforderung/Konsole öffnen - In dieser
adb start-server
eingeben - Das Smartphone anschließen (Debugging-Modus!) oder den Emulator starten
adb devices
eingeben, um zu prüfen, ob das Smartphone verwendbar ist- Mit
adb shell
auf die Shell des Geräts zugreifen
Testvorgang starten
Mit monkey -p
kann der Testlauf gestartet werden. Dabei sollte die Anzahl der Tests bei 500-1.000 liegen. Ein Beispiel-Aufruf wäre also:
monkey -p com.android.browser 500
Daraufhin lässt Monkey 500 zufällige Eingaben (Tastendrücke, Berührungen) auf die App los und zeigt – sobald ein Fehler auftritt – den entsprechenden LogCat an.