Appium Plugin Reference

Aus expecco Wiki (Version 2.x)
Wechseln zu: Navigation, Suche

Achtung: dieses Plugin ist obsolet und wurde durch das Mobile Testing Plugin ersetzt.

Einleitung

Mit dem Appium Plugin können Anwendungen auf Android- und iOS-Geräten getestet werden. Dabei ist es egal, ob reale mobile Endgeräte oder emulierten Geräte verwendet werden. Das Plugin kann zusammen mit dem GUI-Browser verwendet werden, der das Erstellen von Tests unterstützt. Zudem ist damit das Aufzeichnen von Testabläufen möglich.

Zur Verbindung mit den Geräten wird Appium verwendet. Appium ist ein freies Open-Source-Framework zum Testen und Automatisieren von mobilen Anwendungen.

Dieses Dokument bezieht sich auf die expecco-Version 2.9. Die Dokumentation ab Version 2.10 finden Sie unter Mobile Testing Plugin.

Das zweite Kapitel dieser Dokumentation beschreibt das Einrichten und die Verwendung des Mobile Plugins. Der erste Abschnitt des Kapitels erläutert die Installation des Appium-Bundles auf Ihrem Betriebssystem, einer von eXept erstellten Zusammenstellung von Appium, dem Android SDK und dem JDK. Sollten Sie das Bundle bereits installiert haben, so können Sie diesen Abschnitt überspringen. In den folgenden Abschnitten wird beschrieben, wie Sie sich mit einem Gerät verbinden können und welche Möglichkeiten sich bieten, um eine Anwendung zu steuern und Tests zu erstellen.

Um einen praktischen Eindruck von unserer Appium-Implementierung zu bekommen, wird im dritten Kapitels ein kurzes Tutorial beschrieben, wie Sie einen Test ausführen und erstellen können. Im vierten Kapitel finden Sie ein weiteres Beispiel.

Setup

Installation des Bundles

Um schnell Ihre ersten Schritte mit dem mobilen Testen in expecco durchzuführen, laden Sie das Appium Bundle Setup von unserer Homepage herunter. Dieses vereint Inhalte von Drittanbietern, die zum Auslesen und Steuern von Mobilgeräten benötigt werden. Zum einen installiert es Appium, auf dem das Plugin größtenteils aufbaut. Außerdem können Sie damit auch wahlweise einen universellen adb-Treiber (ClockworkMod) installieren, mit dem Sie unter Windows eine Vielzahl von Geräten verwenden können. Natürlich können Sie auch selbst Appium oder Treiber für jedes Ihrer Geräte installieren.

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. Während des Installationsvorgangs wird die Appium-App gestartet. Diese können Sie wieder schließen, da der Appium-Server für den Test später direkt gestartet wird.

Falls Sie das Bundle an einer anderen Stelle als bei der Installation vorgeschlagen speichern, müssen Sie die Einstellungen des Plugins anpassen. Öffnen Sie diese in expecco über Extras > Einstellungen > Erweiterungen > Mobile Testing. Stehen dort keine Warnhinweise, ist alles in Ordnung.

Appium-Server starten

Das Appium Bundle beinhaltet einen Appium-Server, der die Kommunikation zwischen expecco und dem Testgerät ermöglicht. Sie können diesen direkt über den Menüpunkt Erweiterungen > Appium > Appium starten starten. Alternativ können Sie auch die Verknüpfung auf dem Desktop benutzen, die während der Installation angelegt wurde, oder die Batchdatei "start_appium.bat" im Installationsverzeichnis des Bundles. Es öffnet sich ein Fenster mit einer Konsole über die der Server läuft und in der seine Lognachrichten ausgegeben werden. Der Server ist bereit, sobald die ersten Lognachrichten erscheinen.

Mobilgerät verbinden

Das Plugin unterstützt Android-Geräte ab der Version 2.3.3. Wenn Sie ein Android-Gerät unter Windows anschließen benötigen Sie möglicherweise noch einen adb-Treiber für das Gerät. Einen passenden Treiber finden Sie üblicherweise auf der jeweiligen Webseite des Herstellers. Haben Sie den Universal-Treiber aus dem Bundle installiert, sollte bereits alles funktionieren und das Gerät korrekt erkannt werden.

Bevor Sie ein Mobilgerät mit dem Appium-Plugin ansteuern können, müssen Sie für dieses Debugging erlauben. Für Android-Geräte finden Sie diese Option in den Einstellungen unter Entwickleroptionen mit dem Namen USB-Debugging (siehe https://www.droidwiki.org/USB-Debugging). Für iOS-Geräte ab iOS 8 finden Sie diese Option in den Einstellungen unter Entwickler mit dem Namen Enable UI Automation. Beim Verbinden des Geräts mit dem PC über USB müssen Sie ggf. am Gerät noch der Verbindung zustimmen.

Verbindungsaufbau über den Appium-Verbindungsdialog

Nachdem Sie den Appium-Server gestartet haben und ein Gerät über USB verbunden ist, können Sie in expecco eine Verbindung zu einer mobilen Anwendung aufbauen. Wechseln Sie dazu in expecco in den GUI-Browser (1). Dort können Sie auf der linken Seite Verbinden auswählen (2) und dann im erscheinenden Dropdown-Menü Appium auswählen (3).

AppiumGUIBrowser.png


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-Servers in das Eingabefeld ein. Falls der Appium-Server mit den Standardeinstellungen auf Ihrem lokalen Rechner läuft, geben Sie Folgendes ein:

  http://127.0.0.1:4723/wd/hub

Falls Sie sich mit einem Server auf einem anderen Rechner oder Port verbinden wollen, passen Sie die IP-Adresse und die Portnummer entsprechend an.

Als nächstes müssen Sie die Konfiguration für die Verbindung angeben. Der Appium-Server verlangt hierfür die Angabe sogenannter Capabilities.

Für Tests unter Android empfiehlt es sich, hierfür den Android-Assistenten zu verwenden. Der Android-Assistent ermöglicht es Ihnen, die Capabilities für beliebige über USB angeschlossene Geräte automatisch auszufüllen.

Appium GUI AndroidWizard.png


Durch Klicken auf Android-Assistent öffnet sich der Einrichtungsassistent (siehe Screenshot). Mit Hilfe dieses Assistenten können Sie über Dropdown-Menüs die zu Verfügung stehenden Konfigurationen vornehmen.

Appium Settings showSystemPackages.png

Wählen Sie im obersten Feld das Gerät aus, mit dem Sie sich verbinden wollen. In der Liste des Dropdown-Menüs finden Sie alle erreichbaren Geräte. Daraufhin werden die auf dem Gerät vorhandenen Pakete abgerufen, dies kann einen Moment dauern. Ein Paket entspricht in der Regel einer installierten App. Die Pakete werden in Fremdpakete und Systempakete unterteilt. Von Ihnen installierte Anwendungen befinden sich unter den Fremdpaketen. Haben Sie noch keine Anwendung installiert, können Sie beispielsweise auch den Taschenrechner auswählen, der sich bereits auf dem Gerät befindet. Wählen Sie dazu die Systempakete aus. Im Eingabefeld darunter können Sie einen Filter eingeben, um die Liste der Pakete zu verkleinern. Geben Sie Calc als Filter ein und Sie finden Ihren Taschenrechner einfacher. (Das Paket heißt je nach Gerät verschieden, hat aber calculator im Namen.) Wählen Sie im Dropdown-Menü das gewünschte Paket aus und anschließend im untersten Dropdown-Menü eine Activity aus diesem Paket (z. B. .Calculator). Durch Klicken auf OK werden die Capabilities entsprechend Ihrer Auswahl gesetzt.

AppiumSettingsWizard.png

Für weitergehende Einstellungen können Sie die Capabilities auch manuell einzutragen. Wählen Sie dazu links unten aus der Dropdownbox die gewünschten Capabilities aus. Um sie der Konfiguration hinzuzufügen, klicken Sie auf Hinzufügen. Danach können Sie in der Liste im Dialog die entsprechenden Werte für die einzelnen Capabilities eingeben. Mit Entfernen können Sie eingetragene Capabilities wieder aus der Liste löschen.

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.
  • deviceName Geben Sie die Art des Geräts an, das verwendet werden soll. Für iOS erfahren Sie gültige Einträge mit instruments -s devices. Für Android wird die Angabe zwar ignoriert, muss aber gemacht werden.
  • udid Geben Sie hier den Identifier des Mobilgeräts an, auf welchem Sie die App automatisieren wollen. Eine Liste der verfügbaren Android-Geräte erhalten Sie mit adb devices -l, z.B. emulator-5554. Für iOS-Geräte finden Sie den Identifier im Eintrag des Geräts in Xcode.

Für Android-Apps sind folgende Capabilities zusätzlich notwendig:

installierte App benutzen
  • appPackage Geben Sie hier das Paket der zu automatisierenden App an, z.B. com.android.calculator2. Den Namen können Sie von Ihrem App-Entwickler erfahren.
  • appActivity Geben Sie hier die Activity innerhalb des Pakets an, die gestartet werden soll, z.B. .Calculator. Viele Apps besitzen nur eine Start-Activity, es können aber auch mehrere vorhanden sein. Diese können Sie ebenfalls von Ihrem App-Entwickler erfahren.
App installieren
  • app Geben Sie hier den Pfad zu einer .apk Datei an

Für iOS-Apps sind folgende Capabilities zusätzlich notwendig:

installierte App benutzen
  • bundleId Geben Sie hier die Bundle-ID der zu automatisierenden App an, z.B. com.apple.calculator
App installieren
  • app Geben Sie hier den Pfad zu einer .app oder .ipa Datei an

Für eine Verbindung zu Android-Geräten mit einer Version vor 4.3 ist zudem die Capability automationName wichtig. Sie gibt an, welche Automation-Engine benutzt wird. Möglich sind Selenium und Appium. Für Android-Geräte mit einer Version vor 4.1 muss hier Selendroid ausgewählt werden, da eine Verbindung mit Appium nicht möglich ist. Die Verwendung von Selendroid ist langsamer als Appium, außerdem sind die Eigenschaften der Elemente anders benannt. Erst ab Android Version 4.3 kann Appium umfangreiche Informationen zu Eigenschaften der Elemente erhalten. Für Versionen vor 4.3 kann es somit nützlich sein Selendroid zu verwendet, weil hiermit mehr Eigenschaften zur Verfügung stehen. Wird die Capability nicht angegeben, ist als Voreinstellung Appium gesetzt.

Weitere Informationen zu verfügbaren Capabilities finden Sie unter:

http://appium.io/slate/en/master/?java#appium-server-capabilities


Nachdem Sie alle gewünschten Capabilities hinzugefügt haben, können Sie mit Sichern in Anhang beziehungsweise Sichern in Datei Ihre Einstellungen als Anhang der Testsuite oder in einer Datei speichern. Diese können Sie dann beim nächsten Mal über Laden aus Anhang und Laden aus Datei einlesen oder auch in den Tests verwenden.

Mit einem Klick auf Verbinden starten Sie den Verbindungsaufbau mit den angegebenen Einstellungen.

Tests mit dem Appium-Recorder erstellen

Nachdem Sie die Verbindung zu einem Gerät hergestellt haben, können Sie im GUI-Browser den Appium-Recorder über das Aufnahme-Symbol starten.

AppiumRecorder.png

In der Menüleiste können Sie bei Aktion auswählen, welche Aktion Sie ausführen wollen. Voreingestellt ist Berühren, was ein Anklicken des ausgewählten Elements erzeugt. Sie können nun mit der Maus eine Aktion auslösen, indem Sie in der Anzeige des Recorders beispielsweise auf eine Ziffer des Taschenrechners klicken. Sie sehen, dass die Aktion auf dem Gerät ausgeführt wird und der Recorder den aktuellen Bildschirminhalt des Geräts nachlädt. Außerdem wird im Arbeitsbereich des GUI-Browsers ein entsprechender Baustein erzeugt.

Sie können aus folgenden Aktionen wählen:

  • Aktionen
    • Wischen: Wischen über den Bildschirm von der Position, an der Sie die Maustaste drücken, bis zu der Position, an der Sie sie wieder loslassen. Die Dauer wird ebenfalls berücksichtigt
    • Antippen: Antippen des Bildschirms an der Cursorposition mit der selben Dauer wie Sie Ihre Maustaste gedrückt halten (hilfreich für Long-Clicks)
    • Element antippen: wie Antippen, aber für das Element an der Cursorposition
    • Berühren: kurzes Berühren des Elements an der Cursorposition (Click)
    • Text setzen: nach dem Klicken auf ein Element können Sie den Text eingeben, mit dem dieses befüllt werden soll; funktioniert nur für Eingabefelder
  • Test & Verify
    • Attribut vergleichen: Nach dem Klicken auf ein Element können Sie eines seiner Attribute auswählen. Es wird ein Verzweigungsbaustein erstellt, der den Wert des Attributs zum Zeitpunkt des Tests mit dem angegebenen Wert vergleicht.
    • Attribut verifizieren: Nach dem Klicken auf ein Element können Sie eines seiner Attribute auswählen. Es wird ein Baustein erstellt, der fehlschlägt, wenn der Wert des Attributs zum Zeitpunkt des Tests mit dem angegebenen Wert nicht übereinstimmt.

Außerdem können Sie mit den vier Icons an der rechten Seite die Tasten Home, Zurück Menü und Power auslösen.

Beim Aufnehmen der Aktionen werden die Bausteine im Arbeitsbereich lediglich linear angelegt. Sie können den Ablauf dort aber auch einfach ändern, zum Beispiel wenn Sie Verzweigungsbausteine verwenden oder zusätzliche Bausteine einfügen wollen. Über das Icon in der rechten oberen Ecke können Sie den Arbeitsbereich als neuen Baustein in Ihrer Testsuite anlegen.

Um später Tests mit diesen Bausteinen ausführen zu können, müssen Sie am Anfang des Tests den Connect-Baustein aus der Appium-Library einbauen und am Ende entsprechend ein Disconnect. Zur Erzeugung der Capabilities für den Connect-Baustein können Sie den Baustein Read Capabilities from File verwenden, der eine im Verbindungsdialog erstellte Datei einlesen kann.

Die Bausteine für bestimmte Aktionen warten nicht, bis diese auf dem Gerät fertig bearbeitet sind; die Testausführung wird bereits nach dem Anstoßen der Aktion fortgesetzt. Die nächste Aktion sollte aber erst gestartet werden, wenn die vorherige abgeschlossen ist. Wenn das Ende der Aktion durch die Änderung eines Elements gekennzeichnet ist, können Sie den Baustein Wait For Element benutzen, um darauf zu warten. Formulieren Sie dafür den XPath zu diesem Element so, dass er erst nach der Änderung gültig wird. Falls Sie das Element ohnehin in der nächsten Aktion verwenden wollen, können Sie den XPath direkt für den entsprechenden Baustein verwenden, da dieser grundsätzlich wartet bis das Element auftaucht.

Verbindungsabbau

Um eine bestehende Verbindung abzubauen, führen Sie einen Rechtsklick auf den Verbindungseintrag im GUI-Browser aus und wählen Sie Verbindung abbauen oder Verbindung abbauen und Eintrag entfernen aus. Dadurch wird die Verbindung von Appium zum Testgerät abgebaut. Trennen Sie erst anschließend das Gerät vom PC. Den Appium-Server können Sie stoppen, indem Sie das Konsolenfenster schließen.


Hinweise zur Verwendung mit iOS

Ein iOS-Gerät kann nur getestet werden, wenn es an einen Mac angeschlossen ist, auf dem Xcode installiert ist. Um iOS-Geräte mit expecco zu testen ist es daher notwendig, dass ein Appium-Server auf einem solchen Mac gestartet wird und dessen Adresse dann in den Verbindungseinstellungen angegeben wird. Für Tests auf realen iOS-Geräten ist zu beachten, dass nur Apps verwendet werden können, die als Development Distribution signiert sind und für die das Gerät zum entsprechenden Provisioning Profile gehört. Insbesondere kann dadurch die App während des Testens nicht verlassen werden, da außerhalb keine Steuerung über Appium zugelassen wird.

http://appium.io/slate/en/master/?java#appium-on-real-ios-devices

Erste Schritte mit Android

Schritt 1: Demo ausführen

Eine Demo zum Testen mit Android finden Sie unter den Demo-Testsuiten für expecco mit dem Namen m02_expeccoMobileDemo.ets. Öffnen Sie diese in expecco. Darin befindet sich ein einfacher Testplan Demo-Test. Dieser installiert die App expeccoMobileDemo, führt einige Tests aus und löscht die App am Ende wieder. Unter dem Baustein Connect to Demo App befindet sich die Installationsdatei der App (expeccoMobileDemo-debug.apk) sowie die Datei expeccoMobileDemo Capabilities. Diese enthält die Capabilities, also die Einstellungen zur Verbindung. Hier müssen Sie das Gerät eintragen, das Sie verwenden. Standardmäßig ist emulator-5554 als deviceName und uuid eingetragen. Falls Sie einen Emulator gestartet haben, können Sie die Einstellungen bereits so verwenden. Ansonsten können Sie die benötigte ID mit Hilfe des Android-Assistenten erfahren. Öffnen Sie dazu den GUI-Browser Icon des GUI-Browsers und wählen Sie unter Verbinden den Eintrag Appium. Es wird der Verbindungsdialog geöffnet, in dem Sie oben auf Android-Assistent klicken. Dort können Sie nun das gewünschte Gerät auswählen, das der Assistent dann in den Capabilities im Verbindungsdialog setzt. Diesen Wert für deviceName und uuid übernehmen Sie in die Datei expeccoMobileDemo Capabilities. Den Verbindungsdialog können Sie schließen, da der Testplan selbst eine Verbindung erstellen wird.

Starten Sie nun den Appium-Server (siehe Appium-Server starten). Nun können Sie den Testplan starten. Dieser sollte ohne Fehler durchlaufen. Der Testplan besteht aus mehreren Testcases, die hintereinander ausgeführt werden. Zudem wird je ein Baustein vor und nach der Ausführung ausgeführt, der den Verbindungsauf- bzw. -abbau zur App vornimmt. Insbesondere der Verbindungsabbau geschieht auf diese Weise auch dann, wenn einer der Testcases fehlschlägt und der Test abgebrochen wird.

AppiumDemo Testplan.png

Schritt 2: Weiteren Baustein mit dem Recorder erstellen

Um weitere Tests zu erstellen, öffnen Sie den GUI-Browser. Dort finden Sie bereits einen Verbindungseintrag der Verbindung, die während der Ausführung des Testplans erstellt wurde. Die Verbindung besteht jedoch nicht mehr, da sie am Ende des Tests abgebaut wurde. Klappen Sie den Eintrag auf, um die Verbindung wieder herzustellen. Dies kann einen Moment dauern. Wählen Sie die Verbindung aus und drücken Sie den Record-Button um eine Aufzeichnung zu starten.

AppiumDemo Recordig starten.png

Es öffnet sich ein Fenster mit dem Appium-Recorder (siehe Tests mit dem Appium-Recorder erstellen). Wählen Sie die Aktion Berühren aus und klicken Sie in der Anzeige auf den Button GTIN-13 (EAN-13) der App. Die Aktion wird dadurch in der App ausgelöst. Falls der Recorder danach nicht die aktuelle Ansicht der App darstellen sollte, klicken Sie im Recorder auf das Aktualisieren-Icon. Wählen Sie anschließend die Aktion Text setzen und klicken Sie auf das Eingabefeld der App. Daraufhin öffnet sich ein Dialog in den Sie 4006381333986 eingeben. Dieser Text wird nun in der App gesetzt. Wechseln Sie die Aktion wieder zu Berühren und klicken Sie auf Verify. In der App erscheint nun als Antwort OK. Wählen Sie jetzt die Aktion Attribut verifizieren und klicken Sie auf diesen Text. Wählen Sie im Dialog, der sich daraufhin öffnet, die Eigenschaft text aus und bestätigen Sie mit OK. Schließen Sie nun den Recorder. Im Arbeitsbereich des GUI-Browsers sehen Sie, dass für jede der aufgenommenen Aktionen ein Baustein angelegt wurde. Übernehmen Sie dies als neuen Baustein in die Testsuite mit dem Namen GTIN_Verify_OK.

AppiumDemo Arbeitsbereich.png

Bauen Sie nun die Verbindung ab und wechseln Sie zu Ihrer Testsuite. Dort wurde der neue Baustein angelegt. Fügen Sie ihn ans Ende des Testplans Demo-Test hinzu und starten Sie den Test erneut.

Schritt 3: XPath anpassen

Der neue Baustein sollte nun auf Ihrem Gerät fehlerfrei ausgeführt werden können, auf anderen Geräten jedoch möglicherweise nicht. Der Grund liegt darin, dass die Adressierung, welches Element in einer Aktion verwendet werden soll, XPath benutzt. Wechseln Sie wieder in den GUI-Browser starten Sie die Verbindung durch Ausklappen. Wenn die Verbindung steht, können Sie den gesamten Baum aufklappen (Klick bei gedrückter Strg-Taste) und Sie sehen alle Elemente der aktuellen Seite der App. Der XPath zu einem Objekt bezieht sich auf die Position des Elements innerhalb dieses Baumes. Der Baum kann aber unter verschiedenen Geräten variieren, besonders was Layout-Elemente angeht. Daher ist es sinnvoll, den XPath möglichst kurz und dennoch eindeutig zu halten. Erklärungen zu XPath finden Sie beispielsweise hier XPath, an dieser Stelle nur ein paar Tipps: Am sichersten lassen sich Elemente über ihre Eigenschaften identifizieren wie beispielsweise den Text. Wurden bei der Programmierung der App sinnvolle IPs für die Elemente vergeben, lassen sie sich gut mit der Eigenschaft resource-id bestimmen. Diese ist allerdings erst ab Android 4.3 verfügbar. Wenn Sie im GUI-Browser ein Element auswählen, werden Ihnen dessen Eigenschaften angezeigt sowie Bausteine für Aktionen und das Abfragen von Eigenschaften, die Sie mit diesem Element ausführen können. Ganz unten wird der generierte XPath für das Element angezeigt, der auch beim Recorden verwendet wird. Sie können diesen Pfad ändern und durch Pfad überprüfen feststellen, ob er auf das ausgewählte Element zeigt.

Schritt 4: Noch einen Baustein erstellen

Falls sich gleiche Abläufe im Test wiederholen, können Sie dafür bereits erstelle Baustein wiederverwenden oder abwandeln. Analog zum Testen, ob ein korrekter GTIN-13-Code als solcher erkannt wird, wollen wir einen weiteren Test mit einem ungültigen GTIN-13-Code erstellen. Kopieren Sie dazu den Baustein GTIN_Verify_OK und benennen Sie die Kopie in GTIN_Verify_NOT_OK um. Ändern Sie die Eingabe in einen falschen GTIN-13-Code und den Überprüfungswert der Ausgabe auf NOT_OK.

AppiumDemo GTIN Verify NOT OK.png

Fügen Sie diesen neuen Test ebenfalls zum Testplan Demo-Test hinzu. Führen Sie den Testplan aus, aber vergessen Sie nicht, vorher die Verbindung im GUI-Browser abzubauen. Sie werden feststellen, dass Ihr neuer Baustein nicht ausgeführt werden kann und fehlschlägt. Der Grund liegt darin, dass Ihre neuen Bausteine nicht ins Menü zurückkehren, der Ablauf aber immer von dort startet. Wählen Sie den Baustein GTIN_Calculate aus und wechseln auf seine Schema-Ansicht. Sie sehen, dass hier ein Eintrag für Nach Ausführung besteht. Der hier eingetragene Block Back to main menu wird nach der Ausführung ausgeführt und bringt die App zurück ins Hauptmenü.

AppiumDemo Nach Ausführung.png

Ergänzen Sie diesen Eintrag ebenfalls in den beiden neuen Blöcken, indem Sie den Block Back to main menu einfach auf das Feld ziehen. Nun sollte der Testplan wieder fehlerfrei ausgeführt werden können.

Beispiel

Bei den Demo-Testsuiten für expecco finden Sie unter dem Namen m01_appium.ets ein Beispiel für Tests mit dem Appium-Plugin. Die Testsuite enthält zwei einfache Testpläne: Simple CalculatorTest und Complex Calculator and Messaging Test. Beide Tests verwenden einen Android-Emulator, den Sie vor Beginn starten müssen. Die Apps, die im Test verwendet werden, gehören zur Grundausstattung des Emulators und müssen daher nicht mehr installiert werden. Da sich die Apps unter jeder Android-Version unterscheiden können, ist es wichtig, dass Ihr Emulator unter Android 6.0 läuft. Außerdem muss die Sprache auf Englisch gestellt sein. Der Appium-Server muss ebenfalls vor Beginn des Tests lokal gestartet werden.

Simple CalculatorTest
Dieser Test verbindet sich mit dem Taschenrechner und gibt die Formel 2+3 ein. Das Ergebnis des Rechners wird mit dem erwarteten Wert 5 verglichen.
Complex Calculator and Messaging Test
Dieser Test verbindet sich mit dem Taschenrechner und öffnet anschließend den Nachrichtendienst. Dort wartet er auf eine einkommende Nachricht von der Nummer 15555215556, in der eine zu berechnende Formel gesendet wird. Um eine Nachricht an den Emulator zu schicken können Sie einen zweiten Emulator starten und dort ebenfalls den Nachrichtendienst starten. Von dort schicken Sie eine Nachricht an die Nummer 15555215554. Alternativ können Sie dem Emulator auch über Telnet eine Nachricht schicken:
  telnet localhost 5554
  sms send 15555215556 1+2
Nach dem Eintreffen der Nachricht wird diese vom Test geöffnet und deren Inhalt gelesen. Danach wird wieder der Taschenrechner geöffnet, die erhaltene Formel eingegeben und das Ergebnis gelesen. Anschließend wechselt der Test wieder zum Nachrichtendienst und sendet das Ergebnis als Antwort.

Entwicklerguide

Architektur und Technologien

Die Anbindung an das Appium Testframework wurde über den 'Appium Driver', einer Weiterentwicklung des Selenium WebDrivers, 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 Tests 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.

Appium architekturskizze mit konsolenfenster.png



Copyright © 2014-2016 eXept Software AG