appium tutorial testing android
So installieren und einrichten Sie Appium unter Windows mit dem ersten Programm, um einen Kick-Start für Appium zu erhalten:
Appium ist Open Source Testautomatisierungstool benutzt für Testen mobiler Anwendungen . Benutzer können verschiedene Arten von mobilen Anwendungen (z. B. Native, Hybrid und Mobile Web) mithilfe der Standard-WebDriver-Bibliothek testen.
Es gibt drei Arten von mobilen Apps:
- Eingeborener: Native Apps, die mit iOS-, Android- oder Windows-SDKs erstellt wurden. Sie sind plattformspezifisch. Sie sind für die Arbeit auf einer Plattform und / oder einem Gerät ausgelegt.
- Hybrid: Hybrid-Apps sind Webanwendungen, die mit HTML, CSS und dem Wrapper einer nativen Anwendung auf UIWebView für iOS und „Webview“ für Android-Apps entwickelt wurden.
- Mobile Web-Apps: Mobile Web-Apps sind Apps, auf die mit mobilen Browsern zugegriffen wird.
Liste der Tutorials in dieser Appium-Reihe
Tutorial Nr. 1: Appium Tutorial für Anfänger (Dieses Tutorial)
Tutorial # 2: Einführung in Appium: Was ist Appium und seine Architektur?
Tutorial # 3: Laden Sie Appium für Windows herunter, installieren Sie es und richten Sie es ein
Tutorial # 4: Mobiles Gerät mit System in Appium konfigurieren
Tutorial Nr. 5: Automatisieren Sie die native App auf einem Android-Gerät mit Appium
Tutorial # 6: So automatisieren Sie die Webanwendung im Chrome-Browser auf einem Android-Gerät
Was du lernen wirst:
- Warum ist Appium ein beliebtes Tool zur Automatisierung mobiler Apps?
- Einrichten des Appium-Tools unter Windows
- Appium mit Eclipse IDE einrichten
- Einschränkungen früherer Epochen
- Herausforderungen bei der Arbeit mit Appium
- Fazit
Warum ist Appium ein beliebtes Tool zur Automatisierung mobiler Apps?
Appium ist ein 'plattformübergreifendes Tool', mit dem Sie Tests auf mehreren Plattformen (iOS, Android, Windows) mit denselben APIs schreiben können. Verwenden von Appium Sie führen auch automatisierte Tests auf tatsächlichen Geräten wie Tablets, Mobiltelefonen usw. durch.
Es ist das Meiste weit verbreitetes Werkzeug für Regressionstests von mobilen Apps auf Mobiltelefonen und Tablets. Appium erleichtert das Regressionstest für mobile Apps. Insbesondere für große mobile Apps, die häufig mit neuen Features und Funktionen aktualisiert werden.
Einrichten des Appium-Tools unter Windows
Voraussetzungen: Dies ist eine Auswahlliste von Software und Hardware, die zur Automatisierung eines mobilen App-Tests mit Appium erforderlich sind:
- Auf Ihrem PC sollten JDK, Appium Server, Eclipse und Android SDK installiert sein
- Apk: Mobile Anwendung, die in unserem Fall ContactManager.apk automatisiert werden soll
- Testgerät: In diesem Fall Moto G.
- Gläser: Java-Client-Jars und Selenium-Jars.
- USB-Treiber zum Testen des Geräts: In diesem Fall Moto G.
Schritt 1: Installieren Sie das Java Development Kit ( JDK )
Schritt 2: Richten Sie Java ein Pfad der Umgebungsvariablen
Schritt 3: Laden Sie das Android SDK herunter und installieren Sie es Hier und aktualisieren Sie die APIs
So aktualisieren Sie die API: Öffnen Sie Eclipse -> Klicken Sie im Eclipse-Menü auf Fenster und -> Wählen Sie den Android SDK-Manager aus
Aktualisieren Sie die APIs wie im folgenden Screenshot gezeigt:
Schritt 4: Jetzt müssen wir Appium für Windows installieren. Gehen Hier und laden Sie Appium für Windows herunter.
Schritt 5: I. Installieren Sie Node JS von hier aus: Knoten JS herunterladen
Schritt 6: Stellen Sie die ANDROID_HOME Weg sowie JAVA_HOME Pfad
Geben Sie den Pfad für Tools und Plattform-Tools an, die im Android SDK-Pfad vorhanden sind.
Diese Ordner wären in vorhanden adt-bundle-windows-x86_64-20140702 sdk
Jetzt müssen wir die Umgebungsvariable aktualisieren (siehe unten Screenshot).
(Hinweis:Klicken Sie auf ein Bild, um es zu vergrößern.)
Aktualisiere den Pfad mit Tools und Plattform-Tools (Ordner im Android SDK vorhanden).
Der Eintrag in Path sieht wie folgt aus:
C: Programme nodejs ;% ANDROID_HOME% tools;% ANDROID_HOME% platform-tools
Schritt 7: Zugriff auf adb
Drücken Sie die Tastenkombination Win + R.
Art CMD . Geben Sie jetzt in CMD „ adb ’. adb wird zugänglich sein
Vorbereiten des Mobilgeräts für die Automatisierung mit Appium
Verbinden Sie Ihr mobiles Testgerät über USB mit dem PC. Aktivieren Sie den Entwicklermodus auf dem Mobiltelefon, bevor Sie die App automatisieren.
Schritte zum Aktivieren des Entwicklermodus / der Entwickleroptionen auf Android-Handys oder -Tablets:
1) Öffnen Sie die Einstellungen, tippen Sie auf die Option 'Info', tippen Sie auf 'Software-Informationen' und anschließend auf 'Mehr'.
2) Tippen Sie siebenmal auf 'Build-Nummer', um die Entwickleroptionen zu aktivieren.
3) Gehen Sie zurück zu Einstellungen und stellen Sie sicher, dass die Einstellung 'Entwickleroptionen' vorhanden ist.
4) Tippen Sie auf Entwickleroptionen und aktivieren Sie die Option USB-Debugging im Menü des nächsten Bildschirms.
Weitere Hilfe finden Sie hier Verknüpfung .
5) Laden Sie die USB-Treiber für das mobile Testgerät herunter und installieren Sie sie auf dem PC.
6) Geben Sie im ADB-Terminal 'ADB-Geräte' ein.
C: Benutzer NEERAJ> ADB-Geräte
Liste der angeschlossenen Geräte
TA93305G0L Gerät
Daraufhin wird die Liste der an das System angeschlossenen Geräte angezeigt. Wir werden App Contact Manager.apk als Beispiel-App zur Automatisierung verwenden. Herunterladen und installieren Wenden Sie sich an Manager.apk auf dem Gerät.
Starten der Automatisierung der Android App mit Appium
Führen Sie nun die aus appium.exe auf dem PC.
Appium muss ausgeführt werden und die folgenden Parameter und den Gerätenamen in den Android-Einstellungen übergeben.
Hinweis: Ändern Sie weder die Portnummer noch etwas im Symbol für die allgemeinen Einstellungen. Beim Start von Appium Server werden standardmäßig die Serveradresse sowie die Portadresse festgelegt. Die Portadresse ist standardmäßig 4723
In der Android-Einstellung muss der Benutzer den APK-Pfad festlegen, in dem sich die APK befindet. App-Pfad überprüfen, Paket verpacken und Aktivität starten.
- Schließen Sie Ihr Android-Telefon an den PC an und aktivieren Sie den USB-Debugging-Modus.
- Öffnen Sie die Eingabeaufforderung.
- Befehl eingeben adb logcat .
- Öffnen Sie die App auf Ihrem Android-Handy. Sofort drücken STRG + C. in der Eingabeaufforderung
com.example.android.contactmanager ist Paketname und com.example.android.contactmanager.ContactManager ist der Aktivitätsname der Contact Manager-App.
Im obigen Screenshot haben wir alle erforderlichen Informationen in Appium, d. H. Paket, Startaktivität, Name des Mobilgeräts, ausgefüllt.
Wie finde ich ein Element mit UIAutomatorViewer?
1) Um die App zuerst zu automatisieren, müssen wir die Elemente der App finden, die wir für die Interaktion benötigen
dafür werden wir verwenden UIAutomatorViewer
2) Verbinden Sie das Gerät, auf dem die App installiert ist, mit dem PC
3) Gehe zum Terminal.
Art 'ADB-Geräte'
C: Benutzer NEERAJ> ADB-Geräte
Liste der angeschlossenen Geräte
TA93305G0L Gerät
Daraufhin wird die Liste der an Ihren PC angeschlossenen Geräte angezeigt.
4) Öffnen Sie die App, die Sie in Mobile Device automatisieren möchten.
5) Öffnen UIAutomatorViewer und gehe auf den folgenden Weg
adt-bundle-windows-x86_64-20140702 sdk tools
6) Stellen Sie also sicher, dass Ihre App gestartet ist und UIAutomaterViewer wird gestartet, klicken Sie auf Geräte-Screenshot.
7) Mit dieser Option wird der Screenshot der App mit allen detaillierten Informationen aller in der App sichtbaren Elemente erstellt.
Klicken Sie für unser Testszenario auf die Schaltfläche Kontakt hinzufügen
Wie lese ich eine Bin-Datei?
Aus dem obigen Screenshot können wir den Locator verwenden By.name ('Kontakt hinzufügen')
Aus dem obigen Screenshot können wir By.className ('android.widget.EditText') als Locator für den Kontaktnamen verwenden
By.name ('Speichern') kann als unser Locator für die Schaltfläche Speichern verwendet werden
Erstes Programm zur Automatisierung einer App auf Appium
Führen Sie das folgende Skript aus. Die Contact Manager-Anwendung wird auf dem realen Gerät gestartet und alle Protokolle werden in der Appium-Konsole angezeigt, in der alle Aktionen angezeigt werden, die vom obigen Skript aufgerufen werden.
importjava.io.File; importjava.net.MalformedURLException; import java.net.URL; importjava.util.List; importorg.openqa.selenium.By; importorg.openqa.selenium.WebDriver; importorg.openqa.selenium.WebElement; importorg.openqa.selenium.remote.CapabilityType; importorg.openqa.selenium.remote.DesiredCapabilities; importorg.openqa.selenium.remote.RemoteWebDriver; importorg.testng.annotations.*; public class appium { WebDriver driver; @BeforeClass public void setUp() throws Exception { //location of the app File app = new File('C:\Users\NEERAJ\Downloads', 'ContactManager.apk'); //To create an object of Desired Capabilities DesiredCapabilities capability = new DesiredCapabilities(); //OS Name capability.setCapability('device','Android'); capability.setCapability(CapabilityType.BROWSER_NAME, ''); //Mobile OS version. In My case its running on Android 4.2 capability.setCapability(CapabilityType.VERSION, '4.2'); capability.setCapability('app', app.getAbsolutePath()); //To Setup the device name capability.setCapability('deviceName','Moto G'); capability.setCapability('platformName','Android'); //set the package name of the app capability.setCapability('app-package', 'com.example.android.contactmanager-1'); //set the Launcher activity name of the app capability.setCapability('app-activity', '.ContactManager'); //driver object with new Url and Capabilities driver = new RemoteWebDriver(new URL('http://127.0.0.1:4723/wd/hub'), capability); } @Test public void testApp() throws MalformedURLException{ System.out.println('App launched'); // locate Add Contact button and click it WebElementaddContactButton = driver.findElement(By.name('Add Contact')); addContactButton.click(); //locate input fields and type name and email for a new contact and save it ListtextFields = driver.findElements(By.className('android.widget.EditText')); textFields.get(0).sendKeys('Neeraj Test'); textFields.get(1).sendKeys('9999999999'); textFields.get(2).sendKeys('testemail@domain.com'); driver.findElement(By.name('Save')).click(); //insert assertions here } }
Appium mit Eclipse IDE einrichten
Für Appium erforderliche Software ::
- JDK, Appium Server, Eclipse, Android SDK
- Gläser: Java-Client-Gläser und Selen-Gläser.
- Apk: Anwendung soll automatisiert werden
- Echtes Gerät: In diesem Fall SAMSUNG Note3
- USB-Treiber für Real Device: In diesem Fall SAMSUNG Kies
Schritt 1: Installiere das Java Development Kit (JDK)
Schritt 2: Installieren Pfad der Java-Umgebungsvariablen
Gehen Sie zum Terminal und geben Sie Folgendes ein:
Öffnen Sie .bash_profile
Legen Sie den Pfad ANDROID_HOME sowie den Pfad JAVA_HOME fest
Schritt 3: Installieren Sie das Android SDK / ADB auf MAC
Wir müssen Tools, Extras und entsprechende API Level-Pakete installieren (in diesem Fall Android 4.4.2 API 19).
(Hinweis:Klicken Sie auf ein Bild, um es zu vergrößern.)
Schritt 4: Herunterladen und Epochen installieren Server
Anmerkung 1: Das Symbol für die allgemeinen Einstellungen muss nicht festgelegt werden. Bei der Installation von Appium Server werden standardmäßig die Serveradresse sowie die Portadresse festgelegt. Die Portadresse lautet 4723. Der Benutzer kann die Serveradresse bei Bedarf ändern.
Anmerkung 2: In der Android-Einstellung muss der Benutzer den APK-Pfad festlegen, in dem sich die APK befindet. App-Pfad überprüfen, Paket verpacken und Aktivität starten.
So finden Sie den Namen des .Apk-Dateipakets und den Namen der Launcher-Aktivität:
Es gibt so viele Möglichkeiten, den Paketnamen und den Startaktivitätsnamen einer Anwendung herauszufinden. Hier wird das Terminal verwendet, um den Namen der Paket- und Startaktivität abzurufen.
Gehen Sie zum Terminal und geben Sie Folgendes ein:
Aapt Dump Badging
Drücken Sie die Eingabetaste für den folgenden Bildschirm:
Wenn ein Benutzer in Appium Server den Paketnamen und dann den Aktivitätsnamen des Starters angibt, warten Sie, bis die Aktivitätsnamen automatisch angezeigt werden.
In diesem Fall lautet der Name der Launcher-Aktivität:
'' com.amazon.mShop.android.home.HomeActivity. ”
Schritte zum Aktivieren des Entwicklermodus / der Entwickleroptionen auf Android Phone oder Tablet
Schritt 1::Entwickleroptionen aktivieren
1) Tippen Sie auf Hauptmenü Symbol.
2) Gehe zu die Einstellungen .
3) Scrollen Sie nach unten zu ' Über das Telefon Und tippen Sie darauf.
4) Scrollen Sie nach unten und tippen Sie auf ' Build-Nummer “ Sieben (7) Mal . ( Ihre Build-Nummer kann variieren ). Nach dem dritten Tippen kann der Benutzer einen spielerischen Dialog sehen. “ Sie sind Entwickler ”. Tippen Sie weiter, bis der Dialog angezeigt wird.
5) Sie können die Entwickleroptionen jetzt auf Ihrem Bildschirm sehen.
Schritt 2::USB-Debugging einschalten
1) Gehe zu Entwickleroptionen .
zwei ) Wählen USB-Debugging .
3) Es kann die anzeigen Auftauchen Nachricht und wenn ja, einfach klicken OK .
Schritt 3::Laden Sie den USB-Treiber für das entsprechende reale Gerät herunter und installieren Sie ihn. In diesem Fall SAMSUNG Kies.
Wie finde ich ein Element mit UIAutomatorViewer?
1) Der erste Schritt vor dem Auffinden eines Elements auf dem Gerät besteht darin, das Gerät an den Computer anzuschließen.
Führen Sie die folgenden Schritte aus, um die Gerätekonnektivität zu überprüfen:
- Gehe zu Terminal .
- Art ' ADB-Geräte '
Daraufhin wird die Liste der an das System angeschlossenen Geräte angezeigt.
2) Öffnen Sie auf dem realen Gerät die App, die automatisiert werden muss (hier ist die Amazon-App automatisiert).
3) Gehen Sie zum Öffnen in das folgende Verzeichnis UIAutomatorViewer ::
Benutzer -> Bibliothek -> Android -> sdk -> Werkzeuge -> uiautomatorviewer.bat
EHEMALIGE: Benutzer / bikram.badatya / Library / Android / sdk / tool /
4) Klicken Sie in UIAutomatorViewer auf Geräte-Screenshot .
5) Beim Klicken Geräte-Screenshot, Das Gerätebild sowie die detaillierten Informationen werden auf der linken Seite des UIAutomator-Fensters angezeigt.
6) Wenn Sie auf ein Element auf der Seite klicken, werden auf der rechten Seite relevante Informationen zu diesem Element angezeigt.
7) Klicke auf das Hauptmenü Schaltfläche, um alle Eigenschaften anzuzeigen.
Appium Test zum Starten der Amazon App
1) Starten Sie Appium Server.
2) Android-Einstellungen.
3) Allgemeine Einstellungen für Serveradresse und Portadresse:
4) Klicken Sie auf die Schaltfläche Start .
Code-Snippet zum Starten der Amazon-Anwendung:
package com.AppiumDemo; //Library to create the path to APK import java.io.File; //Library used to verify if URL is malformed import java.net.MalformedURLException; //Library used to create URL for the Appium server import java.net.URL; import java.util.concurrent.TimeUnit; //Libraries for import selenium WebDriver import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; //Libraries for configuring Desired Capabilities import org.openqa.selenium.remote.DesiredCapabilities; //Library for import TestNG import org.testng.annotations.Test; //Libraries for import Appium Drivers import io.appium.java_client.MobileElement; import io.appium.java_client.android.AndroidDriver; public class LauchAmazon { private static AndroidDriver driver; //static WebDriver driver; @Test public void setup() throws MalformedURLException, InterruptedException{ // Path to File appDir = new File('//Users//bikram.badatya//Library//Android//sdk//platform-tools//'); //Path to to Amazon apk File> File app = new File(appDir, 'Amazon.apk'); //To create an object of Desired Capabilities DesiredCapabilities capabilities = new DesiredCapabilities(); //To set Command Timeout in appium server.Its optional you can set in appium Server itself. capabilities.setCapability('no',true); capabilities.setCapability('newCommandTimeout', 100000); // Name of the OS: Android, iOS or FirefoxOS capabilities.setCapability('platformName', 'Android'); //set the name of the connected device.you have to give same name in both server and the code capabilities.setCapability('deviceName','41001fd89730a000'); //Mobile OS version. My device is running Android 4.4.2 capabilities.setCapability('AndroidVersion','4.4.2'); //set the package name of the app capabilities.setCapability('appPackage', 'com.amazon.mShop.android'); //set the Launcher activity name of the app capabilities.setCapability ('appActivity','com.amazon.mShop.android.home.HomeActivity'); // Name of mobile web browser to automate. It should be an empty string, as we are automation an app. capabilities.setCapability('browserName', ''); //driver object with new Url and Capabilities driver = new AndroidDriverWenn das obige Skript ausgeführt wird, wird die Amazon-Anwendung auf dem realen Gerät gestartet und eine Liste der Nachrichten in der Appium-Konsole angezeigt.
Wichtige Befehle
1) So töten Sie den ADB-Server:
adb kill-server
2) So starten Sie den ADB-Server:
ADB-Startserver
3) So legen Sie den JAVA_Home-Pfad sowie den ANDROID_Home-Pfad fest
Öffnen Sie .bash_profile
4) Um den Paketnamen und den Namen des Android Launcher in apk zu erhalten (auf andere Weise)
aapt dump badging .apk name
Ehemalige- Aapt Dump Badging
/users/bikram.badatya/Library/Android/sdk/platform-tools/Amazon.apk
5) So installieren Sie apk auf einem realen Gerät
adb install .apk name
6) So deinstallieren Sie apk auf einem realen Gerät
adb deinstallieren
Ehemalige - - adb deinstallieren com.amazon.mShop.android
Einschränkungen früherer Epochen
- Die Android-API-Stufe unter 17 wird nicht unterstützt
- Toastnachrichten werden nicht unterstützt
- Die Skriptausführung auf der IOS-Plattform ist sehr langsam
- Die Unterstützung von Gesten ist begrenzt
Herausforderungen bei der Arbeit mit Appium
# 1) Um den Namen der Launcher-Aktivität zu erhalten, der zum Starten der Anwendung erforderlich ist, können viele Methoden befolgt werden, z. B. muss ein zusätzliches Apk mit dem Namen „apkInfo“ installiert werden, bestimmte Codezeilen müssen geschrieben werden usw. In diesem Dokument wird jedoch Folgendes beschrieben: Der folgende Befehl wird verwendet, um den Namen der Starteraktivität abzurufen.
d.h. aapt dump badging .apk name
#zwei) Während der Einrichtung im Android SDK-Manager müssen wir uns auf die folgenden Pakete konzentrieren, die deinstalliert werden müssen. Andernfalls wird die Anwendung nicht gestartet
#3) Insbesondere auf MAC müssen wir Java_HomePath und Android HomePath in .bash_profile einrichten, damit es nicht immer wieder eingerichtet werden muss.
# 4) Das Starten der Anwendung mit einem Emulator nimmt im Vergleich zu einem realen Gerät mehr Zeit in Anspruch. Daher wird die Verwendung eines realen Geräts empfohlen.
Fazit
Angesichts der aufkommenden Trends und der steigenden Nachfrage nach mobilen Apps migrieren alle großen Unternehmen, um ihr Geschäft mit mobilen Apps zu betreiben. Um hochwertige mobile Apps herauszubringen, ist das Testen der Automatisierung mobiler Apps der neueste Trend in der Branche.
Appium ist aufgrund seiner Einfachheit und Benutzerfreundlichkeit eines der weltweit führenden und am häufigsten verwendeten Tools für Automatisierungstests von mobilen Apps für iOS oder Android.
Über den Autor: Dieser Beitrag wurde von STH-Teammitglied Neeraj verfasst. Er ist ein leidenschaftlicher Software-Tester, der derzeit als Senior Software Development Engineer in Test arbeitet, und testet gerne Web- und mobile Anwendungen.
Lesen Sie hier mehr Mobile Automatisierung mit Appium Studio Tool.
Literatur-Empfehlungen
- Lernprogramm zum Testen der mobilen Benutzeroberfläche (GUI-Test von iOS- und Android-Apps)
- TOP 15 der besten mobilen Testtools im Jahr 2021 für Android und iOS
- Beta-Testdienste für mobile Apps (iOS- und Android-Beta-Testtools)
- Warum ist mobiles Testen schwierig?
- Verbinden von echten iOS- und Android-Geräten von der Cloud mit Appium Studio
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Tutorials zum Testen mobiler Apps (Eine vollständige Anleitung mit mehr als 30 Tutorials)
- So erhalten Sie schnell einen Job für mobile Tests - Karrierehandbuch für mobile Tests (Teil 1)