Appium-Architektur zum Testen mobiler Anwendungen
Veröffentlicht: 2020-06-26Inhaltsverzeichnis
Appium-Übersicht
Appium ist ein kostenloses Tool/Framework zum Testen mobiler Anwendungen, das eine Automatisierung für mobile iOS- und Android-Anwendungen bietet. Appium ist eine Client-Server-Architektur, die in Java, Python, Ruby, JavaScript usw. geschriebenen Testcode akzeptiert.
Im Kern ist Appium ein Webserver, der in der Programmiersprache Node.js geschrieben ist und iOS- und Android-Sitzungen mit dem JSON-Drahtprotokoll erstellt.
Appium Server führt die folgenden Aktionen aus
- Empfängt eine Verbindung vom Client in Form eines JSON-Objekts über HTTP
- Initiieren Sie eine Sitzung und geben Sie dann die Sitzungs-ID zurück
- Lauscht auf die ausgegebenen Befehle
- Führt diese Befehle auf einem Mobilgerät aus
- Antwortet mit einer HTTP-Antwort
Quelle
Appium-Schlüsselkonzepte
Bevor wir tief in die Appium-Architektur eintauchen , lassen Sie uns zuerst die Schlüsselkonzepte verstehen, die mit der Appium-Architektur verbunden sind .
Appium-Client
Der Appium-Client ist ein automatisierter Skriptcode, der in einer beliebigen Sprache geschrieben ist, mit der Sie vertraut sind (wie PHP, Java , Phyton usw.). Der Appium-Client enthält die Konfigurationsdetails des Mobilgeräts und der Anwendung zusammen mit der Logik/dem Code zum Ausführen der Testfälle.
Appium-Server
Der Appium-Server ist ein in der Programmiersprache Node.js geschriebener HTTP-Server, der Verbindungs- und Befehlsanfragen vom Appium-Client im JSON-Format empfängt und diese Befehle auf einem mobilen Gerät ausführt. Appium Server wird gestartet, bevor der Automatisierungscode aufgerufen wird.

Der Server interagiert mit iOS- und Android-Plattformen und erstellt eine Sitzung, um mit Endgeräten mobiler Anwendungen zu interagieren.
Lesen Sie: Die 20 angesagtesten Android-Projektideen und -themen für Anfänger
Endgerät
Das Endgerät ist meist ein Echtzeit-Mobilgerät oder ein Emulator. Die automatisierten Skripte werden im Endgerät vom Appium-Server durch die Befehle des Clients ausgeführt.
JSON-Wire-Protokoll
In der Appium-Architektur ist das JSON-Drahtprotokoll ein Transportmechanismus, der verwendet wird, um die Kommunikation zwischen dem Appium-Client und dem Appium-Server herzustellen. Dieses Protokoll steuert das Verhalten verschiedener Mobilgeräte während einer Sitzung. Es handelt sich um eine Reihe vordefinierter Endpunkte, die über die RESTful-API verfügbar gemacht werden. Wenn ein Client beispielsweise Daten an einen Server senden möchte, konvertiert der Client diese in ein JSON-Objekt und überträgt es an den Server. Der Server analysiert dann das empfangene JSON-Objekt und wandelt es zur Verwendung wieder in die Daten um.

Appium-Architektur
Lassen Sie uns nun die Appium-Architektur verstehen .
Wie oben erwähnt, ist der Appium-Server ein HTTP-Server, der die HTTP-Anfragen von den Client-Bibliotheken in einem JSON-Format liest und diese Anfragen an die entsprechende Plattform sendet. Der Appium-Server erkennt diese Anfragen und erstellt eine Automatisierungssitzung mit dem entsprechenden Endgerät. Sobald die Sitzung erstellt ist, startet der Appium-Server die Ausführung von Testfällen im Endgerät.
Der Appium-Server verarbeitet die Anfragen für iOS und Android unterschiedlich, je nachdem, auf welcher Plattform er ausgeführt wird. In den folgenden Abschnitten wird erläutert, wie Appium Befehle auf diesen Plattformen anders ausführt.
Appium funktioniert auf einem iOS-Gerät
Auf einem iOS-Gerät verwendet Appium die UIAutomation-API (JavaScript-Bibliothek, bereitgestellt von Apple Company), um eine Verbindung mit den Elementen der Benutzeroberfläche der Anwendung herzustellen.
Die obige Abbildung der Appium-iOS-Architektur beschreibt die Appium-Architektur für die iOS-Automatisierung. Lassen Sie uns die iOS - Appium-Architekturabbildung Schritt für Schritt entschlüsseln:
- Der Appium-Client kommuniziert mit dem Appium-Server über das JSON-Drahtprotokoll und sendet den Befehl in einem JSON-Format an den Server.
- Der Server baut daraufhin eine Verbindung zum Client auf und leitet die Anfrage an den ICS (Instruments Command Server) weiter. Der Appium-Server überträgt auch eine bootstrap.js-Datei auf das iOS-Gerät. ICC (Instruments Command Client) übernimmt dann den Befehl und führt ihn in der Datei bootstrap.js in der iOS-Geräteumgebung aus.
- Sobald der obige Vorgang abgeschlossen ist, werden die Protokolldetails des ausgeführten Befehls vom Client an den Server zurückgesendet.
Appium funktioniert auf einem Android-Gerät
Auf einem Android-Gerät würde Appium das von den Android-Entwicklern entwickelte UIAutomator-Framework verwenden, um mit den Elementen der Benutzeroberfläche der Anwendung zu interagieren. Der UI Automator ist ein Framework zum Testen der Benutzeroberfläche.

Die obige Abbildung der Appium-Android-Architektur beschreibt die Appium-Architektur für die Android-Automatisierung. Die obigen Abbildungen ersetzen bootstrap.js durch bootstarp.jar.
Lernen: Android SDK: Ein ausführliches Tutorial für Anfänger
Lassen Sie uns die Android-Appium-Architekturabbildung Schritt für Schritt entschlüsseln
- Der Appium-Client kommuniziert mit dem Appium-Server über das JSON-Drahtprotokoll und sendet den Befehl in einem JSON-Format an den Server.
- Der Appium-Server baut dann eine Verbindung mit dem Client auf und leitet die Anfrage an den ICS UiAutomator Controller weiter. Der Appium-Server überträgt auch eine bootstrap.jar-Datei auf das Android-Gerät. UiAutomator-Befehl Der Client übernimmt dann den Befehl und führt ihn in der Datei bootstrap.jar in der Android-Geräteumgebung aus.
- Sobald der obige Vorgang abgeschlossen ist, werden die Protokolldetails des ausgeführten Befehls vom Client an den Appium-Server zurückgesendet.
Lesen Sie auch: Full-Stack vs. Android-Entwickler: Wofür sollten Sie sich entscheiden?
Fazit
Appium ist zweifellos eine der beliebtesten Plattformen für das Testen mobiler Anwendungen. Bei weitem haben Sie den Überblick über die Appium-Architektur , den Workflow und die Funktionsweise von Appium auf iOS- und Android-Plattformen kennengelernt.
Wenn Sie mehr über Full-Stack-Softwareentwicklung erfahren möchten, sehen Sie sich das PG-Diplom in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen, mehr als 9 Projekte und mehr bietet Aufgaben, IIIT-B-Alumni-Status, praktische praktische Schlusssteinprojekte und Arbeitsunterstützung bei Top-Unternehmen.