Was ist Appium?
Appium ist ein Open Source Framework, zur Testautomatisierung von Apps auf mobilen Geräten. Es basiert auf dem WebDriver-Protokoll und ermöglicht das Testen von nativen, hybriden und mobilen Applikationen unter iOS, Android und Windows.
Appium, as you can tell by the name, is selenium for apps – Dan Cuellar
Ebenso wie Selenium ist auch Appium ein Tool zur UI Testautomation und bedient sich des JSON-Wire-Protocols, das in diesem Fall die Testautomatisierung von Apps und nicht von Webanwendungen vereinfacht. Damit ist es möglich plattformübergreifende Tests zu erstellen, die unabhängig des Zielsystems (IOS, Android, Windows) ausgeführt werden können. Dies unterstützt die Mehrfachverwendung von Code.
Ein weiterer Vorteil ist ebenso, dass für die Tests die Applikation selbst nicht verändert werden muss. Die Tests finden aus Sicht eines Benutzers (Black-Box Testprinzip) über die Oberfläche der App statt. Dadurch können bereits fertige Anwendungen genau so wie Prototypen mit gemocktem Backend automatisiert werden.
Die Geschichte von Appium
- 2011: Dan Cuellar entwickelt „IOSAuto“ – den Vorgänger von Appium
- 2012: „IOSAuto“ wird als Open Source Projekt auf Github veröffentlicht
- 2013: Sauce Labs finanziert die weitere Entwicklung des Programms
- 2014: Release von Appium 1.0
- 2016: Appium wird Teil der JS Foundation, um den Open Source Charakter weiter zu festigen
Funktionsweise
Appium funktioniert über einen lokalen Server, der auf dem Rechner aufgesetzt wird. Dabei nutzt es nur standardisierte API’s und Technologien wie zum Beispiel XCUITest und UIAutomator. Ganz ähnlich wie Selenium können die Tests in vielen Sprachen über diverse Software-Entwicklungsumgebungen durch die dazugehörigen Language Bindings geschrieben und ausgeführt werden. Beispielsweise ist eine Automation per Java, C# oder auch Python möglich.
Appium arbeitet dabei als „Übersetzer“ zwischen dem Testskript und der zu testenden Applikation. Dies bietet den Vorteil, dass das Testskript für die jeweils richtige Version kompiliert und somit system- und versionsspezifische Besonderheiten beim Test berücksichtigt werden. So können einmal aufgesetzte Testsuits auch für nachfolgende IOS/Android-Versionen relevant bleiben.
Einsatzfelder
Appium wird hauptsächlich zum Testen von grafischen Applikationen verwendet. Es bietet die Möglichkeit Nutzereingaben zu automatisieren und dadurch die Funktionalität der Benutzeraktionen sicherzustellen. Dadurch kann die Qualität der Software auch bei Änderungen sichergestellt und das Applikationsverhalten dokumentiert werden. Eine leichte Zweckentfremdung, aber auch häufig verwendete Funktion ist das Automatisieren von sich wiederholenden Abläufen im App-Kontext (RPA).
Vor- und Nachteile
Vorteile von Appium
- Open Source – große Community, gemeinsame Weiterentwicklung, sehr viele Blogs und Hilfestellungen, viele Einträge auf Stackoverflow
- Keine Lizenzkosten, keine Abhängigkeit von großen kommerziellen Anbietern
- Unterstützung durch größte IT Konzerne wie Microsoft, sowie kleinere Anbieter wie SouceLabs
- Einbindung in alle gängigen Programmiersprachen (Java, C#, JavaScript, Python, Ruby, Perl, …)
- Effiziente Kommunikation mit der Zielapplikation
- Keine physikalische Abbildung von Benutzereingaben über Maus und Tastatur in der interaktiven Session notwendig
- Eingebaute Touch Actions für Apps wie z.B. Swipe
- Parallelisiertes Testen in gleicher OS Session möglich
Nachteile von Appium
- Nur zum Testen von UI Anwendungen geeignet
- Kein kommerzieller Support verfügbar
- Lange Wartezeiten auf einige Bug-fixes
- Tests werden programmiert, Entwickler-Skills notwendig