Android-Automatisierung: Der vollständige End-to-End-Leitfaden

Zuletzt aktualisiert am 01. April 2020 – Continuous Testing Experten
Continuous Testing

 

Inhaltsverzeichnis

Übersicht

Werkzeuge und Technologien

Arten von Anwendungen

Espresso vs. Appium

Appium

Android Studio-Installation

Appium Server installieren

Erste Schritte mit der mobilen Automatisierung mit Appium

Voraussetzungen:

Erkennung von Android-Geräten

Appium Server starten

Verwenden der Inspektorsitzung

Grundlegende Automatisierungstesterstellung

Testautoren

Ausführen des Tests

 

Übersicht

Unter mobiler Automatisierung versteht man die auf mobilen Geräten durchgeführte Automatisierung. Im Allgemeinen erfolgt diese Automatisierung weiter Anwendungen das läuft weiter Mobile Geräte.

Dieser Blog konzentriert sich auf die Automatisierung von Anwendungen und behandelt Tools und Technologien, die hauptsächlich in Android-Automatisierungsgeräten verwendet werden.

Werkzeuge und Technologien

Fast 80 % der Mobilgeräte auf dem Markt basieren auf Android. Daher ist es für einen Automatisierungsentwickler von größter Bedeutung, Tools mit den folgenden Funktionen zu verwenden:

  • Stabil und einfach zu bedienen.
  • Große Entwickler-Community-Basis.
  • Unterstützung einer breiten Palette von Programmiersprachen.

Arten von Anwendungen

Bevor wir uns mit Automatisierungstools befassen, klassifizieren wir Anwendungen.

  • Native Anwendung – Anwendung, die für eine bestimmte Plattform entwickelt wurde.
  • Internetanwendung – Anwendungen, die für die Ausführung im Browser entwickelt wurden (in diesem Fall mobile Browser).
  • Hybridanwendung – Anwendungen, die sowohl native als auch Web-Komponenten haben, aber als Anwendung ausgeführt werden.

Im Folgenden sind die beliebtesten verfügbaren mobilen Automatisierungstools aufgeführt:

  • Appium
  • Espresso
  • Ein Roboter
  • Selendroid
  • UI-Automator

Basierend auf den zuvor genannten Funktionen, Appium ist die beliebteste und bevorzugte Wahl für Mobile Automation für Android-Geräte. Der wichtigste Grund für die bevorzugte Wahl von Appium ist, dass dieselbe Programmiersprache zur Automatisierung von iOS- und Android-Betriebssystemen verwendet werden kann.

Espresso bietet eine hervorragende Leistung bei der Testausführung.

Es kann eine gute Option sein, wenn

  1. Anwendungsentwickler sind der Meinung, dass Automatisierungstests ein integraler Bestandteil der Entwicklung sind. Dies ermöglicht eine schnelle Implementierung der Automatisierung, da die Entwickler mit der Codebasis und auch der schnellen Ausführungsgeschwindigkeit von Espresso-Tests vertraut sind.
  2. Wenn die Anwendung nur im Android-Betriebssystem unterstützt wird.

Espresso vs. Appium

[Table id = 55 /]

Appium

Appium ist mit Abstand das am weitesten verbreitete Android-Automatisierungstool, es ist Open Source und plattformübergreifend. Appium wird eigentlich als HTTP-Server mit NodeJS entwickelt.

Grundarchitektur

Appium-GrundarchitekturDie wichtigsten Komponenten des Appium-Tools sind:

  1. Appium Server – Ein HTTP-Server, der auf die Appium Http-basierten Clients lauscht und seinen UI Automator-Treiber verwendet, um Automatisierungsbefehle in eine Sprache zu übersetzen, die Android-Geräte verstehen können.
  2. Das Appium-Framework stellt Appium-Clients für verschiedene Sprachen wie Java und Python bereit. Unterstützte Sprachen sind aufgelistet in Appium-Kunden.
  3. Appium unterstützt verschiedene Treiber zur Automatisierung verschiedener Endplattformen. UIAutomator2-Treiber wird zur Unterstützung des Android-Betriebssystems verwendet.

Kommunikation zwischen Appium-Clients und Appium-Servern

Verwendung von Appium-Client und -Server JSON Wire-Protokoll über HTTP miteinander kommunizieren. Die Kommunikation zwischen Appium-Clients und Appium Server kann komplex sein. Um diese Komplexität zu überwinden, werden die Daten im strukturierten JSON-Format ausgetauscht.

Um die Kommunikation anzustoßen, wird als erster Schritt eine Sitzung erstellt. Gewünschte Fähigkeiten sind Schlüssel-Wert-Paare, die Präferenzen für diese Sitzung darstellen. Diese Präferenzen umfassen obligatorische Informationen (neben anderen optionalen Informationen) wie die Plattformname, Gerätename, Anwendungspfad Das sind die Schlüsselinformationen in der Automatisierung.

Hier ist ein Beispiel für die über das gesendeten Daten JSON-Wire-Protokoll an. Nach der Installation können Sie HEIC-Dateien mit der gewünschte Fähigkeiten um eine Sitzung mit Appium Server einzurichten.

[java]{ „deviceName“: „a3ae1c63“, „platformName“: „Android“, „app“: „C:\Users\example.apk“ }[/java]

Android Studio-Installation

Appium Studio ist die integrierte Entwicklungsumgebung für die Entwicklung einer Android-Anwendung. Es basiert auf JetBrains IntelliJ, das über eine große Entwickler-Community verfügt und auch für die Automatisierung verwendet werden kann UI-Automator als auch Espresso.

Bitte laden Sie die Android Studio-Software herunter

Windows

  1. Wenn als heruntergeladen ausführbar Datei, doppelklicken Sie darauf und starten Sie sie. Wenn als heruntergeladen Archiv Datei, extrahieren Sie sie in ein Verzeichnis und starten Sie sie studio.exe in England, /android-studio/bin
  2. Folgen Sie dem Setup-Assistenten und installieren Sie während der Installation alle empfohlenen SDK-Pakete.

Download Mac

  1. Starten Sie die Android Studio DMG-Datei
  2. Ziehen Sie Android Studio per Drag-and-Drop in den Anwendungsordner und starten Sie dann Android Studio.
  3. Wählen Sie aus, ob Sie frühere Android Studio-Einstellungen importieren möchten, und klicken Sie dann auf OK.
  4. Folgen Sie dem Setup-Assistenten und installieren Sie während der Installation alle empfohlenen SDK-Pakete
  5. Detaillierte Anweisungen finden Sie auf der offiziellen Seite of Android Studio.

Appium Server installieren

Appium-Server

Appium Server kann auf zwei im Folgenden erläuterte Arten installiert werden.

Verwenden von NPM

  1. Knoten herunterladen
  2. Doppelklicken Sie auf die heruntergeladene Datei und befolgen Sie die Schritte im Assistenten, um die Installation von Node abzuschließen.
  3. Sobald NodeJS installiert ist, führen Sie Folgendes aus: npm install -g appium
  4. Um Appium Server auszuführen, führen Sie Folgendes aus: Appium

Verwenden von Appium Desktop

  1. Laden Sie den Appium Desktop herunter
  2. Starten Sie den Installer der Plattform Ihrer Wahl und folgen Sie dem Setup-Assistenten.
  3. Führen Sie die Appium-Desktop Auf dem Computer installiert ist, wird dadurch auch der Appium-Server gestartet.

Ausführliche Anweisungen zur Installation finden Sie beim Beamten Seite von Appium.

Appium-Kunden

Appium-Kunden Diese eigentlich Bibliotheken, die Appium für verschiedene unterstützte Sprachen bereitstellt. Es ist keine Installation erforderlich, diese Bibliotheken müssen von den Testentwicklern in ihren Tests verwendet werden.

Erste Schritte mit der mobilen Automatisierung mit Appium

In diesem Abschnitt wird erläutert

  1. Erste Schritte mit der grundlegenden Testerstellung mit IntelliJ mit Java als Programmiersprache und der Appium Java Client-Bibliothek.
  2. Führen Sie den entwickelten Test gegen Appium Server aus.

Voraussetzungen:

Dieser Abschnitt muss als Voraussetzung befolgt werden

  1. Installation von Android Studio mit SDK, weil ADB wird als Teil des Android SDK installiert.
  2. Installation der IntelliJ 2019-Version
  3. Die neueste Version von Java
  4. Laden Sie eine Beispielanwendung für die Android-Automatisierung mit dem Namen herunter Eribank über den Link https://experitest.s3.amazonaws.com/eribank.apk

Erkennung von Android-Geräten

Bevor wir mit der Appium- und Mobile-Automatisierung fortfahren, ist es wichtig, dass Ihr PC das Android-Gerät erkennt. Dazu muss das Gerät an den PC angeschlossen und der Entwicklermodus/USB-Debugging aktiviert sein.

  1. Verbinden Sie das Gerät über ein USB-Kabel mit dem PC.
  2. Navigieren Sie im Android-Gerät zuEinstellungen> Über das Telefon und klicken auf 'Build-Nummer', bis Sie Entwickler werden.
  3. Sobald Sie sich im Entwicklermodus befinden, müssen Sie das USB-Debugging aktivieren, indem Sie zu navigieren Einstellungen > System > Entwickleroptionen > USB-Debugging. Siehe den Screenshot unten.

USB Debugging

Hinweis: Das USB-Debugging Die Option kann sich je nach Android-Version ändern. Die oben genannten Schritte gelten für Android 10.

Sobald diese Schritte abgeschlossen sind, wird die ADB Das Dienstprogramm muss verwendet werden, um das verbundene Android-Gerät aufzulisten.

  1. Öffnen Sie die Eingabeaufforderung
  2. Navigieren Sie zum Android SDK-Pfad „Plattform-Tools“.
  3. Führen Sie den Befehl ADB-Geräte aus. Sie sollten den Gerätenamen erhalten.Führen Sie den Befehl ADB-Geräte aus

Hinweis: Der von diesem Befehl erhaltene Gerätename (a3ae1c63) muss später in der Mobile Automation-Sitzung (im manuellen oder Automatisierungstest) verwendet werden.

Appium Server starten

In diesem Abschnitt werden wir verwenden Appium-Desktop zum Ausführen des Appium Servers. Appium Desktop ist ein hervorragendes Dienstprogramm, mit dem Sie einen Appium-Server ausführen und eine Inspector-Sitzung starten können, um die Anwendung manuell zu laden und die Standortelemente der Anwendung unter Automatisierung herauszufinden.

Um Appium Server zu starten,

  1. Starten Sie den installierten Appium Server auf Ihrem Computer (Beispiel: In Windows über das Startmenü „Programme“).
  2. Klicken Sie auf die Schaltfläche „Server starten“.Appium Server-Anmeldung
  3. Dadurch wird Appium Server (localhost:4723) gestartet, wie im Screenshot unten gezeigt. Notiz Starten Sie die Inspektorsitzung um die Inspektorsitzung zu starten.Appium-Server

Verwenden der Inspektorsitzung

Inspektor-Dienstprogramm von Appium kann verwendet werden, um eine manuelle Sitzung zu erstellen und dann die Elementpositionskennungen zu finden

Starten Sie das Inspector-Dienstprogramm über das Appium-Menü, wie oben im Abschnitt „Appium Server starten“ gezeigt.

Inspektor-Dienstprogramm von Appium

Geben Sie das Pflichtfeld an Gewünschte Fähigkeiten wie oben gezeigt und klicken Sie Sitzung starten.

Sobald Sie auf „Sitzung starten“ klicken, wird eine Sitzung mit Appium Server eingerichtet, der an das angegebene Gerät in der Funktion „Gerätename“ vermittelt. Appium Server installiert die in der „App“-Funktion angegebene Anwendung und das Inspector-Dienstprogramm zeigt die Anwendung an.

Mit dem Inspektor-Dienstprogramm können Sie auf jedes Element in der Anwendung klicken und alle mit dem Element verbundenen Eigenschaften anzeigen, die zum Auffinden des Elements zur Laufzeit verwendet werden können. Sehen Sie sich den Screenshot unten an. Das Element „Benutzername“ ist ausgewählt und alle Attribute dieses Elements werden im rechten Bereich angezeigt.

 Bitte durchgehen Elemente in Appium finden um mehr über das Auffinden von Elementen in Appium zu erfahren.

In diesem Fall kann beispielsweise das Element „Benutzername“ mithilfe von gefunden werden xpath Syntax:

[java]//*[@text='Benutzername'][/java]

Grundlegende Automatisierungstesterstellung

Grundlegende Automatisierungstesterstellung

Erstellen Sie ein einfaches Gradle-Java-Projekt

Starten Sie IntelliJ und klicken Sie Neues Projekt erstellen

Erstellen Sie ein einfaches Gradle-Java-Projekt

Auswählen Gradle als auch Javac im nächsten Bildschirm und Klicken Sie auf Weiter

Wählen Sie Gradle und Java aus

Ergänze Projekt Details (GroupId und ArtifactId) und klicken Sie Weiter

Geben Sie die Projektdetails ein

Klicken Sie auf Weiter in diesem Bildschirm (unter Beibehaltung der Standardauswahl)

Geben Sie die Projektdetails ein und klicken Sie auf „Weiter“.

Klicken Sie auf Farbe in diesem Bildschirm (unter Beibehaltung der Standardauswahl)

Geben Sie die Projektdetails ein und klicken Sie auf „Fertig stellen“.

Mit diesen Schritten wird ein grundlegendes Gradle-Projekt in IntelliJ erstellt.

Gradle-Abhängigkeit

Für eine erfolgreiche Kompilierung benötigt das Projekt die Appium-Client-Bits als auch TestNG (Weit verbreitetes Java-Test-Framework).

Um dies zu erreichen, öffnen Sie build.gradle und aktualisieren Sie das Feld „Abhängigkeiten“ wie folgt und speichern Sie die Datei.

[Java]Abhängigkeiten { Kompilierungsgruppe: 'org.testng', Name: 'testng', Version: '+' Kompilierungsgruppe: 'io.appium', Name: 'java-client', Version: '+' }[/ Java]

Gradle-Abhängigkeit

Dadurch werden alle Abhängigkeiten (Appium Java Client und TestNG-Testframework-Bibliotheken) in das Projekt heruntergeladen.

Testautoren

Erstellen Sie ein Java-Paket mit dem Namen „test“

Erstellung von Java-Tests

Erstellen Sie eine Java-Klasse mit dem Namen EribankTest.java unter dem Paket „test“.

Erstellen Sie eine Java-Klasse mit dem Namen EribankTest.java

Fügen Sie die folgende Setup-Funktion in EribankTest.java ein

[java]@BeforeTest public void setUp() throws MalformedURLException { // Gewünschte Funktionen wie zuvor im Appium Inspector-Abschnitt erläutert dc.setCapability(MobileCapabilityType.APP, „C:\eribank.apk“); dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, „com.experitest.ExperiBank“); dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, „.LoginActivity“); dc.setCapability(„Plattformname“, „Android“); dc.setCapability(„Gerätename“, „a3ae1c63“); // Treiberinitialisierung für Appium Server Driver = new AndroidDriver<>(new URL(“http://localhost:4723/wd/hub”), dc); }[/Java]

Die obige Funktion richtet den Android-Treiber mit den gewünschten Funktionen für die Sitzungsinitialisierung ein. Diese Funktion installiert/startet grundsätzlich die Anwendung eribank.apk auf dem Gerät a3ae1c63.

Wir erstellen nun einen Test, der die Anmeldung bei der Eribank-Anwendung ermöglicht.

[java]@Test public void testEribankLogin() { // Speicherort der Elemente, die von Appium Inspector abgerufen wurden. Von userElemBy = By.xpath(“//*[@text='Username']“) // Text an den Feldtreiber für den Benutzernamen senden .findElement(userElemBy).sendKeys(“company”); // Text an das Passwortfeld senden drivers.findElement(By.xpath(“//*[@text='Password']”)).sendKeys(“company“); // Klickbefehl an die Anmeldeschaltfläche senden drivers.findElement(By.xpath(“//*[@text='Login']“)).click(); }[/Java]

Kopieren Sie die oben erstellte Testfunktion und fügen Sie sie in Eribank.apk ein. Wir erhalten unsere endgültige Java-Datei wie unten gezeigt.

Kopieren Sie die oben erstellte Testfunktion und fügen Sie sie ein

Ausführen des Tests

Um den Test auszuführen, müssen wir erstellen Konfiguration ausführen indem Sie zum IntelliJ-Menü navigieren Ausführen > Konfiguration bearbeiten. Dadurch wird der folgende Bildschirm angezeigt. Klicken Sie auf „+“ und TestNG, um eine Laufkonfiguration zu erstellen.

Ausführen des Tests

Hinweis: Möglicherweise müssen Sie die hinzufügen TestNG-Plugin zu IntelliJ.

Wählen Sie die Ausführungskonfiguration aus und füllen Sie das Feld aus Benennen, Klicken Sie auf „…“, um die Testklasse (EribankTest.class) auszuwählen, und klicken Sie auf „OK“, wie unten gezeigt.

Fügen Sie das TestNG-Plugin hinzu

Führen Sie nun den Test aus, indem Sie zu navigieren Menü > Ausführen > EribankTest

Das mit diesem Blog verknüpfte Beispielprojekt befindet sich unter Beispielprojekt für Android-Automatisierung.

Guy Arieli - CTO

Auch interessant