selendroid tutorial android mobile test automation framework
Mobile Automatisierung mit Selendroid (Teil I):
Bis jetzt wurden bereits Millionen von Apps mit Android als Plattform entwickelt, und die Zahl steigt von Tag zu Tag.
Der Haken ist, wie man jede einzelne App validiert. Da wir dedizierte Ressourcen wie Arbeitskräfte, reale Geräte (z. B. mobile Geräte) usw. benötigen, ist dies wiederum eine zeitaufwändige Aufgabe. Andererseits sind die Android-Version, die Anwendungsversion (.apk), die Gerätedimension usw. nicht konstant.
Daher wird es sehr schwierig, Test-Exit-Kriterien zu definieren, da wir nicht den vollständigen Testumfang definieren können, wodurch keine genaue Schätzung des Testaufwands durchgeführt werden kann.
Um die Geräteabhängigkeit zu überwinden, werden Emulatoren entwickelt, die eine Echtzeitumgebung bieten können, in der wir die Anwendung testen können, ohne uns um die Android-Version, die Geräte und deren Version kümmern zu müssen. Das Testen von Anwendungen (.apk) über den Emulator ist jedoch eine manuelle Aktivität und sogar eine zeitaufwändige Aufgabe. Daher wird die Idee der Automatisierung mobiler Tests weiterentwickelt.
Für die mobile Automatisierung wurde ein Testautomatisierungs-Framework entwickelt, das die Automatisierung von Android-basierten Anwendungen mithilfe einer Skriptsprache ermöglicht.
Es wurden viele Automatisierungs-Frameworks wie Selendroid, Appium, Robotium und Espresso entwickelt.
Dieses Tutorial besteht aus zwei Teilen:
Lebenszyklus der Wasserfallmodellsystementwicklung
Tutorial # 1 :: Selendroid Einführung: Android Mobile Test Automation Framework
Tutorial # 2: Verwendung des Selendroid-Frameworks zur Automatisierung der Benutzerinteraktionen über eine mobile Anwendung (in Kürze verfügbar)
Was du lernen wirst:
- Was ist Selendroid?
- Selendroid-Komponenten
- Umgebungs-Setup
- Schreiben des ersten Skripts mit APK-Dateien über reale Geräte
- Fazit
- Literatur-Empfehlungen
Was ist Selendroid?
Selendroid ist ein erstaunliches Testautomatisierungstool für mobile Android-Anwendungen mit mehreren wichtigen Funktionen. Selendroid ist ein sehr leistungsfähiges Automatisierungstool, das mit mehreren Geräten gleichzeitig interagieren kann. Eine Anwendung kann mit Selendroid ohne Änderungen getestet werden.
Es wird auch genannt 'Selen für Android' zum Testen von nativen und hybriden mobilen Apps und mobilem Web.
Warum Selendroid?
- Es ist eine Open Source (kostenlos zu benutzen)
- Unterstützt Selen als Skriptsprache
- Unterstützt Web-Treiber-kompatible Sprachen wie Java, C #, Perl
- Unterstützt alle Android-Versionen
- Funktioniert sowohl auf einem Emulator als auch auf dem realen Gerät
- Funktioniert mit einer nativen, hybriden und webbasierten Anwendung
- Effektiv bei der Ausführung nativer Anwendungen sowie Cloud-basierter Anwendungen. da es Selengitter unterstützt
- Es unterstützt die Objekterkennung mithilfe von Objekteigenschaften
- Einfach zu implementieren
- Hardwaregeräte können während der Testausführung vom PC getrennt werden, ohne den Test neu zu starten oder zu stoppen. Selendroid kann die neuen Geräte automatisch erkennen. Diese Funktion wird als 'Hotplugging' bezeichnet.
Eine einfache Architektur von Selendroid
Selendroid-Komponenten
Selendroid - Client
Grundsätzlich handelt es sich um eine Java-Client-Bibliothek. Von dieser Komponente werden die HTTP- und WebDriver-Anforderungen mithilfe von JSON an den eigenständigen Selendroid-Server gesendet.
Selendroid - Standalone
Diese Komponente verwaltet verschiedene Geräte sowie die APKs, indem sie den Selendroid-Server und die zu testende App installiert. Die HTTP-Anforderung (die über ein reales Gerät / einen Simulator ausgeführt werden soll) wird vom eigenständigen Selendroid-Server an das Gerät und die zu testende APK gesendet.
Selendroid - Server
Dieser Server läuft zusammen mit der zu testenden Anwendung über das Gerät. Es besteht eine bidirektionale Kommunikation zwischen dem Server und der zu testenden Anwendung.
AndroidDriverApp
Es ist ein integrierter Android-Treiber sowie eine Web View-App zum Testen des mobilen Webs.
Ein weiteres Testframework mit dem Namen APPI funktioniert ähnlich wie ein Selendroid.
Hier ist ein kleiner Vergleich zwischen den beiden.
Merkmal | Selendroid | Appium |
---|---|---|
Unterstützung für die untere Android-Version (<4.1) | Ja | Nein |
Hot Plugging | Ja | Nein |
Testen des Benutzeragenten | Nein | Ja |
Unterstützung für iOS-basierte Anwendungen | Nein | Ja |
Umweltanforderungen | Für Android - Mac, Linux, Windows (jede Version) | Für iOS - Mac OSX 107. Für Android - Windows 7+, Linux, Mac OSX 107. |
Voraussetzungen:
Zu Beginn sollte die Zielgruppe die Verwendung von Selen, IDE-Tools wie Eclipse usw. sehr gut kennen. Grundlegende Programmierkonzepte wie Java, C usw. und die Verwendung von Maven und anderen TEST-Tools müssen bekannt sein.
- Installieren Sie Intel x86 Emulator Accelerator (nicht obligatorisch), um den Simulator von anzuzeigen Hier
- Java SDK, JRE bereits in einer Testumgebung installiert. Alternativ können Sie das gleiche von herunterladen Hier
Notieren Sie sich während der Installation den SDK-Pfad.
Stellen Sie die Umgebungsvariablen ein, die über Arbeitsplatz vorhanden sind -> Klicken Sie mit der rechten Maustaste darauf -> Eigenschaften -> Erweiterte Systemeinstellungen
- Eclipse ist bereits auf Ihrem Computer installiert. Wenn nicht, können Sie dasselbe auch von herunterladen Hier
- Selenium-JAR-Dateien müssen heruntergeladen werden. Sie können das gleiche herunterladen von hier auch
- TestNG-Gläser sind bereits heruntergeladen
- Android SDK zum Herunterladen und Installieren. Sie können das gleiche auch von herunterladen Hier
Notieren Sie sich während der Installation den Android SDK-Pfad
Nach dem Herunterladen sollte ANDROID_HOME in den folgenden Umgebungsvariablen festgelegt werden:
Arbeitsplatz -> Klicken Sie mit der rechten Maustaste darauf -> Eigenschaften -> Erweiterte Systemeinstellungen
- Selendroid-JAR-Dateien müssen heruntergeladen werden. Sie können das gleiche auch von herunterladen Hier
Merken um die eigenständige JAR-Datei von Selendroid vom oben genannten Speicherort herunterzuladen. Normalerweise ist der Name wie selendroid-standalone-0.9.0-with-dependencies.jar. Laden Sie außerdem eine Beispiel-APK-Datei mit dem Namen selendroid-test-app-0.8.0.apk vom oben genannten Speicherort herunter
Hinweis:
- Wir können auch verwenden Maven Repository Um den Verweis auf alle Gläser zu geben, müssen Sie sie manuell herunterladen und an den Erstellungspfad anhängen (Over Eclipse Project).
- Geräte / Emulatoren - In Android haben alle installierten Anwendungen die Erweiterung .apk. Auf andere Weise können Sie Apps wie APK Info herunterladen, die Sie über die Liste der auf Ihrem Android-Gerät installierten Anwendungen und deren tatsächlichen Namen, Größe usw. informieren.
Umgebungs-Setup
# 1) Bewahren Sie die APK, die installiert werden muss, an einem geeigneten Ort auf
In meinem Fall habe ich es behalten G: \ Jars \ selendroid-test-app-0.8.0.apk
# 2) Behalten Sie als Nächstes die Anwendung über dem Projektordner
In meinem Fall ist es 500: AppiumAutomation SelendroidFirst
Websites zum Herunterladen von Videos von YouTube
# 3) Schließen Sie das reale Gerät an den PC an
Stellen Sie sicher, dass der USB-Debugging-Modus aktiviert ist und dass externe Apps über eine USB-Verbindung installiert werden.
Tipps:
- Weitere Informationen finden Sie in der für Mobilgeräte erforderlichen USB-Debugging-Einstellung, z. B. Redmi Note 3 von Hier
- Ermöglichen Sie die Installation einer externen Anwendung über USB, z. B. Redmi Note 3 von Hier
# 4) Öffnen Sie die Eingabeaufforderung über Windows
Navigieren Sie zu dem Ordner, in dem sich Selendroid Standalone JAR sowie die heruntergeladene APK-Datei befinden.
Geben Sie nun den ähnlichen Befehl an und drücken Sie die Eingabetaste
Z.B. java --jar selendroid-standalone-0.15.0-with-dependencies.jar -aut selendroid-test-app-0.8.0.apk
Oder java –jar selendroid-standalone-0.15.0-with-dependencies.jar
APK-Datei: selendroid-test-app-0.8.0.apk
Hinweis: Wenn der obige Befehl ausgeführt wird, stellen Sie sicher, dass die APK signiert ist und auch das reale Gerät mit dem PC verbunden ist und das Debuggen über das Gerät aktiviert ist.
(Hinweis: Klicken Sie auf das Bild für eine vergrößerte Ansicht)
Überprüfen Sie die folgenden Punkte an der Eingabeaufforderung, um sicherzustellen, dass die Umgebung für die Automatisierung bereit ist:
- Überprüfen Sie, ob die Meldung 'Gerät mit gültiger Nummer angegeben' angezeigt wird.
- Überprüfen Sie die Meldung 'Server wird im Standardport gestartet, z. B. (4444) ...'.
- Überprüfen Sie, ob die Meldung 'Sitzung wird erstellt ...' angezeigt wird.
Auch hier können wir immer wieder bestätigen, ob ein Server gestartet wurde oder nicht, indem wir die folgende URL über einen Ihrer Webbrowser verwenden.
z.B. http: // localhost: 4444 / wd / hub / status
# 5) Überprüfen der APKs
- Wir können echte Apps verwenden, indem wir echte mobile Geräte verbinden
- Wir können alle heruntergeladenen Offline-APK-Dateien verwenden
Selendroid Inspector ist nützlich beim Debuggen / Überprüfen der Webelemente von APK.
Sobald das Gerät identifiziert und gestartet wurde, können wir die APK (im virtuellen Modus) anzeigen und die Referenzen finden, die zum Schreiben der Skripte nützlich sind, indem wir die folgende URL über einen Ihrer Webbrowser verwenden.
Z.B: http: // localhost: 4444 / inspector
Hier haben wir den Screenshot der zu testenden Anwendung und wir haben die Möglichkeit, das Element ebenfalls zu untersuchen.
Oder Sie können immer verwenden uiautomatorviewer um die Objekte aus der zu testenden Anwendung zu finden.
Der Standardpfad hierfür ist unten angegeben:
C: Benutzer admin android-sdks tools
beste kostenlose Datenwiederherstellungssoftware Windows 10
C: Benutzer admin - Dies ist der Speicherort, an dem ich Android SDKs installiert habe, der sich jedoch je nach dem bei der Installation angegebenen Speicherort unterscheiden kann.
Schreiben des ersten Skripts mit APK-Dateien über reale Geräte
Zielsetzung:
- Starten Sie den Server (am Standardport sagen Sie 4444)
- Erstellen Sie eine Sitzung
- Installieren Sie die Anwendung (APK-Datei) über dem angeschlossenen realen Gerät
- Automatisieren Sie das Textfeld mit einigen Daten
- Klicken Sie automatisch auf die Schaltfläche
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); }
Fazit
Selendroid ist ein sehr leistungsfähiges Framework-Tool für Automatisierungstests, mit dem native, hybride und Web-Apps auf jedem Android-Gerät sowie ein Simulator getestet werden können.
Es unterstützt Hotplugging, dh ein Benutzer kann mehrere Geräte gleichzeitig testen lassen, sodass eine parallele Testausführung über mehrere Geräte hinweg möglich ist. Es unterstützt verschiedene Arten von Interaktionen wie langes Drücken, Berührungsaktionen usw.
Die einzige Komplexität dabei ist das Umgebungssetup, das auch in anderen Frameworks vorhanden ist. Sobald es richtig eingerichtet ist, können wir unsere Skripte ohne Probleme ausführen.
ImTeil 2In diesem Selendoid-Tutorial wird Folgendes behandelt: Verwendung des Selendroid-Frameworks zur Automatisierung der Benutzerinteraktionen über eine mobile Anwendung.
In unserem nächsten Artikel werden wir mehr darüber diskutieren pCloudy Tutorial zum praktischen Überprüfen.
Literatur-Empfehlungen
- Ausführliche Eclipse-Tutorials für Anfänger
- SeeTest Automation Tutorial: Ein Handbuch für mobile Testautomatisierungstools
- JCF-Tutorial (Java Collections Framework)
- Java Reflection Tutorial mit Beispielen
- Ranorex-Lernprogramm: Ein leistungsstarkes Tool zum Testen der Desktop-, Web- und mobilen Automatisierung
- Appium-Tutorial zum Testen von Android- und iOS-Apps für Mobilgeräte
- Verwenden von Selendroid zum Automatisieren der Benutzerinteraktionen über eine mobile App (Teil 2)
- Erweiterte Verwendung von SeeTest Automation in Echtzeit für ein mobiles Automatisierungsprojekt