HowTo: Appium-Testautomation auf einem Android-Emulator

Ich rate von Appium zur UI-Testautomatisierung von mobilen Apps ab. Man kann mit Appium sowohl Android Apps als auch überraschenderweise Windows Programme testen. Im Folgenden findet sich eine Anleitung zum Testautomatisieren von Android Apps auf einem Android Emulator (auf Rechner mit Windows-Betriebssystem).
Voraussetzungen

  • Android Studio mit eingerichtetem und gestartetem Android Emulator auf einem Windows-Computer
  • Runtergeladenes .apk file (dessen Name kein Leerzeichen enthalten darf), z.B. HelloCharts.

Step-By-Step-Anleitung
Die offizielle Anleitung ist einseits an manchen Stellen überfrachtet, an manchen Stellen aber auch lückenhaft, daher folgende Ergänzungshinweise:
Setup
@1: Erweitere die PATH-Variable um C:\Program Files\nodejs
@4: Nachdem die PATH-Variable um ‚C:\Program Files (x86)\Appium‘ erweitert wurde …
Additional Setup for Android App Testing
@1: Java-Home festlegen
@2:
Man findet den Android SDK path im Android Studio -> Tools -> Android -> SDK Manager -> Appearance & Behavior -> System Settings -> Android SDK im Textefeld neben ‚Android SDK Location‘. Bei mir lautet der Pfad: „C:\Users\michael\AppData\Local\Android\sdk“
Voraussetzung ist, dass die „Android SDK Platform-tools“ installiert sind (Android Studio -> Tools -> SDK Manager -> Appearance & Behavoir -> System Settings -> Android SDK -> Tab: ‚SDK Tools‘ -> ‚Android SDK Platform-Tools‘ anhaken und installieren.
@3/@4: diese beiden Build-Tools werden für diese Anleitung nicht benötigt, weshalb ich diese beiden Punkte überspringe.
@5:
Die Default-Einstellungen in Appium müssen erstmal nicht geändert werden.
Starte die Appium GUI und launche dort (Button rechts oben) den ‚Appium Node Server‘:
2016-11-03 13_37_09-Appium_ Kinderleichte Mobile App Testautomatisierung.
@6:
deviceName – zwar muss man diesen Wert setzen; sofern man nur einen Emulator auf dem Rechner laufen läßt, kann diese capability mit einem beliebigen Wert besetzt werden.
platformName lautet ‚Android‘
Die platformVersion auslesen: Im Android-Emulator ins Menü gehen, auf Settings klicken, dann ganz runter wischen und dann auf ‚About phone‘ klicken. Das was unter ‚android version‘ steht ist der richtige Wert für PlatformVersion.
app ist der Dateipfad zum zu launchenden .apk file
Mit folgendem Code kann man einen automatischen Test auf dem Android-Gerät ausführen:

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.SetCapability("deviceName", "USB-23c3caa8");
desiredCapabilities.SetCapability("platformName", "Android");
desiredCapabilities.SetCapability("platformVersion", "5.0.2");
desiredCapabilities.SetCapability("app", @"C:\Users\mlwowr\Downloads\HelloChartsSamples_v1.5.3_apkpure.com.apk");
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), desiredCapabilities);