Selendroid Tutorial für Anfänger mit Beispiel

Haben Sie jemals eine entwickelt? Android Anwendung herunterladen und bei Google Play veröffentlichen? Was werden Sie tun, wenn Sie eine Benutzerbewertung wie – erhalten?

Selendroid Einführung

Wenn Sie eine App bei Google Play veröffentlichen, muss sie gründlich getestet werden, um mögliche Fehler zu vermeiden. Es gibt eine Menge Testszenarien, die vor der Veröffentlichung einer App ausgeführt werden sollten. Um das zu retten Testen Für den Aufwand benötigen Sie ein Testtool. Eines der besten Testtools für Android App ist Selendroid.

Was ist Selendroid?

Selendroid ist ein Testautomatisierungs-Framework für verschiedene Arten mobiler Anwendungen: nativen und Hybride Android App und Mobile web.

Was ist Selendroid

Sie können die Tests mit dem schreiben Selenium 2 Client-APIs. Weil Selendroid immer noch Wiederverwendungen des Vorhandenen Selenium Infrastruktur für das Web

Selendroid ist ein leistungsstarkes Testtool. Es kann verwendet werden Emulatoren und echt Low-Level-Lichtlaser

Was ist Selendroid

Warum brauchen wir Selendroid?

Selendroid ist ein großartiges Testtool. Aber vielleicht zweifeln Sie immer noch an der Nützlichkeit.

Warum brauchen wir Selendroid

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

Warum brauchen wir Selendroid

  • Sie können die zu testende Anwendung mit testen Selendroid ohne jegliche Änderung der App. Sie benötigen lediglich die Binärdatei (APK) auf dem Computer installiert. Um die Binärdatei auf dem Gerät zu installieren, müssen die Test-App und die mobile App mit demselben Signaturschlüssel signiert werden
  • Selendroid Test-App kann mit mehreren Geräten oder Simulatoren gleichzeitig interagieren. Das ist ein großer Vorteil von Selendroid. So können Sie Ihre App mit verschiedenen testen Android Geräte, um die Kompatibilität zu überprüfen.
  • Selendroid kann menschliche Benutzeraktionen in einer App simulieren, z. B. Berühren, Wischen, Ziehen und Ablegen auf Geräten
  • Sie können die Hardwaregeräte während des Tests wechseln (ein- und ausstecken), ohne den Test neu starten oder stoppen zu müssen. Selendroid erkennt die neuen Geräte automatisch
  • Entsprechend der Android API-Version hoch, Selendroid unterstützt auch das Neue Android API (von API 10 bis API 19)
  • Selendroid verfügt außerdem über ein integriertes Inspektortool, 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 der Android Instrumentierungsrahmen. Selendroid Tests werden auf der Grundlage der geschrieben Selenium Web-Treiber-Client-API, sodass die vollständige Integration mit der aktuellen Version unterstützt wird Selenium Frameworks.

Die folgende Abbildung beschreibt die Architektur von Selendroid

Selendroid Architektur

Selendroid enthält 4 Hauptkomponenten:

Selendroid Architektur

  • Web Driver Client – ​​Der Java Client-Bibliothek basierend auf Selenium. Diese Bibliothek sollte auf dem Computer installiert werden (der zur Entwicklung der Testfälle verwendet wird).
  • Selendroid-Server – Der Server, auf dem die zu testende App ausgeführt wird Android Gerät oder Simulator. Dies sind die Hauptbestandteile von a Selendroid Architektur
  • Android Treiber-App – Eine integrierte Android Treiber, Web View App zum Testen des mobilen Webs.
  • Selendroid-Standalone – Diese Komponente wird zur Installation verwendet Selendroid Server und die zu testende Anwendung (AUT)

Anfangen mit Selendroid

Sie wissen bereits, wie wichtig das ist Selendroid. Jetzt machen wir uns die Hände schmutzig Selendroid.

Vor dem ersten Test sollten 3 Schritte durchgeführt werden Selendroid

Anfangen mit Selendroid

Einrichten eines Selendroid -Umgebung

Selendroid kann auf Windows arbeiten, Linux und Mac OS. In diesem Tutorial werden wir die Einrichtung durchführen Selendroid im Windows-Betriebssystem.

Vor der Verwendung Selendroid, Sie müssen zuerst folgendes Paket installieren

  • Java SDK (mindestens 1.6)

    Sie müssen die Lizenzvereinbarung akzeptieren und das Java-Installationsprogramm herunterladen (wählen Sie je nach Betriebssystem x64 oder x86).

    Einrichten eines Selendroid Arbeitsumfeld

    Laden Sie die Java SDK als normale Software

  • Die neueste Version des Android SDK
  • Ihr Computer muss mindestens einen haben Android Virtuelles Gerät (AVD) oder ein echtes Android Gerät an den PC angeschlossen.
  • Selendroid Eigenständig mit Abhängigkeiten, Selendroid Kunden und Selenium Kunden
  • Eclipse Software.
  • Richten Sie JAVA_HOME und ANDROID_HOME ein

    Schritt 1) Klicken Sie im Fenster mit der rechten Maustaste auf Computer -> Ferienhäuser -> Erweiterte Systemeinstellung

    Einrichten eines Selendroid Arbeitsumfeld

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

    Einrichten eines Selendroid Arbeitsumfeld

    Schritt 3) Klicken Sie im Fenster „Umgebung“ auf „Neu“. -> Geben Sie die Variable ANDROID_HOME wie folgt ein

    Einrichten eines Selendroid Arbeitsumfeld

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

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

    Einrichten eines Selendroid Arbeitsumfeld

    Einrichten eines Selendroid Arbeitsumfeld

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

    Einrichten eines Selendroid Arbeitsumfeld

    Der Wert ist der Pfad zu Ihrem Java JDK-Installation

    Schritt 4) Starten Sie Ihren PC neu -> Erledigt

So starten Sie Selendroid

Schritt 1) ​​Eine Anwendung zum Testen bringen

Sie können vorhandene verwenden Selendroid Testen Sie die App, um das zu überprüfen Selendroid funktioniert (Link zur Beispielanwendung im Test)

Sobald der Download abgeschlossen ist, kopieren Sie diese APK und die oben genannten Selendroid Eigenständiges Glas Datei in einen Ordner mit dem Namen „Guru99″

Schritt 2) Starten Sie die Selendroid

Öffnen Sie das Terminal Windows & navigieren Sie zu dem in Schritt 99 erstellten Ordner Guru1.

Führen Sie den folgenden Befehl aus

Launch Selendroid

Die Ausgabe wird wie folgt angezeigt

Launch Selendroid

Nachdem Sie diesen Befehl ausgeführt haben, Selendroid-Standalone-HTTP-Server startet! Die Standardportnummer dieses Servers ist 4444. Alle Hardwaregeräte sowie Android Virtuelles Gerät wird automatisch gescannt und erkannt. Selendroid wird das identifizieren Android Zielversion und Gerätebildschirmgröße.

Um das zu überprüfen Android Um die Zielversion sowie die Geräteinformationen zu erhalten, können Sie die folgende URL in einem Browser aufrufen: http://localhost:4444/wd/hub/status.

Launch Selendroid

Selendroid Grundbefehl

In diesem Abschnitt werden einige Grundlagen vorgestellt Selendroid-Eigenständige Befehlszeile. Sie können sie zum Einrichten verwenden Selendroid Testumgebung

  1. Port einstellen von Selendroid

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

    Parameter: -port [Port-Nummer]

    Beispielsweise:

    Selendroid Grundbefehl

    Im obigen Befehl ist 5555 der neue Port.

Also die URL, um die zu überprüfen Android Zielversion wird geändert in: http://localhost:5555/wd/hub/status

  1. Geben Sie den Speicherort der zu testenden Anwendung an (binäre APK-Datei). Selendroid Oftmals ist der absolute Pfad für diese Datei erforderlich

    Parameter: -app [Dateipfad]

    Beispielsweise:

    Selendroid Grundbefehl

    Im obigen Befehl die Selendroid Suchen Sie 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, werden Ihnen diese Informationen angezeigt

    Selendroid Grundbefehl

  2. Ändern Sie den Port Selendroid Wird zur Kommunikation mit dem Instrumentierungsserver verwendet. Selendroid verwendet standardmäßig den Port 8080

    Parameter: -selendroidServerPort [Port-Nummer]

    Beispiel

    Selendroid Grundbefehl

    Der Port ist jetzt auf 9000 geändert

  3. Ändern Sie das Timeout zum Starten von Emulatoren. Die Einheit ist Millisekunden.

    Parameter: -timeoutEmulatorStart

    Standardmäßig Selendroid wartet 300,000 Millisekunden, bis der Emulator startet. Sie können per Befehl zum neuen Timeout (200,000 ms) wechseln

    Selendroid Grundbefehl

    Nach dieser Zeit ist unser abgelaufen, wenn der Emulator nicht starten kann Selendroid löst den Ausnahmefehler aus (Beim Suchen nach Geräten/Emulatoren ist ein Fehler aufgetreten.) und stoppt dann die Ausführung

  4. Wenn Sie das starten Selendroid Befehl auf dem Terminal ausführen, 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 Protokollebenenwerte sind ERROR, WARNING, INFO, DEBUG und VERBOSE. Standard: FEHLER.

    Zum Beispiel einstellen Selendroid Um nur das WARNING-Protokoll zu drucken, können Sie diesen Befehl verwenden

    Selendroid Grundbefehl

    Das Selendroid Drucken Sie nur das WARNING-Protokoll

Beginnen Sie Ihren ersten Test mit Selendroid

Dieser Abschnitt ist eine Schritt-für-Schritt-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 eine Schaltfläche mit dem Namen „Text anzeigen“.

Laden Sie die APK HIER herunter

Erster Test mit Selendroid

Wir müssen Folgendes ausführen Testfall Verwendung von Selendroid

Testfälle Anforderungen Erwartete Ausgabe
  1. Anwendung starten
  2. Geben Sie einen Text ein „Guru99-Test” in das Textfeld
  3. Klicken Sie auf die Schaltfläche „Text anzeigen“.
Die Binärdatei der getesteten Anwendung ist verfügbar

Ein Gerät ist mit dem PC verbunden

Der Text „Text hier anzeigen“ wird in den Text geändert

welchen Benutzer in ein Textfeld eingibt

Schritt 1) Erstellen Sie Java Projekt in Eclipse

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

Klicken Sie mit der rechten Maustaste auf das Guru99Test-Projekt -> Pfad erstellen -> Extern hinzufügen ArchiDorf

Erster Test mit Selendroid

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-mit-Abhängigkeiten: Selendroid eigenständige Serverbibliothek
  • selenium-java-2.40.0.jar: Selenium Web-Treiberbibliothek

Wählen Sie alle -> Wählen Sie „Öffnen“, um dem Projekt eine JAR-Datei hinzuzufügen

Erster Test mit Selendroid

Schritt 3) Nach dem Hinzufügen der oben genannten 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 beschrieben hinzu

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

Erster Test mit Selendroid

Geben Sie com.guru.test in das Feld Name auf Neue Java Paketdialog à Fertigstellen

Erster Test mit Selendroid

Das Eclipse erstellt Listenordner und Unterordner wie diesen in der Quellcodestruktur

Erster Test mit Selendroid

Schritt 4) Installieren TestNG für den Eclipse

In Eclipse, Hilfe -> Neue Software installieren, im Installationsdialog auf Hinzufügen klicken und folgendes eingeben

drücke OK -> Als nächstes installieren Sie das TestNG

Erster Test mit Selendroid

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

Erster Test mit Selendroid

Schritt 6) Rufen Sie die ID einer getesteten Anwendung ab.

Angenommen, wir haben eine APK-Datei mit dem Namen Guru99App.apk. Befolgen Sie den im vorherigen Abschnitt beschriebenen Schritt und führen Sie den Befehl auf dem Terminal aus

Erster Test mit Selendroid

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

Erster Test mit Selendroid

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

Erster Test mit Selendroid

So erstellen Sie eine neue Testsitzung mit Selendroid, müssen Sie die App-ID im Format angeben: com.guru99app:1.0. Diese App-ID kann in Schritt 6 identifiziert werden. Wenn Sie keine passende App-ID festlegen Android Gerät wird die Testsitzung einen Fehler auslösen und nicht gestartet werden.

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

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

Nach erfolgreicher Initialisierung der Testsitzung wird die Ausführung des Testbefehls auf einem Gerät gestartet. (Zum Beispiel Text eingeben, Taste drücken…). Wenn der Test die Testsitzung anhängt, stoppt der Emulator automatisch

Schritt 8) Starten Sie die neue Testsitzung

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

Erster Test mit Selendroid

Nach dem Selendroid Server gestartet, öffnen Sie das Beispieltestprojekt Guru99test Eclipse, setzen Sie einen Haltepunkt in Zeile 77 der Datei Guru99Test.java durch Doppelklick auf Zeile 77 -> Ein Punkt wird wie unten angezeigt

Erster Test mit Selendroid

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

Eine Testsitzung beginnt wie folgt

Erster Test mit Selendroid

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

Nachdem die Testsitzung erfolgreich gestartet wurde, öffnen Sie den Browser und navigieren Sie zur URL http://localhost:4444/inspector

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

Erster Test mit Selendroid

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

Erster Test mit Selendroid

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

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

Diese IDs werden im nächsten Schritt verwendet

Schritt 10) Geben Sie das Testprogramm wie folgt ein

Ein Testprogramm mit Selendroid umfasst 3 Abschnitte

Setup-Test:

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

Der Code enthält die Kommentare zur Erläuterung der einzelnen Anweisungen.

package 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 using Selendroid
			 * Application under test: Guru99App
		 *
		 */
		public
				class Guru99Test {
				
				     //Declare web driver variable
		    private WebDriver driver;
					   
   
		    /**
		     * Setup the environment before testing
		     * @throws Exception
			     */
		    @BeforeSuite
		    public
					void setUp() throws Exception {
							
        //Start selendroid-standalone during test
		        SelendroidConfiguration config = new SelendroidConfiguration();
			        
		      // Add the selendroid-test-app to the standalone server
		        config.addSupportedApp("Guru99App.apk");
			        
                 
		        //start the standalone server
		        SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
			        selendroidServer.launchSelendroid();
		        
		       // Create the selendroid capabilities
		        SelendroidCapabilities capa = new SelendroidCapabilities();
			        
        
		       // Specify to use selendroid's test app
		        capa.setAut("com.guru99app:1.0");
			       
		       // Specify to use the Android device API 19
		        capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
			        
		        // Don't request simulator, use real device
		        capa.setEmulator(false);
			        
         
		        //capa.wait(10000000);
		        
		        // Create instance of Selendroid Driver
		        driver = new SelendroidDriver(capa);
					       
		    }
		

Test ausführen

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

Hier 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).
 /**
		     * Start execute the test case
		     * 01. Enter the text "Selendroid" to the textfield
		     * 02. Press OK button
		     * @throws Exception
			     */
		    @Test
		    public
					void selendroidTest() throws Exception {
							        
		        // Print the log 
		        System.out.print("Start executing test");
					        
		        // Find the input text field on screen
        // The id of this text field was get from step 9
		        WebElement inputField = driver.findElement(By.id("edtText"));
					        
		        // Verify that the text field enabled so user can enter text
		        Assert.assertEquals("true", inputField.getAttribute("enabled"));
					        
		        // Enter a text to text field
		        inputField.sendKeys("Hello Guru");        
			
         // click Show Text button
        // The id of this button was get from step 9
		        WebElement button = driver.findElement(By.id("btnShow"));
					        button.click();
		        
		        // Delay time to take effect
		        Thread.sleep(5000);
		        
		        //Find the label "Text Show Here" on screen
        // The id of this label was get from step 9
		        WebElement txtView = driver.findElement(By.id("txtView"));
					        
		        //Get the text display on screen
		        String expected = txtView.getText();
		        
		// Verify that the text which user enter on text field is same as text display on screen
		        Assert.assertEquals(expected, inputField.getText());        
		
     }

Test beenden

Der folgende Code beendet den Test durch Anhalten des Selendroid Treiber.

 /**
		     * Stop the Selendroid driver
		     * 
		     */
		    @AfterSuite
		    public
					void tearDown() {
					        driver.quit();
			    }

Die Einzelheiten können Sie dem in diesem Artikel enthaltenen Beispielcode entnehmen.

Schritt 10) Verbinden Android Gerät per USB-Kabel mit dem PC verbinden. 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-Standalone-Komponente ausgeführt wird.
  • Das Gerät sollte mindestens installiert werden Android Target Version API 10

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

Erster Test mit Selendroid

Schritt 10) Das Skript wird wie folgt ausgeführt

Erster Test mit Selendroid

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

Erster Test mit Selendroid

Erster Test mit Selendroid

Gute Arbeit, Sie haben den Test jetzt abgeschlossen.

Zusammenfassung

  • Selendroid ist ein sehr leistungsfähiges Werkzeug zum Testen Android Native App, die Hybrid-App sowie die 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 Driver-Client,
    • Selendroid-Server,
    • Android Fahrer-App
    • Selendroid-eigenständige
  • So verwenden Sie Selendroid Sie brauchen Java JDK, Android SDK und Eclipse installiert.