Appium Plugin Reference
Inhaltsverzeichnis
Einleitung[Bearbeiten]
Appium ist ein freies Open Source Framework zum Testen und Automatisieren von mobilen Anwendungen. Diese Tests können entweder auf realen mobilen Endgeräten, oder auf emulierten / simulierten Geräten durchgeführt werden. Hierbei werden sowohl Android- als auch iOS-Geräte unterstützt. expecco bietet mit seinem Appium Plugin eine Schnittstelle zur Ausführung von Tests mithilfe von Appium an. Das erste Kapitel dieser Dokumentation beschreibt die Verwendung des Appium Bundles, einer von eXept erstellten Zusammenstellung von Appium, dem Android SDK und des JDK. Mit dieser können Sie schnell erste Tests umsetzen. Der erste Abschnitt des Kapitels erläutert die Installation des Bundles auf Ihrem Betriebssystem. Sollten Sie das Bundle bereits installiert haben, so können Sie diesen Abschnitt überspringen. Im Anschluss wird beschrieben, wie Sie die einzelnen Komponenten des Bundles starten können. Um einen praktischen Eindruck von unserer Appium Implementierung zu bekommen, wird zum Ende des Kapitels ein kurzes Tutorial beschrieben, wie Sie erste Tests mithilfe des Bundles ausführen können. Im zweiten Kapitel soll anhand eines beispielhaften Testaufbaus das Appium Plugin und dessen Interaktion mit dem Appium Server, zum Testen von mobilen Anwendungen, näher erläutert werden. Hierbei wird der Fokus auf die dazu verwendeten Technologien gesetzt um Entwicklern einen Ansatzpunkt zum selbständigen entwickeln von Bausteinen oder zur Erweiterung der bestehenden Funktionsbibliothek zu ermöglichen.
Setup[Bearbeiten]
Installation des Bundles[Bearbeiten]
Um schnell Ihre ersten Schritte mit dem mobilen Testen in expecco durchzuführen, können Sie unter folgender Adresse das Appium Bundle herunterladen: [ Here be link ]. Der Download besteht aus einer einzelnen Installationsdatei. Nachdem Sie diese heruntergeladen haben, können Sie die Installation mit einem Doppelklick auf die Datei starten. Folgen Sie dann den Anweisungen des Installationsprogramms und wählen Sie einen Installationsort für das Bundle aus. Während des Installationsvorgangs wird unter Umstände die Appium App gestartet. Diese können Sie wieder schließen, da der Appium Server für den Test später direkt gestartet wird.( Nach erfolgreicher Installation können Sie, wie im nächsten Abschnitt beschrieben, Ihren ersten Test ausführen.)
Appium Server und Android Emulator starten[Bearbeiten]
Die beiden Hauptkomponenten des Bundles sind zum einen der Android Emulator, auf dem die Test ausgeführt werden, sowie der Appium Server, welcher die Kommunikation zwischen expecco und dem Emulator ermöglicht. Sie können diese beiden Komponenten direkt über die beiden Shortcuts auf dem Desktop starten, die während der Installation angelegt wurden. Alternativ können Sie auch die beiden Batchdateien "start_appium.bat" und "start_emulator_arm.bat" im Installationsverzeichnis des Bundles starten. Der Emulator benötigt in der Regel einige Minuten zum Hochfahren. Beim ersten Start zeigt der Emulator ein kurzes Tutorial an, welches durchgearbeitet werden muss, bevor mit dem Testen begonnen werden kann. Klicken Sie zunächst, wie auf dem Bildschirm angezeigt, auf den Launcher-Icon unten in der Mitte. Nachdem der Launcher sich geöffnet hat, wird auf dem Bildschirm die Anweisung angezeigt, die Kamera-App zu starten. Klicken Sie stattdessen einfach auf den blauen OK-Button rechts unten. Der Emulator wird speichern, dass Sie das Tutorial bereits durchgearbeitet haben und es in Zukunft nicht mehr anzeigen.
Verbindungsaufbau über den Appium Verbindungsdialog[Bearbeiten]
Um über den Appium-Server eine Verbindung zu einer mobilen Anwendung aufzubauen, wechseln Sie zunächst in expecco in den GUI-Browser. Dort können Sie auf der linken Seite Verbinden auswählen und dann im erscheinenden Dropdownmenü Appium auswählen. Daraufhin öffnet sich der Appium Verbindungsdialog (siehe Screenshot) in dem Sie die gewünschten Parameter für die Verbindung konfigurieren. Geben Sie zunächst die Adresse des Appium Server in das Eingabefeld ein. Standardmäßig wird der Appium Server auf Port 4723 gestartet. Geben Sie also folgendes ein:
http://<IP des Appium Hostrechners>:4723/wd/hub
Als nächstes müssen Sie die Konfiguration für die Verbindung angeben. Wenn Sie das Appium Bundle verwenden, dann können Sie durch einen Klick auf Bundle Settings rechts oben den Dialog automatisch mit den korrekten Einstellungen befüllen. Um den Dialog zu befüllen, wählen Sie links unten aus der Dropdownbox die gewünschten sogenannten Capabilities aus. Um sie der Konfiguration hinzuzufügen, klicken Sie auf Entfernen. Danach können Sie in der Liste im Dialog die entsprechenden Werte für die einzelnen Capabilities eingeben. Die folgenden Capabilities sind für einen Verbindungsaufbau notwendig:
- plattformName Wählen Sie hier aus, ob Sie eine Android-App oder eine iOS-App automatisieren wollen.
- udid Wählen Sie hier aus, auf welchem Gerät Sie die App automatisieren wollen, z.B. emulator-5554
Für Android-Apps sind folgende Capabilities zusätzlich notwendig:
- appPackage Geben Sie hier das Package der zu automatisierenden App an, z.B. com.apple.calculator
- appActivity Geben Sie hier die Activity innerhalb des Packages an, ".Calculator"
Für iOS-Apps sind folgende Capabilities zusätzlich notwendig:
- bundleId Geben Sie hier die Bundle-ID der zu automatisierenden App an, z.B. "com.apple.calculator"
Nachdem Sie alle gewünschten Capabilities hinzugefügt haben, können Sie mit einem Klick auf Verbinden den Verbindungsaufbau starten. Weitere Informationen zu verfügbaren Capabilities finden Sie unter:
http://appium.io/slate/en/master/?java#appium-server-capabilities
Ersten Test ausführen[Bearbeiten]
Um einen ersten Einblick ins Testen mobiler Anwendungen mit expecco zu bekommen, können Sie nun einen der Beispieltests ausführen. Starten Sie zunächst expecco über die entsprechende Verknüpfung auf dem Desktop oder im Startmenü. In expecco klicken Sie "Datei -> Öffnen ..." in der Menüleiste aus und navigieren ins Verzeichnis "<expeccoInstallationsverzeichnis>\testsuites\examples". Dort wählen Sie die Testsuite "m01_Appium.ets" aus. Diese enthält einige Beispieltestfälle, welche über Appium auf dem Android Emulator ausgeführt werden können. Bevor Sie den ersten Test ausführen, stellen Sie bitte sicher, dass Sie sowohl den Appium Server als auch den Android Emulator gestartet haben und beide bereit sind. Der Emulator sollte fertig hochgefahren und das oben erwähnte Tutorial mindestens einmal durch gearbeitet worden sein. Der Appium Server ist bereit, wenn er die ersten Logeinträge auf seiner Konsole ausgibt. Der erste Test, welchen Sie ausführen können, befindet sich im Testplan "Simple Calculator Test". Dieser öffnet auf dem Emulator den Standardtaschenrechner und nutzt ihn um eine einfache Rechnung durchzuführen. Sie führen ihn aus indem sie einfach den entsprechenden Testplan navigieren und im Editor auf der rechten Seite auf den kleinen grünen Pfeil klicken (siehe Screenshot).
Entwicklerguide[Bearbeiten]
Architektur und Technologien[Bearbeiten]
Die Anbindung an das Appium Testframework wurde über den 'Appium Driver', einer Weiterentwicklung des Selenium WebDriver, umgesetzt. Das auf HTML und JavaScript basierende Interface wurde funktional so erweitert, dass es als Schnittstelle zum Appium Server verwendet werden kann und dadurch dessen Dienste zum Testen von mobilen Anwendungen genutzt werden können. Diese beiden Komponenten kommunizieren über das JSON Wire Protokoll miteinander. Zur Zeit unterstützt Appium das Testen auf iOS und Android Systemen. Grundsätzlich können die Test in diversen Programmiersprachen geschrieben werden. Jedoch muss beim Erstellen der Tests, definiert werden, auf welchem System sich die zu testende Anwendung befindet. An dieser Definition orientiert sich der Server, sucht sich die auszuführenden Aktionen heraus und sendet diese Befehle in einer dem Zielsystem verständlichen Form an die Endgeräte. Als Middleware für Android Systeme wird die Android Debug Bridge genutzt. Für iOS Systeme hingegen wird Instruments verwendet.