Mobile Testing Plugin

Aus expecco Wiki (Version 2.x)
Version vom 8. Dezember 2016, 16:40 Uhr von Matilk (Diskussion | Beiträge) (Tutorial Schritt 1 und 2 noch ohne Bilder)
Zur Navigation springen Zur Suche springen

Einleitung[Bearbeiten]

Mit dem Mobile 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 das Mobile Testing Plugin ab der expecco-Version 2.10. Die Dokumentation für Version 2.9 finden Sie unter Appium Plugin Reference.

Werkzeuge des Mobile Testing Plugins[Bearbeiten]

Verbindungseditor[Bearbeiten]

Mithilfe des Verbindungsdialoges können Sie schnell Verbindungen definieren und aufbauen. Sie erreichen ihn, wenn Sie im GUI-Browser auf Verbinden klicken und dann Mobile Testing auswählen. Der Dialog ist in drei Schritte unterteilt. Im ersten Schritt wählen Sie das Gerät, das Sie verwenden möchten. Falls das Gerät nicht angeschlossen ist, können Sie es mit dem entsprechenden Knopf Android-Gerät eingeben bzw iOS-Gerät eingeben anlegen. Dazu müssen Sie jedoch die benötigten Eigenschaften Ihres Geräts kennen. Wenn keine Liste mit angeschlossenen Elementen angezeigt werden kann, werden stattdessen verschiedene Meldungen angezeigt:

  • Keine Geräte gefunden
    expecco konnte keine Android-Geräte finden.
    Um eine Verbindung zu einem Gerät automatisch zu konfigurieren, stellen Sie sicher, dass es
    • angeschlossen ist
    • eingeschaltet ist
    • einen passenden adb-Treiber installiert hat
    • für Debugging freigeschaltet ist.
  • Keine verfügbaren Geräte gefunden
    expecco konnte keine verfügbaren Android-Geräte finden. Es wurden aber nicht verfügbare gefunden, z.B. mit dem Status "unauthorized".
    Um eine Verbindung zu einem Gerät automatisch zu konfigurieren, stellen Sie sicher, dass es
    • angeschlossen ist
    • eingeschaltet ist
    • einen passenden adb-Treiber installiert hat
    • für Debugging freigeschaltet ist.
    Um nicht verfügbare Geräte anzuzueigen, aktivieren Sie\unten diese Option.
  • Verbindung verloren
    expecco hat die Verbindung zum adb-Server verloren. Versuchen Sie die Verbindung wieder herzustellen, indem Sie auf den Button klicken.
  • Verbindung fehlgeschlagen
    expecco konnte sich nicht mit dem adb-Server\verbinden. Möglicherweise läuft er nicht oder der angegebene Pfad stimmt nicht.
    Überprüfen Sie die adb-Konfiguration in den Einstellungen und versuchen Sie den adb-Server zu starten und eine Verbindung herzustellen indem Sie auf den Knopf klicken.
  • Verbinden ...
    expecco verbindet sich mit dem adb-Server. Dies kann einige Sekunden dauern.
  • adb-Server starten ...
    expecco startet den adb-Server. Dies kann einige Sekunden dauern.

Laufende Appium-Server[Bearbeiten]

Hier sehen Sie eine Übersicht aller Appium-Server, die von expecco gestartet wurden und auf welchem Port diese laufen. Sie können das Logfile jedes Servers anschauen. Dieses wird beim Beenden des Servers wieder gelöscht. Außerdem können Sie hier auch Server starten und beenden. Verwenden Sie die Eingabefelder zur Konfiguration der Serveradresse. Sie können die Felder auch frei lassen, um die Standardwerte zu verwenden. Bitte beachten Sie, dass Server nur lokal gestartet werden können und der gewählte Port nicht belegt sein darf. Typischerweise werden die ungeraden Portnummern ab 4723 verwendet.

Recorder[Bearbeiten]

Besteht im GUI-Browser eine Verbindung zu einem Gerät, kann der integrierte Recorder verwendet werden, um mit diesem Gerät einen Testabschnitt aufzunehmen. Sie starten den Recorder, indem Sie im GUI-Browser die entsprechende Verbindung auswählen und dann auf den Aufname-Knopf klicken. Für den Recorder öffnet sich ein neues Fenster. Die aufgezeichneten Aktionen werden im Arbeitsbereich des GUI-Browsers angelegt. Daher ist es möglich, das Aufgenommene parallel zu editieren.

MobileTestingRecorder.png

Komponenten des Recorderfensters
  1. Aktualisieren: Holt das aktuelle Bild und den aktuellen Elementbaum vom Gerät. Dies wird nötig, wenn das Gerät zur Ausführung einer Aktion länger braucht oder sich etwas ohne das Anstoßen durch den Recorder ändert.
  2. Follow-Mouse: Das Element unter dem Mauszeiger wird im GUI-Browser markiert.
  3. Highlight-Selected: Das Elements unter dem Mauszeiger wird rot umrandet.
  4. Show-Bounds: Die Rahmen aller Elemente der Ansicht werden angezeigt.
  5. Werkzeuge: Auswahl, mit welchem Werkzeg aufgenommen werden soll. Dabei stehen folgende Aktionen zur Verfügung:
    • Aktionen auf Elemente:
      • Klicken: Kurzer Klick auf das Element über dem der Cursor steht. Zur genaueren Bestimmung, welches Element verwendet wird, benutzen Sie die Funktion Follow-Mouse oder Highlight-Selected.
      • Element antippen: Ähnlich zum Klicken, nur dass zusätzlich die Dauer des Klicks aufgezeichnet wird. Dadurch sind auch längere Klicks möglich.
      • Text anhängen: Ermöglicht das Hinzufügen eines Textes in Eingabefelder.
      • Text löschen: Löscht den Text eines Eingabefelds.
    • Aktionen auf das Gerät:
      • Antippen: Löst einen Klick auf die Bildschirmposition aus, bei dem auch die Dauer berücksichtigt wird.
      • Wischen: Wischen in einer geraden Linie vom Punkt des Drückens des Mausknopfes bis zum Loslassen. Die Dauer wird ebenfalls aufgezeichnet.
    • Erstellen von Testablauf-Bausteinen
      • Attribut prüfen:
      • Attribut zusichern:
    Die gewählte Aktion bei einem Klick auf die Anzeige ausgelöst. Ist das Auto-Werkzeug ausgewählt, können alle Aktionen durch spezifische Eingabeweise benutzt werden.
  6. Softkeys: Nur unter Android. Simuliert das Drücken der Knöpfe Zurück, Home, Fensterliste und Power.
  7. Anzeige: Zeigt einen Screenshot des Geräts. Aktionen werden mit der Maus je nach Werkzeug ausgelöst. Wenn eine neue Aktion eingegeben werden kann, hat das Fenster einen grünen Rahmen, sonst ist er rot.
  8. Fenster an Bild anpassen: Ändert die Größe des Fensters so, dass der Screenshot vollständig angezeigt werden kann.
  9. Bild an Fenster anpassen: Skaliert den Screenshot auf eine Größe, mit der er die volle Größe des Fensters ausnutzt.
  10. Ausrichtung anpassen: Korrigiert das Bild, falls dieses auf dem Kopf stehen sollte. Über den Pfeil rechts daneben kann das Bild auch um 90° gedreht werden, falls dies einmal nötig sein sollte. Die Ausrichtung des Bildes ist für die Funktion des Recorders unerheblich, dieser arbeitet ausschließlich auf den erhaltenen Elementen.
  11. Skalierung: Ändert die Skalierung des Screenshots. Kann auch über den Schieberegler rechts daneben angepasst werden.
Verwendung

Mit jedem Klick im Fenster wird eine Aktion ausgelöst und im Arbeitsbereich des GUI-Browsers aufgezeichnet. Dort können Sie das Aufgenommene abspielen, editieren oder daraus einen neuen Baustein erstellen.

Beispiele[Bearbeiten]

Bei den Demo-Testsuiten für expecco finden Sie auch Beispiele für Tests mit dem Mobile Testing Plugin. Die beginnen jeweils mit dem Buchstaben m.

Appium Demo[Bearbeiten]

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.

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. Die Nachricht wird zuvor über einen Socket beim Emulator erzeugt. 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.


expeccoMobileDemo[Bearbeiten]

Die Testsuite ist Bestandteil des Tutorials zum Mobile Testing Plugin.

Tutorial[Bearbeiten]

Mit dem Appium-Plugin lassen sich Tests für Apps auf Android- oder iOS-Mobilgeräten erstellen und ausführen. Dieses Tutorial beschreibt das grundsätzliche Vorgehen anhand eines mitgelieferten Beispiels für Android, bestehend aus einer einfachen App und einer expecco-Testsuite.

Die App expecco Mobile Demo berechnet und überprüft verschiedene alltägliche Codes: die IBAN aus dem europäischen Zahlungsverkehr, die internationalen GTIN-13-Produktcodes, wie man sie bei Strichcodes im Einzelhandel findet, und die Seriennummern auf Euro-Banknoten.

Die Testsuite enthält Testfälle für einzelne Funktionen der App. Dabei sind noch nicht alle Funktionen abgedeckt, sondern werden im Laufe des Tutorials ergänzt.

Schritt 1: Installation und Konfiguration[Bearbeiten]

Für dieses Tutorial benötigen Sie eine Installation von expecco inkl. Plugins sowie das Mobile Testing Supplement. Laden Sie dazu die Installationsprogramme für expecco, für die expecco Plugins sowie für das Mobile Testing Supplement herunter und installieren Sie die Programme in dieser Reihenfolge. Folgen Sie dabei den Anweisungen des jeweiligen Installers. Wir empfehlen Ihnen bei der Installation des Mobile Testing Supplements den Universal-ADB-Treiber mit zu installieren wenn Sie danach gefragt werden. Dieser vereint Treiber für ein breites Spektrum an Android-Geräten, sodass Sie nicht für jedes Gerät einen eigenen Treiber suchen und installieren müssen. Während der Installation wird die graphische Oberfläche von Appium gestartet, dieses Fenster können Sie sofort wieder schließen.

Außerdem benötigen Sie für die Ausführung ein Android-Gerät, das Sie über USB mit dem Rechner verbinden können, auf dem expecco installiert ist, oder einen Emulator. Optional können Sie noch ein zweites Gerät benutzen.

Starten Sie nun expecco und installieren Sie eine geeignete Lizenz.

Bevor Sie loslegen sollten Sie die Einstellungen des Mobile Testing Plugins überprüfen und ggf. anpassen. Öffnen Sie im Menü den Punkt Extras > Einstellungen und dort unter Erweiterungen den Eintrag Mobile Testing (Abb. 1) Zu Beginn ist für sämtliche Pfade eingestellt, dass expecco diese automatisch setzt (1). Um einen anderen Pfad einzutragen, schalten Sie diese Option ab.

Stellen Sie für die Pfade zu adb, appium und aapt sicher, dass sie richtig angegeben sind. Wird ein Pfad als ungültig erkannt, wird das entsprechende Eingabefeld rot markiert. Die Datei android.bat wird nur zum Starten des SDK Managers und des AVD Managers benötigt. Da diese für dieses Tutorial nicht relevant sind, können Sie diesen Pfad ignorieren. Übernehmen Sie die Änderungen.

Wechseln Sie als nächstes zum Eintrag Java Bridge (Abb. 2). Hier muss der Pfad zu Ihrer Java-Installation angegeben werden. Tragen Sie hier ein JDK ein. Falls Sie das aus dem Mobile Testing Supplement verwenden möchten, lautet der Pfad

C:\Program Files (x86)\exept\Mobile Testing Supplement\jdk

Übernehmen Sie die Änderung und klicken Sie anschließend auf Sichern, um alle Einstellungen dauerhaft zu speichern. Schließen Sie anschließend den Einstellungsdialog.

Schritt 2: Demo ausführen[Bearbeiten]

Nun ist das Plugin soweit konfiguriert, dass Sie damit Tests erstellen können. In diesem Tutorial wollen wir die Funktionen der Android-App expeccoMobileDemo testen. Als Grundlage dafür dient die Testsuite m02_expeccoMobileDemo.ets, die Sie in den Beispielen zu expecco finden. In dieser befindet sich bereits ein vorgefertigter Testplan mit einigen Testfällen für diese App. Öffnen Sie die Testsuite über die Schaltfläche Beispiel aus Datei (Abb. 3).

In der Testsuite ist das Paket der Demo-App als Anhang enthalten (expeccoMobileDemo-debug.apk). Mithilfe des bereitgestellten Bausteins Export Demo App können Sie die Datei an einen beliebigen Ort auf Ihrem Rechner exportieren. Wählen Sie dazu den Baustein aus (1) und klicken Sie auf den grünen Play-Knopf (2) um den Baustein auszuführen (Abb. 4). Der Baustein öffnet einen Dateidialog, in dem Sie angeben, wo das Paket gespeichert werden soll.

Bevor wir uns mit dem weiteren Inhalt der Testsuite beschäftigen, konfigurieren Sie zuerst die Verbindung und welches Gerät Sie benutzen wollen. Schließen Sie dazu ein Gerät über USB an Ihren Rechner an oder starten Sie einen Emulator.

Öffnen Sie nun den GUI-Browser (1) und wählen Sie unter Verbinden (2) den Eintrag Mobile Testing (3) (Abb. 5), um den Verbindungsdialog zu öffnen.

Sie sehen eine Liste aller angeschlossenen Android-Geräte (1) (Abb. 6). Sollte Ihr Gerät nicht in der Liste auftauchen, stellen Sie sicher, dass es eingeschaltet und über USB verbunden ist. Außerdem sollte Ihr Gerät wie folgt vorbereitet sein: Aktivieren Sie die Entwickleroptionen in den Einstellungen Ihres Gerätes, indem Sie in den Einstellungen den Menü-Eintrag Über das Telefon öffnen und dort siebenmal auf Build-Nummer tippen. Schalten Sie nun in den Entwickleroptionen USB-Debugging ein. Aktivieren Sie auch die Funktion Wach bleiben, damit das Gerät nicht während der Testerstellung oder -ausführung den Bildschirm abschaltet. Aus Sicherheitsgründen muss USB-Debugging für jeden Computer einzeln zugelassen werden. Falls Sie dies für Ihren Computer noch nicht getan haben, aber auf dem Gerät kein entsprechender Dialog erscheint, kann es helfen, das Gerät aus- und wieder einzustecken. Das kann insbesondere dann passieren, wenn Sie den ADB-Treiber installiert haben während das Gerät bereits über USB angeschlossen war.

Haben Sie Ihr Gerät in der Liste gefunden, wählen Sie es aus und klicken Sie auf Weiter (2).

Als nächstes geben Sie an, welche App Sie verwenden wollen (Abb. 7). Dabei können Sie wählen, ob Sie eine App starten möchten, die bereits auf dem Gerät installiert ist (App auf dem Gerät) oder ob eine App installiert und gestartet werden soll (App installieren). Für den Fall, dass Sie eine bereits installierte App benutzen wollen, erhalten Sie eine Liste aller auf dem Gerät installierten Pakete (1), die in Systempakete und Fremdpakete (2) unterteilt sind, sowie deren Activities (3). Diese können Sie dann einfach in den jeweiligen Feldern auswählen.

Für dieses Tutorial soll die App installiert werden, die Sie eben aus der Testsuite exportiert haben. Wählen Sie also App installieren aus und tragen Sie bei App (1) den entsprechenden Pfad ein (Abb. 8). Sie können den Knopf links benutzen (2), um einen Dateidialog zu öffnen, mit dem Sie zu der Datei navigieren können, um sie einzugeben. Das Paket (3) und die Activity (4) der App werden automatisch eingetragen. Sollte die App mehrere Activities besitzen, können Sie die gewünschte auswählen. Klicken Sie nun auf Weiter (5).

Auf der letzten Seite sehen Sie eine Übersicht aller bisherigen Angaben (1) (Abb. 9). Darunter können Sie einen Namen für die Verbindung angeben, unter dem sie im GUI-Browser angezeigt wird (2). Außerdem lässt sich eine Verbindung über diesen Namen identifizieren und in Bausteinen verwenden; der Name muss daher eindeutig sein. Falls Sie keinen Namen angeben, wird generisch einer erzeugt. Geben Sie als Namen expeccoMobileDemo ein. Im Feld darunter ist die Adresse zum Appium-Server eingetragen (3). Appium ist die Schnittstelle, über die die angeschlossenen Geräte gesteuert werden. Für dieses Tutorial wird die Verwaltung der Instanzen des Appium-Servers von expecco übernommen. Dafür ist die lokale Standard-Adresse http://localhost:4723/wd/hub eingetragen und die Option Bei Bedarf starten aktiviert (4). expecco erkennt dann automatisch, ob an der Adresse ein Appium-Server läuft und startet und beendet ihn nötigenfalls automatisch. Wenn der Port 4723 bereits belegt ist oder wenn Sie einmal mehrere Verbindungen parallel betreiben wollen, verwenden Sie an dieser Stelle entsprechend einen anderen Port. Es ist dabei üblich die ungeraden Portnummern oberhalb von 4723 zu verwenden, also 4725, 4727 usw. Natürlich können Sie auch entfernte Server verwenden, das automatische Starten und Beenden eines Servers kann expecco aber nur lokal für Sie übernehmen.

Klicken Sie nun auf Speichern (5) um die Einstellungen für die Testausführung zu speichern. Einstellungen können als Anhang einer Testsuite oder in eine externe Dateien gespeichert werden (Abb. 10). Falls Sie mehrere Projekte gleichzeitig offen haben, können Sie in der Liste das Projekt auswählen, in dem der Anhang angelegt werden soll. Klicken Sie auf Speichern im Bereich Einstellungen im Anhang speichern und geben Sie als Name expeccoMobileDemo an. Klicken Sie nun auf Server starten und verbinden (6) um mit der angegebenen Konfiguration eine Verbindung herzustellen.

Der Verbindungsaufbau kann eine Weile dauern. Warten Sie bis die Verbindung aufgebaut ist und im GUI-Browser angezeigt wird. Sie sehen, dass die App auf dem Gerät gestartet wird. Nun wissen Sie, dass die Konfiguration funktioniert. Die gespeicherten Einstellungen sollen nun für den Test verwendet werden, der dann die gleiche Verbindung aufbaut. Wählen Sie die Verbindung im GUI-Browser aus, machen Sie einen Rechtsklick und wählen Sie im Kontextmenü Verbindung abbauen, damit es zu keinem Konflikt kommt. Wechseln Sie dann zurück zum Reiter der Testsuite.

In der Testsuite wurden die Einstellungen als Anhang expeccoMobileDemo angelegt (Abb 11). Wählen Sie den Baustein Connect (1) aus und wechseln Sie rechts zur Ansicht Netzwerk (2). Ziehen Sie per Drag-and-drop die Einstellungen in das Netzwerk des Bausteins (3). Verbinden Sie den Ausgangspin pathName mit dem Eingangspin stringOrFilename[1] des Bausteins Connect from File (4). Mit Übernehmen (5) bestätigen Sie die Änderungen. Dieser Baustein wird zu Beginn des Tests die Verbindung zur App herstellen.

Wechseln Sie nun zum Testplan Demo-Test (1) (Abb. 12). Dieser Testplan enthält bereits einige fertige Testfälle. Vor und nach der Ausführung (2) ist außerdem jeweils ein Baustein eingetragen: Der eben bearbeitete Baustein Connect für den Aufbau und der Baustein Disconnect für den Verbindungsabbau. Durch das Eintragen der beiden Bausteine an dieser Stelle geschieht der Verbindungsabbau insbesondere auch dann, wenn der Test vorzeitig abgebrochen wird, z. B. weil einer der Testfälle fehlschlägt.

Jetzt können Sie den Testplan Demo-Test starten, indem Sie auf den grünen Play-Knopf (3) klicken. Der Testplan sollte ohne Fehler durchlaufen.



Copyright © 2014-2024 eXept Software AG