Selendroid Tutorial für Anfänger mit Beispiel

Inhaltsverzeichnis:

Anonim

Haben Sie jemals eine Android-Anwendung entwickelt und in Google Play veröffentlicht? Was werden Sie tun, wenn Sie eine Nutzerbewertung erhalten, wie z.

Wenn Sie eine App in Google Play veröffentlichen, muss sie gut getestet werden, um mögliche Fehler zu vermeiden. Es gibt eine Menge Testszenarien, die vor dem Veröffentlichen einer App ausgeführt werden sollten. Um den Testaufwand zu sparen, benötigen Sie ein Testwerkzeug. Eines der besten Testwerkzeuge für die Android-App ist Selendroid.

  • Was ist Selendroid?
  • Warum brauchen wir Selendroid?
  • Selendroid-Architektur
  • Erste Schritte mit Selendroid
  • Einrichten einer Selendroid-Umgebung
  • So starten Sie Selendroid
  • Selendroid Grundbefehl
  • Starten Sie Ihren ersten Test mit Selendroid

Was ist Selendroid?

Selendroid ist ein Testautomatisierungsframework für verschiedene Arten mobiler Anwendungen: native und hybride Android- Apps und mobiles Web.

Sie können die Tests mit den Selenium 2-Client-APIs schreiben. Weil Selendroid die vorhandene Selenium-Infrastruktur für das Web immer noch wiederverwendet

Selendroid ist ein leistungsstarkes Testwerkzeug. Es kann auf Emulatoren und realen Geräten verwendet werden

Warum brauchen wir Selendroid?

Selendroid ist ein großartiges Testwerkzeug. Aber Sie können immer noch an seiner Nützlichkeit zweifeln.

In diesem Abschnitt werden die wichtigen Funktionen des Selendroid vorgestellt, um die Frage zu beantworten, warum Sie Selendroid benötigen.

  • Sie können die zu testende Anwendung mit Selendroid testen, ohne die App zu ändern. Sie müssen nur die Binärdatei (APK) auf dem Computer installieren. Um die Binärdatei auf dem Gerät zu installieren, müssen die Test-App und die mobile App mit demselben Vorzeichenschlüssel signiert sein
  • Die Selendroid-Test-App kann gleichzeitig mit mehreren Geräten oder Simulatoren interagieren. Es ist ein großer Vorteil von Selendroid. So können Sie Ihre App mit verschiedenen Android-Geräten testen, um die Kompatibilität zu überprüfen.
  • Selendroid kann Benutzeraktionen in einer App simulieren, z. B. Berühren, Wischen, Ziehen und Ablegen auf Geräten
  • Sie können die Hardwaregeräte (Plug and Unplug) während des Tests ändern, ohne den Test neu zu starten oder zu stoppen. Selendroid erkennt die neuen Geräte automatisch
  • Entsprechend der Android-API-Version unterstützt Selendroid auch die neue Android-API (von API 10 bis API 19).
  • Selendroid verfügt außerdem über ein integriertes Inspektor-Tool, mit dem Sie das UI-Element einer zu testenden Anwendung identifizieren können. Zum Beispiel die ID-Schaltfläche, das Textfeld, die Textansicht…

Selendroid-Architektur

Selendroid basiert auf dem Android Instrumentation Framework. Selendroid-Tests basieren auf der Selenium-Webtreiber-Client-API und unterstützen daher die vollständige Integration in aktuelle Selenium-Frameworks.

Die folgende Abbildung beschreibt die Architektur von Selendroid

Selendroid enthält 4 Hauptkomponenten:

  • Web Driver Client - Die auf Selenium basierende Java-Clientbibliothek. Diese Bibliothek sollte auf dem Computer installiert sein (der zur Entwicklung der Testfälle verwendet wird).
  • Selendroid-Server - Der Server, der in der zu testenden App auf einem Android-Gerät oder Simulator ausgeführt wird. Dies sind die Hauptkomponenten einer Selendroid-Architektur
  • Android Driver-App - Ein integrierter Android-Treiber, Web View App zum Testen des mobilen Webs.
  • Selendroid-Standalone - Mit dieser Komponente werden der Selendroid-Server und die zu testende Anwendung (AUT) installiert.

Erste Schritte mit Selendroid

Sie haben bereits die Bedeutung des Selendroid erkannt. Jetzt machen wir uns mit Selendroid die Hände schmutzig.

Vor dem ersten Test mit Selendroid sollten 3 Schritte ausgeführt werden

Einrichten einer Selendroid-Umgebung

Selendroid kann unter Windows, Linux und Mac OS verwendet werden. In diesem Tutorial werden wir Selendroid in Windows OS einrichten.

Bevor Sie Selendroid verwenden können, müssen Sie zuerst das folgende Paket installieren

  • Java SDK (mindestens 1.6)

    Sie müssen die Lizenzvereinbarung akzeptieren und das Java-Installationsprogramm herunterladen (Wählen Sie x64- oder x86-Basis auf Ihrem Betriebssystem).

    Laden Sie das Java SDK als normale Software herunter und installieren Sie es

  • Neueste Version des Android SDK
  • Auf Ihrem Computer muss mindestens ein virtuelles Android-Gerät (AVD) oder ein echtes Android-Gerät an den PC angeschlossen sein.
  • Selendroid Standalone mit Abhängigkeiten, Selendroid Client und Selenium Client
  • Eclipse-Software
  • Richten Sie JAVA_HOME und ANDROID_HOME ein

    Schritt 1) Klicken Sie im Fenster mit der rechten Maustaste auf Computer -> Eigenschaften -> Erweiterte Systemeinstellungen

    Schritt 2) Wählen Sie im Fenster Systemeigenschaften die Registerkarte Erweitert -> Umgebungsvariablen

    Schritt 3) Klicken Sie im Umgebungsfenster wie folgt auf Neu -> Geben Sie eine Variable ANDROID_HOME ein

    Der Variablenwert ist der Pfad zu Android-SDKS, den Sie bereits installiert haben.

    Suchen Sie die Systemvariable Pfad -> Bearbeiten -> Fügen Sie nach der aktuellen Zeile die folgende Zeile hinzu

    Fügen Sie ähnlich wie ANDROID_HOME eine neue Variable JAVA_HOME mit dem folgenden Wert hinzu

    Der Wert ist der Pfad zu Ihrer Java JDK-Installation

    Schritt 4) Starten Sie Ihren PC neu -> Fertig

So starten Sie Selendroid

Schritt 1) ​​Testen einer Anwendung

Sie können die vorhandene Selendroid-Test-App verwenden, um zu überprüfen, wie Selendroid funktioniert (Link zur zu testenden Beispielanwendung).

Wenn der Download abgeschlossen ist, kopieren Sie diese APK und die oben genannte Selendroid Standalone-JAR-Datei in einen Ordner mit dem Namen " Guru99".

Schritt 2) Starten Sie das Selendroid

Öffnen Sie das Terminal unter Windows und navigieren Sie zu dem in Schritt 1 erstellten Ordner Guru99.

Führen Sie den folgenden Befehl aus

Die Ausgabe wird wie folgt angezeigt

Nach dem Ausführen dieses Befehls wird der eigenständige HTTP-Server von Selendroid gestartet! Die Standardportnummer dieses Servers ist 4444. Alle Hardwaregeräte sowie das virtuelle Android-Gerät werden automatisch gescannt und erkannt. Selendroid identifiziert die Android-Zielversion und die Bildschirmgröße des Geräts.

Um die Android-Zielversion sowie die Geräteinformationen zu überprüfen, können Sie die folgende URL in einem Browser starten:

http: // localhost: 4444 / wd / hub / status.

Selendroid Grundbefehl

In diesem Abschnitt werden einige grundlegende Selendroid-Standalone-Befehlszeilen vorgestellt. Sie können sie verwenden, um die Selendroid-Testumgebung einzurichten

  1. Port von Selendroid einstellen

    Der Standardport von Selendroid ist 4444. Sie können jedoch zu einem anderen Port wechseln, indem Sie dem Befehl zum Starten von Selendroid einen Parameter hinzufügen

    Parameter: -port [Portnummer]

    Zum Beispiel:

    Im obigen Befehl ist 5555 der neue Port.

Daher wird die URL zum Überprüfen der Android-Zielversion in http: // localhost: 5555 / wd / hub / status geändert

  1. Geben Sie den Speicherort der zu testenden Anwendung an (Binäre APK-Datei). Selendroid benötigte häufig den absoluten Pfad für diese Datei

    Parameter: -app [Dateipfad]

    Zum Beispiel:

    Im obigen Befehl findet der Selendroid automatisch die Binärdateibasis auf "C: \ Guru99App.apk", um die Informationen der zu testenden Anwendung abzurufen.

    Überprüfen Sie die URL http: // localhost: 4444 / wd / hub / status. Diese Informationen werden angezeigt

  2. Ändern Sie den Port, über den Selendroid mit dem Instrumentierungsserver kommuniziert. Selendroid verwendet standardmäßig den Port 8080

    Parameter: -selendroidServerPort [Portnummer]

    Beispiel

    Der Port wird jetzt auf 9000 geändert

  3. Ändern Sie das Zeitlimit, um Emulatoren zu starten. Die Einheit ist Millisekunden.

    Parameter: -timeoutEmulatorStart

    Standardmäßig wartet Selendroid 300.000 Millisekunden, bis der Emulator gestartet wird. Sie können per Befehl zu einem neuen Timeout (200.000 ms) wechseln

    Wenn nach dieser Zeit unser Emulator abgelaufen ist und der Emulator nicht gestartet werden kann, gibt der Selendroid den Ausnahmefehler aus (Fehler bei der Suche nach Geräten / Emulatoren aufgetreten) und wird dann nicht mehr ausgeführt

  4. Wenn Sie den Selendroid-Befehl auf dem Terminal starten, wird ein Protokoll auf dem Bildschirm ausgedruckt. Sie können den angezeigten Protokolltyp ändern, indem Sie den folgenden Parameter hinzufügen

    Parameter: -logLevel [Protokolltyp]

    Die Werte für die Protokollebene sind ERROR, WARNING, INFO, DEBUG und VERBOSE. Standard: FEHLER.

    Stellen Sie beispielsweise Selendroid so ein, dass nur das WARNING-Protokoll gedruckt wird. Sie können diesen Befehl verwenden

    Der Selendroid druckt nur das WARNING-Protokoll

Starten Sie Ihren ersten Test mit Selendroid

Dieser Abschnitt ist eine schrittweise Anleitung zum Erstellen Ihres ersten Testskripts mit Selendroid

Angenommen, wir haben eine Android-Anwendung unter dem Testnamen Guru99App. Die Anwendung enthält ein Textfeld und einen Schaltflächennamen "Text anzeigen".

LADE DIE APK HIER HERUNTER

Wir müssen den folgenden Testfall mit Selendroid ausführen

Testfälle

Bedingung

Erwartete Ausgabe:

  1. Anwendung starten
  2. Geben Sie einen Text " Guru99 Test " in das Textfeld ein
  3. Klicken Sie auf die Schaltfläche "Text anzeigen"

Die Binärdatei der zu testenden Anwendung ist verfügbar

Ein Gerät ist an den PC angeschlossen

Der Text "Text hier anzeigen" wird in den Text geändert

welcher Benutzer in ein Textfeld eingeben

Schritt 1) Erstellen Sie ein Java-Projekt in Eclipse

Schritt 2) Fügen Sie in Eclipse-Umgebungen eine Selen- und Selendroid-JAR-Datei hinzu

Klicken Sie mit der rechten Maustaste auf Guru99Test-Projekt -> Pfad erstellen -> Externe Archive hinzufügen

Navigieren Sie zu dem Ordner, in dem die JAR-Dateien gespeichert sind

Es sollten 3 JAR-Dateien hinzugefügt werden

  • selendroid-client-0.10.0.jar: Selendroid Java-Client-Bibliothek
  • selendroid-standalone-0.11.0-with-dependencies: Selendroid-Standalone-Serverbibliothek
  • selenium-java-2.40.0.jar: Selenium Web Driver-Bibliothek

Alles auswählen -> Wählen Sie Öffnen, um dem Projekt eine JAR-Datei hinzuzufügen

Schritt 3) Nach dem Hinzufügen der obigen Bibliothek werden diese Bibliotheken zu den Referenzbibliotheken des Testprojekts hinzugefügt. Ein Tester kann die APIs dieser Bibliotheken verwenden, um das Testprogramm zu entwickeln

Erstellen Sie das Paket "com.guru.test" und fügen Sie die Java-Datei "Guru99Test.java" wie unten hinzu

Klicken Sie mit der rechten Maustaste auf Guru99Test -> Neu -> Paket

Geben Sie com.guru.test in das Feld Name im Dialogfeld Neues Java-Paket à Fertig stellen ein

Die Eclipse erstellt Listenordner und Unterordner wie diesen in der Quellcodestruktur

Schritt 4) Installieren Sie TestNG für Eclipse

Klicken Sie in Eclipse unter Hilfe -> Neue Software installieren im Dialogfeld Installieren auf Hinzufügen und geben Sie Folgendes ein

  • Name: TestNG
  • Ort: http://selendroid.io/

Drücken Sie OK -> Weiter, um das TestNG zu installieren

Schritt 5) Kopieren Sie die Datei Guru99App.apk in den Ordner der Test App

Schritt 6) Holen Sie sich die ID einer zu testenden Anwendung.

Angenommen, wir haben einen APK-Dateinamen Guru99App.apk. Befolgen Sie die im vorherigen Abschnitt beschriebenen Schritte und führen Sie den Befehl auf dem Terminal aus

Öffnen Sie den folgenden Link in einem Browser

http: // localhost: 4444 / wd / hub / status.

Die Informationen des Geräts werden angezeigt. Kopieren Sie den AppId-Wert "com.guru99app: 1.0".

Schritt 7) Öffnen Sie die Datei Guru99Test.java (im Beispielcode) und ändern Sie sie wie folgt

Um eine neue Testsitzung mit Selendroid zu erstellen, müssen Sie die App-ID im Format com.guru99app: 1.0 angeben. Diese App-ID kann in Schritt 6 identifiziert werden. Wenn Sie die App-ID nicht auf das Android-Gerät einstellen, wird in der Testsitzung ein Fehler ausgegeben und nicht gestartet.

Nach der Initialisierung des gefundenen Geräts erstellt Selendroid einen benutzerdefinierten Selendroid-Server und installiert den Selendroid-Server darauf

Selendroid installiert auch die zu testende Anwendung und startet den Selendroid-Server auf dem Gerät

Nach erfolgreicher Initialisierung der Testsitzung wird der Testbefehl auf einem Gerät ausgeführt. (Drücken Sie beispielsweise die Taste, um Text einzugeben

…). Wenn der Test die Testsitzung anhängt, wird der Emulator automatisch gestoppt

Schritt 8) Starten Sie die neue Testsitzung

Starten Sie den Selendroid-Server mit dem folgenden Befehl auf dem Terminal wie in Schritt 6

Öffnen Sie nach dem Start des Selendroid-Servers das Beispieltestprojekt Guru99test auf Eclipse, setzen Sie einen Haltepunkt in Zeile 77 in der Datei Guru99Test.java, indem Sie auf die Zeile 77 doppelklicken -> Ein Punkt wird wie unten angezeigt

Starten Sie eine Testsitzung, indem Sie mit der rechten Maustaste auf Guru99Test-Projekt -> Debuggen als -> Testng-Test klicken.

Eine Testsitzung beginnt wie folgt

Schritt 9) Rufen Sie die ID des GUI-Elements einer zu testenden Anwendung ab

Öffnen Sie nach erfolgreichem Start der Testsitzung den Browser und navigieren Sie zur URL http: // localhost: 4444 / inspector

Sie werden sehen, dass die zu testende Anwendung wie folgt gestartet wird

Verwenden Sie den Mauszeiger zu jedem UI-Element von AUT (Button, TextField, Text Label). Die ID jedes Elements wird im rechten Bereich hervorgehoben

Nach diesem Schritt können Sie die ID jedes oben genannten UI-Elements abrufen

  • Schaltfläche Text-ID anzeigen : " btnShow "
  • Textfeld-ID: " edtText "
  • Beschriftungstext- ID: " txtView "

Diese IDs werden im nächsten Schritt verwendet

Schritt 10) Geben Sie das Testprogramm wie folgt ein

Ein Testprogramm mit Selendroid enthält 3 Abschnitte

Setup-Test:

Im Folgenden finden Sie den Code für den Setup-Test. Er richtet die Bedingung für eine Testsitzung ein. Im Fehlerfall löst der Selendroid die Ausnahme aus und die Test-App wird gestoppt.

Der Code enthält die Kommentare, um die einzelnen Anweisungen zu erläutern.

Paket com.guru.test;import io.selendroid.SelendroidCapabilities;import io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;import io.selendroid.SelendroidLauncher;import io.selendroid.device.DeviceTargetPlatform;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.testng.Assert;import org.testng.annotations.AfterSuite;import org.testng.annotations.BeforeSuite;import org.testng.annotations.Test;/ *** @author Guru99 Test App mit Selendroid* Testanwendung: Guru99App* ** /ÖffentlichkeitKlasse Guru99Test {// Web-Treibervariable deklarierenprivater WebDriver-Treiber;/ *** Richten Sie die Umgebung vor dem Testen ein* @throws Ausnahme* /@BeforeSuiteÖffentlichkeitvoid setUp () löst eine Ausnahme aus {// Selendroid-Standalone während des Tests startenSelendroidConfiguration config = new SelendroidConfiguration ();// Füge die Selendroid-Test-App zum Standalone-Server hinzuconfig.addSupportedApp ("Guru99App.apk");// Starten Sie den Standalone-ServerSelendroidLauncher selendroidServer = neuer SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Erstellen Sie die Selendroid-FunktionenSelendroidCapabilities capa = new SelendroidCapabilities ();// Geben Sie an, dass die Test-App von selendroid verwendet werden sollcapa.setAut ("com.guru99app: 1.0");// Geben Sie an, dass die Android-Geräte-API 19 verwendet werden sollcapa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Simulator nicht anfordern, echtes Gerät verwendencapa.setEmulator (false);//capa.wait(10000000);// Instanz des Selendroid-Treibers erstellenTreiber = neuer SelendroidDriver (capa);}}

Test ausführen

Unten finden Sie den Code zum Ausführen eines Tests. Der Code enthält die Kommentare

Hier sind noch einmal die Testschritte

  1. Geben Sie den Text "Hallo Guru" ein
  2. Klicken Sie auf die Schaltfläche Text anzeigen
  3. Warte eine Weile
  4. Stellen Sie sicher, dass die App den Text anzeigt, wenn der Benutzer ein Textfeld eingibt (z. B. den Text "Hallo Guru" anzeigen).
 / *** Starten Sie die Ausführung des Testfalls* 01. Geben Sie den Text "Selendroid" in das Textfeld ein* 02. Drücken Sie die OK-Taste* @throws Ausnahme* /@PrüfungÖffentlichkeitvoid selendroidTest () löst eine Ausnahme aus {// Protokoll druckenSystem.out.print ("Test ausführen");// Finde das eingegebene Textfeld auf dem Bildschirm// Die ID dieses Textfelds stammt aus Schritt 9WebElement inputField = driver.findElement (By.id ("edtText"));// Stellen Sie sicher, dass das Textfeld aktiviert ist, damit der Benutzer Text eingeben kannAssert.assertEquals ("true", inputField.getAttribute ("enabled"));// Geben Sie ein Text-zu-Text-Feld eininputField.sendKeys ("Hallo Guru");// Klicken Sie auf die Schaltfläche Text anzeigen// Die ID dieser Schaltfläche stammt aus Schritt 9WebElement button = driver.findElement (By.id ("btnShow"));button.click ();// Zeit bis zum Wirksamwerden verzögernThread.sleep (5000);// Finde die Bezeichnung "Text Show Here" auf dem Bildschirm// Die ID dieses Labels stammt aus Schritt 9WebElement txtView = driver.findElement (By.id ("txtView"));// Die Textanzeige auf dem Bildschirm anzeigenZeichenfolge erwartet = txtView.getText ();// Stellen Sie sicher, dass der Text, den der Benutzer in das Textfeld eingibt, mit der Textanzeige auf dem Bildschirm übereinstimmtAssert.assertEquals (erwartet, inputField.getText ());}}

Test beenden

Der folgende Code schließt den Test ab, indem der Selendroid-Treiber gestoppt wird.

 / *** Stoppen Sie den Selendroid-Treiber* ** /@ AfterSuiteÖffentlichkeitvoid tearDown () {driver.quit ();}}

Sie können die Details im Beispielcode sehen, der in diesem Artikel enthalten ist.

Schritt 10) Verbinden Sie das Android-Gerät über ein USB-Kabel mit dem PC. Zu beachtende Punkte -

  • Bitte stellen Sie sicher, dass auf dem Gerät keine Bildschirmsperre konfiguriert ist.
  • Geräte müssen über USB an den Computer angeschlossen werden, auf dem die selendroid-eigenständige Komponente ausgeführt wird.
  • Das Gerät sollte mindestens Android Target Version API 10 installieren

Schritt 11) Führen Sie die Test-App aus: Klicken Sie mit der rechten Maustaste auf Guru99test -> Ausführen als -> TestNG-Test

Schritt 10) Der Skriptstart wird wie folgt ausgeführt

Schritt 12) Nachdem der Test die Ausführung abgeschlossen hat, generiert TestNG den Testbericht automatisch wie folgt

Gute Arbeit, Sie haben den Test jetzt abgeschlossen.

Zusammenfassung

Zusammenfassung

  • Selendroid ist ein sehr leistungsfähiges Tool zum Testen der nativen Android-App, der Hybrid-App sowie der Web-App.
  • Es kann sowohl auf realen Geräten als auch im Simulator verwendet werden.
  • Außerdem können Sie Tests parallel ausführen, indem Sie einen Test auf mehreren Geräten ausführen.
  • Die gesamte Selendroid-Suite besteht aus vier Komponenten:
    • Web-Treiber-Client,
    • Selendroid-Server,
    • Android-Treiber-App
    • Selendroid-Standalone
  • Um Selendroid verwenden zu können, müssen Java JDK, Android SDK und Eclipse installiert sein.