Appium Plugin Reference en

Aus expecco Wiki (Version 2.x)
Version vom 31. März 2016, 17:35 Uhr von Ff (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Introduction = Appium is a free open source framework for testing and automation of mobile applications. These tests can be performed either on real mobile …“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Introduction[Bearbeiten]

Appium is a free open source framework for testing and automation of mobile applications. These tests can be performed either on real mobile devices or on emulated devices. Regarding expecco, both Android and iOS devices are supported. With its Appium plugin expecco offers an interface for executing tests using the Appium framework. The first chapter of this document describes the use of the Appium bundle, the Android SDK and the JDK customized by eXept Software. With this compilation you can quickly implement the first tests. The first section of the chapter explains how to install the bundle on your operating system. If you have already installed the bundle, you can skip this section. Following describes how you can start the individual components of the bundle. To get a quick impression of our Appium implementation, at the end of the chapter a short tutorial describes how you can perform initial tests using the bundles. The second chapter is based on an exemplary test setup the Appium plugin and its interaction with the Appium server, and explains testing of mobile applications. The focus is placed on the technologies employed to allow developers a starting point for independent development of modules or to expand the existing function library.

Setup[Bearbeiten]

Installation of the Bundle[Bearbeiten]

To quickly perform your first steps with mobile testing in expecco you can download the Appium Bundle here: https://download.exept.de/transfer/h-expecco-2.8.0/appiumBundleSetup-1.2.exe. The download consists of a single installation file. After the download you can start the installation by double-clicking on the file. Then follow the instructions on the screen and choose where to install the bundle. During the installation process the Appium app might start. You may close it as for the test the Appium server will be launched directly.

The PATH environment variable must be extended by the directory in which the adb.exe is located. In order to do this, please search the system control for the environment variables. Double-click on the variable named PATH in order to modify it. If no variable exists with this name, please generate a new one and specify the path of the directory that contains adb.exe, or attach it (separated by a semicolon)to the existing value of the variable. The path usually has the form of C: \ Program Files (x86) \ exept \ Appium Bundle \ android-sdk \ platform-tools'.

Launching the Appium Server[Bearbeiten]

The bundle includes an Appium server that enables communication between expecco and the tester. You can start directly from shortcut on your desktop that was created during installation. Alternatively, you can also start the batch file "start_appium.bat" in the installation directory of the bundle. A window with a console on which the server is running and its log messages are output is openend . The server is ready, when the first log messages appear.

Connecting a mobile device[Bearbeiten]

Before you can control a mobile device with the Appium plugin, you must allow for USB debugging. For Android devices, please see the settings under Developer options (see https://www.droidwiki.de/USB-Debugging). When a device is connected to the PC via USB, you may have to accept the setup of the connection to the device.

Connection via the Appium connection dialog[Bearbeiten]

After lauching the Appium server and a device is connected via USB, you can setup a connection to a mobile application in expecco. Switch to expecco in the GUI browser where you can select 'Connect' and then select ' 'Appium' ' from the appearing drop-down menu.

AppiumGUIBrowser.png


Thereupon the Appium connection dialog opens (see screenshot), in which you configure the desired parameters for the connection.

First, enter the address of the Appium server in the input box. By default, the Appium server on port 4723 is started. So enter the following:

  http://<IP des Appium Hostrechners>:4723/wd/hub

As a next step you need to specify the configuration for the connection. For that, the Appium server requires so-called Capabilities.

For tests on Android, it is advisable to use the Android Wizard. The Android Assistant allows you to automatically fill capabilities for any USB-attached devices.


Appium GUI AndroidWizard.png


By clicking on Android Wizard ' the configuration wizard opens (see screenshot). Using this wizard, you can make the standing on available configurations via drop-down menus.


Appium Settings showSystemPackages.png

In the top field, please select the device with which you want to connect. In the drop-down menu are all accessible devices. After that the packets on the device are retrieved, this may take a few moments. The packets are divided into external packages and system packages. Your installed applications are among the foreign packages. If havn't installed any application so far, you can choose the calculator for example, which is already on the device. To do so, select the system packages. In the box below, you can enter a filter to reduce the list of packages. Enter Calc as a filter and you will find the calculator easier. (Depending on the device, the package is named differently, but still includes 'calculator' ') and select the package, and then in the bottom drop-down menu Activity from this package (z. B.' '. Calculator ). When you click OK, the capabilities are set according to your choice.

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. 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

Um die Capabilities manuell einzutragen, wählen Sie 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.
  • 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

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 Speichern Ihre Einstellungen in einer Datei speichern. Diese können Sie dann beim nächsten Mal über 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[Bearbeiten]

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 Maus 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 Maus 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)
    • Zoom: noch nicht implementiert
    • 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.


Verbindungsabbau[Bearbeiten]

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.

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.

Appium architekturskizze mit konsolenfenster.png



Copyright © 2014-2024 eXept Software AG