Appium

Die Lösung für mobile Testautomation?

Hybrid-Apps: warum?

Mit dem Angebot unterschiedlicher Betriebssysteme und Endgeräte, vor allem im mobilen Anwendungsbereich, gewinnen plattformübergreifende Applikationen, kurz App, immer mehr an Bedeutung. Kunden erwarten, wenn eine App auf Android verfügbar ist, diese auch auf iOS verwenden zu können und umgekehrt. Darum wird immer öfter die Entscheidung getroffen Hybrid-Apps zu entwickeln, welche für Apples iOS-Geräte, genauso wie auf Googles Androiden laufen. Für die Entwicklung solcher cross-platform Apps, gibt es mittlerweile eine Hand voll Tools, wie beispielsweise:

  • Xamarin
  • Phonegap
  • Sencha.

Aber welches Tool verwendet man, um seinen Multiplattformer zu testen?

Für automatisierte Tests stellen Apple, genauso wie Google Automations-Frameworks für ihre Produkte zur Verfügung.

  • Ab iOS 9.3: XCUITest
  • Ab Android 4.2: UIAutomation 2

Android-Tests sind ausschließlich in Java zu schreiben, für iOS-Tests kann man zwischen Objective-C oder Swift wählen. Da Appium mit Libraries der populärsten Programmiersprachen versorgt ist, können Tests in folgenden Sprachen erstellt werden:

  • Ruby
  • Python
  • Java
  • JavaScript
  • PHP
  • C#
  • Objective C
  • Robotframework

Web-Driver API und mehr

Appium baut auf die Web-Driver API und erweitert diese um sämtliche von den Herstellern angebotenen Frameworks, sowie nützliche Smartphone-Funktionen (Zoomen, Scrollen etc.). Dies bringt den Vorteil, dass die App nicht instrumentiert (Anm: dh. nicht mit Zusatzinformationen erweitert und damit verändert) werden muss. Es wird also die App getestet, die letztendlich auch im Store landet.

Durch das verwendete Client-Server-Protokoll (JSON Wire Protocol) für den WebDriver, wird ausschließlich über HTTP-Requests kommuniziert. Es können Tests in jeder Programmiersprache geschrieben werden, solange sie eine Client-HTTP-API unterstützt. Allerdings ist es ratsam die von Appium zur Verfügung gestellten Libraries zu verwenden

Tests und Server laufen auf unterschiedlichen Geräten

Die größte Stärke der verwendeten Client-Server Architektur ist, dass Tests und Server auf unterschiedlichen Geräten laufen können. Mithilfe von Cloud Services werden Tests auf einer Vielzahl echter aber auch simulierter Geräte durchgeführt. So können sich Kosten der Testumgebung senken lassen, ohne einen Qualitätsverlust befürchten zu müssen. Ganz im Gegenteil, es kann sogar bedeuten, dass sich dadurch die Qualität der App beträchtlich erhöht, vor allem, wenn zuvor nur auf den aktuellsten Flagships oder nur mit Emulatoren getestet wurde.

Auf einem Client wird ein Test-Run gestartet. Appium übersetzt die Befehle und führt diese auf den entsprechenden Smartphones durch. Nach Abschluss des Testlaufs, werden die Ergebnisse an den Client übermittelt.

Auf einem Client wird ein Test-Run gestartet. Appium übersetzt die Befehle und führt diese auf den entsprechenden Smartphones durch. Nach Abschluss des Testlaufs, werden die Ergebnisse an den Client übermittelt.

Die Appium-Community

Mittlerweile werden auch Client-Lösungen für Appium angeboten. Beispielsweise bietet Appium Desktop eine einfache Oberfläche, einen Inspektor und wie aus anderen Tools bekannt, kann per Maus-Klick ein Testfall aufgenommen werden. Diese Client-Lösungen schränken einen in der Anwendung zwar oft ein, zeigen aber wie vielfältig Appium eingesetzt werden kann.

Außerdem: Appium ist Open Source und hat eine große Community hinter sich vereint. Es gibt selten ein Problem, welches gänzlich unbekannt ist oder für das es noch keine Lösungsvorschläge gibt. Es ist vertreten auf GitHub und seit 2016 Teil der JS Foundation.

Fazit

Abschließend die 4 philosophischen Grundsätze, auf denen Appium aufbaut:

  1. You shouldn't have to recompile your app or modify it in any way in order to automate it.
  2. You shouldn't be locked into a specific language or framework to write and run your tests.
  3. A mobile automation framework shouldn't reinvent the wheel when it comes to automation APIs.
  4. A mobile automation framework should be open source, in spirit and practice as well as in name!

Können Sie sich mit diesen Grundsätzen identifizieren?

Alle Infos zu Appium gibt es auf https://appium.io

Autor
SEQIS Autor Andreas Steiner

Andreas Steiner
Senior Consultant
Testautomation, Testdurchführung, Softwarequalitätssicherung, Requirements Engineering

Sie haben eine Frage?

Newsletter

Um neue Beiträge per E-Mail zu erhalten, hier die E-Mail-Adresse eingeben.

Unsere Autoren

Informieren Sie sich über unsere Autoren und erfahren Sie mehr über unsere Spezialisten und ihre Fachbereiche:

Zu den Autoren

Sie haben eine Frage?

Zurück

Zum Seitenanfang navigieren