appium tutorial testing android
Come installare e configurare Appium su Windows con il primo programma per iniziare subito con Appium:
Appium è un open source strumento di automazione dei test usato per testare le applicazioni mobili . Consente agli utenti di testare vari tipi di applicazioni mobili (come Native, Hybrid e Mobile Web) utilizzando la libreria WebDriver standard.
Esistono tre tipi di app mobili:
- Nativo: App native create utilizzando iOS, Android o Windows SDK. Sono specifici della piattaforma. Sono progettati per funzionare su una piattaforma e / o un dispositivo.
- Ibrido: Le app ibride sono applicazioni web sviluppate utilizzando HTML, CSS e wrapper di un'applicazione nativa su UIWebView per iOS e 'webview' per app Android.
- App Web mobili: Le app Web mobili sono le app a cui si accede utilizzando i browser mobili.
Elenco dei tutorial in questa serie Appium
Tutorial n. 1: Tutorial Appium per principianti (questo tutorial)
Tutorial n. 2: Introduzione ad Appium: cos'è Appium e la sua architettura
Tutorial n. 3: Scarica, installa e configura Appium per Windows
Tutorial n. 4: Configurazione del dispositivo mobile con il sistema in Appium
Tutorial n. 5: Automatizza l'app nativa sul dispositivo Android utilizzando Appium
Tutorial # 6: Come automatizzare l'app Web sul browser Chrome nel dispositivo Android
Cosa imparerai:
- Perché Appium è uno strumento popolare per l'automazione delle app mobili?
- Configurazione dello strumento Appium su Windows
- Imposta Appium con Eclipse IDE
- Limitazioni di epoche precedenti
- Sfide affrontate mentre si lavora con Appium
- Conclusione
Perché Appium è uno strumento popolare per l'automazione delle app mobili?
Appium è uno “strumento multipiattaforma” ovvero permette di scrivere test su più piattaforme (iOS, Android, Windows), utilizzando le stesse API. Utilizzando appium , esegui anche test automatici su dispositivi reali come tablet, telefoni cellulari, ecc.
È il massimo strumento ampiamente utilizzato per i test di regressione delle app mobili su telefoni cellulari e tablet. Appium semplifica i test di regressione delle app mobili; in particolare, per app mobili di grandi dimensioni che vengono aggiornate frequentemente con nuove caratteristiche e funzionalità.
Configurazione dello strumento Appium su Windows
Prerequisiti: Questo è un elenco ristretto di software e hardware necessari per automatizzare il test di un'app mobile utilizzando Appium:
- Il tuo PC dovrebbe avere JDK, Appium Server, Eclipse, Android SDK installati
- Apk: Applicazione mobile da automatizzare nel nostro caso ContactManager.apk
- Dispositivo di prova: In questo caso Moto G
- Barattoli: Barattoli client Java e vasetti selenio.
- Driver USB per dispositivo di test: In questo caso Moto G
Passo 1: Installa il Java Development Kit ( JDK )
Passo 2: Configura Java Percorso variabile d'ambiente
Passaggio 3: Scarica e installa Android SDK Qui e aggiorna le API
Per aggiornare l'API, Apri Eclipse -> Fai clic su Finestra nel menu Eclipse e -> Seleziona Android SDK manager
Aggiorna le API come mostrato nello screenshot qui sotto:
Passaggio 4: Ora dobbiamo installare Appium per Windows. Partire Qui e scarica Appium per Windows.
Passaggio 5: io nstall Node JS da qui: Download del nodo JS
Passaggio 6: Impostare il ANDROID_HOME percorso così come JAVA_HOME sentiero
Specificare il percorso per gli strumenti e lo strumento della piattaforma presenti nel percorso di Android SDK.
Queste cartelle sarebbero presenti in adt-bundle-windows-x86_64-20140702 sdk
Ora dobbiamo aggiornare la variabile d'ambiente (vedi sotto Screenshot)
(Nota:Fare clic su qualsiasi immagine per ingrandirla)
Percorso di aggiornamento con strumenti e strumenti della piattaforma (cartella presente in Android SDK).
La voce in Path apparirà come di seguito:
C: Programmi nodejs ;% ANDROID_HOME% tools;% ANDROID_HOME% platform-tools
Passaggio 7: accedi ad adb
Premi la combinazione di tasti Win + R.
genere CMD . Ora in CMD digita ' adb '. adb sarà accessibile
Preparazione del dispositivo mobile per l'automazione con Appium
Collega il tuo dispositivo di test mobile tramite USB al PC. Abilita la modalità sviluppatore sul telefono cellulare prima di automatizzare l'app.
Passaggi per abilitare la modalità / opzioni sviluppatore su telefono o tablet Android:
1) Apri Impostazioni, tocca l'opzione 'Informazioni', tocca 'Informazioni sul software', quindi tocca 'Altro'.
Due) Tocca 'Numero build' 7 volte per abilitare le opzioni sviluppatore.
3) Torna alle Impostazioni e assicurati che sia presente l'impostazione 'Opzioni sviluppatore'.
4) Tocca Opzioni sviluppatore e attiva l'opzione Debug USB dal menu nella schermata successiva.
Per ulteriore aiuto segui questo collegamento .
5) Scarica e installa i driver USB per il dispositivo di test mobile su PC.
6) Nel tipo di terminale adb 'dispositivi adb'
C: Users NEERAJ> dispositivi adb
Lista dei dispositivi collegati
Dispositivo TA93305G0L
Verrà visualizzato l'elenco dei dispositivi collegati al sistema. Useremo App Contact Manager.apk come app di esempio da automatizzare. Scarica e installa Contatta Manager.apk sul dispositivo.
Avvio dell'automazione dell'app Android tramite Appium
Ora esegui il file appium.exe su PC.
Appium deve essere in esecuzione e trasmettere i seguenti parametri e il nome del dispositivo nelle impostazioni di Android.
Nota: Non modificare il numero di porta o altro nell'icona delle impostazioni generali. All'avvio di Appium Server, l'indirizzo del server e l'indirizzo della porta verranno impostati per impostazione predefinita. L'indirizzo della porta sarà 4723 per impostazione predefinita
In Impostazioni Android, l'utente deve impostare il percorso APK in cui si trova l'APK, controllare il percorso dell'app, il pacchetto e avviare l'attività.
- Collega il tuo telefono Android al PC e attiva la modalità di debug USB.
- Apri il prompt dei comandi.
- Digita il comando adb logcat .
- Apri l'app sul tuo telefono Android. Premere immediatamente CTRL + C nel prompt dei comandi
com.example.android.contactmanager è il nome del pacchetto e com.example.android.contactmanager.ContactManager è il nome dell'attività dell'app Contact Manager.
Nello screenshot sopra, abbiamo inserito tutte le informazioni necessarie in Appium, ovvero pacchetto, attività di avvio, nome del dispositivo mobile.
Come individuare l'elemento utilizzando UIAutomatorViewer?
1) Per automatizzare l'app in primo luogo dovremo trovare gli elementi dell'app che avremo bisogno di interagire
per questo, useremo UIAutomatorViewer
Due) Collega il dispositivo in cui è installata l'app al PC
3) Vai al terminale.
genere 'Dispositivi adb'
C: Users NEERAJ> dispositivi adb
Lista dei dispositivi collegati
Dispositivo TA93305G0L
Questo mostrerà l'elenco dei dispositivi collegati al tuo PC.
4) Apri l'app che desideri automatizzare nel dispositivo mobile.
5) Aperto UIAutomatorViewer e vai al seguente percorso
adt-bundle-windows-x86_64-20140702 sdk tools
6) Quindi assicurati che la tua app sia avviata e UIAutomaterViewer viene avviato fare clic su Screenshot del dispositivo.
7) Questa opzione farà lo screenshot dell'App con tutte le informazioni dettagliate di tutti gli elementi visibili sull'App.
Fare clic sul pulsante Aggiungi contatto per il nostro scenario di test
c ++ esempio di espressione regolare
Dallo screenshot sopra, possiamo usare il localizzatore Per.name ('Aggiungi contatto')
Dallo screenshot sopra possiamo prendere By.className ('android.widget.EditText')) come nostro localizzatore per il nome del contatto
Per.name ('Salva') può essere utilizzato come nostro localizzatore per il pulsante Salva
Primo programma per automatizzare un'app su Appium
Esegui lo script sottostante, l'applicazione Contact Manager verrà avviata sul dispositivo reale e tutti i log verranno visualizzati nella console Appium mostrandoti tutte le azioni che vengono richiamate dallo script precedente.
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 } }
Imposta Appium con Eclipse IDE
Software richiesto per Appium :
- JDK, Appium Server, Eclipse, Android SDK
- Barattoli: vasetti java-client e vasetti selenio.
- Apk: Applicazione da automatizzare
- Dispositivo reale: In questo caso SAMSUNG Note3
- Driver USB per dispositivo reale: In questo caso SAMSUNG Kies
Passo 1: Installa il file Java Development Kit (JDK)
Passo 2: Impostare Percorso variabile dell'ambiente Java
Vai al Terminale e digita:
Apri .bash_profile
Imposta il percorso ANDROID_HOME e il percorso JAVA_HOME
Passaggio 3: Installa Android SDK / ADB su MAC
Dobbiamo installare Strumenti, Extra e pacchetti di livello API corrispondenti (in questo caso Android 4.4.2 API 19).
(Nota:Fare clic su qualsiasi immagine per ingrandirla)
Passaggio 4: Scarica e epoche installano il server
Nota 1: Non è necessario impostare nulla nell'icona delle impostazioni generali. Quando Appium Server è installato, l'indirizzo del server, così come l'indirizzo della porta, sarà impostato per impostazione predefinita. L'indirizzo della porta sarà 4723. L'utente può modificare l'indirizzo del server se necessario.
Nota 2: In Impostazioni Android, l'utente deve impostare il percorso APK in cui si trova l'APK, controllare il percorso dell'app, il pacchetto e avviare l'attività.
Come trovare il nome del pacchetto del file .Apk e il nome dell'attività del programma di avvio:
Esistono tanti modi per scoprire il nome del pacchetto e il nome dell'attività di avvio di un'applicazione. Qui il terminale viene utilizzato per ottenere il nome del pacchetto e dell'attività di avvio.
Vai al terminale e digita:
badge dump aapt
Premi 'Invio' per la schermata seguente:
Se un utente specifica il nome del pacchetto in Appium Server, quindi il nome dell'attività di avvio, attendi che i nomi delle attività vengano visualizzati automaticamente.
In questo caso, il nome dell'attività di avvio è:
' com.amazon.mShop.android.home.HomeActivity '.
Procedura per abilitare la modalità / opzioni sviluppatore su telefono o tablet Android
Passo 1:Abilita Opzioni sviluppatore
1) Tocca il file Menu principale icona.
Due) Vai a impostazioni .
3) Scorri verso il basso fino a ' Info sul telefono 'E toccalo.
4) Scorri fino in fondo, tocca ' Numero build ' Sette (7) volte . ( Il numero di build può variare ). Dopo il terzo tocco, l'utente può vedere una finestra di dialogo giocosa ' Sei uno sviluppatore '. Continuare a toccare finché non viene visualizzata la finestra di dialogo.
5) Ora puoi notare le Opzioni sviluppatore sullo schermo.
Passo 2:Attivare il debug USB
1) Vai a Opzioni sviluppatore .
Due ) Selezionare Debug USB .
3) Potrebbe visualizzare il file Apparire messaggio e se lo fa, semplicemente clic ok .
Passaggio 3:Scarica e installa il driver USB per il dispositivo reale corrispondente. In questo caso SAMSUNG Kies.
Come individuare l'elemento utilizzando UIAutomatorViewer?
1) Il primo passo prima di individuare qualsiasi elemento sul dispositivo è connettere il dispositivo al computer.
Seguire i passaggi seguenti per verificare la connettività del dispositivo:
- Vai a terminale .
- Genere ' dispositivi adb '
Verrà visualizzato l'elenco dei dispositivi collegati al sistema.
Due) Sul dispositivo reale, apri l'app che deve essere automatizzata (qui l'app Amazon è automatizzata)
3) Vai alla seguente directory per aprire UIAutomatorViewer :
Utenti -> Biblioteca -> Android -> sdk -> utensili -> uiautomatorviewer.bat
EX: utenti / bikram.badatya / Library / Android / sdk / tool /
4) In UIAutomatorViewer, fare clic su Screenshot del dispositivo .
5) Facendo clic Screenshot del dispositivo, l'immagine del dispositivo insieme alle informazioni dettagliate verranno visualizzate sul lato sinistro della finestra di UIAutomator.
6) Facendo clic su qualsiasi elemento della pagina, le informazioni rilevanti su quell'elemento verranno visualizzate sul lato destro.
7) Clicca sul Menu principale pulsante per visualizzare tutte le proprietà.
Appium Test per avviare l'app Amazon
1) Avvia Appium Server.
2) Impostazioni Android.
3) Impostazioni generali per indirizzo server e indirizzo porta:
4) Fare clic sul pulsante di avvio .
Snippet di codice per avviare l'applicazione Amazon:
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 AndroidDriverQuando lo script precedente viene eseguito, l'applicazione Amazon verrà avviata sul dispositivo reale e verrà visualizzato un elenco di messaggi nella console Appium.
Comandi importanti
1) Per uccidere il server adb:
adb kill-server
Due) Per avviare adb server:
adb start-server
3) Per impostare anche JAVA_Home Path e ANDROID_Home Path
apri .bash_profile
4) Per ottenere il nome del pacchetto e il nome dell'utilità di avvio di Android in apk (un altro modo)
aapt dump badging .apk name
Ex- badge dump aapt
/users/bikram.badatya/Library/Android/sdk/platform-tools/Amazon.apk
5) Per installare apk nel dispositivo reale
adb installa .apk nome
6) Per disinstallare apk nel dispositivo reale
disinstallazione di adb
Ex - adb disinstalla com.amazon.mShop.android
Limitazioni di epoche precedenti
- Non supporta il livello API Android inferiore a 17
- I messaggi di avviso popup non sono supportati
- L'esecuzione degli script sulla piattaforma IOS è molto lenta
- Il supporto dei gesti è limitato
Sfide affrontate mentre si lavora con Appium
# 1) Per ottenere il nome dell'attività del programma di avvio, necessario per avviare l'applicazione, è possibile seguire molti metodi come è necessario installare un apk aggiuntivo denominato 'apkInfo', è necessario scrivere alcune righe di codice, ecc. Ma, in questo documento, il seguente comando viene utilizzato per ottenere il nome dell'attività del programma di avvio.
cioè aapt dump badging .apk name
#Due) Durante l'installazione nel gestore di Android SDK dobbiamo concentrarci sui seguenti pacchetti che devono essere disinstallati. In caso contrario, l'applicazione non verrà avviata
# 3) Soprattutto su MAC, dobbiamo configurare Java_HomePath e Android HomePath in .bash_profile in modo che non sia necessario configurarli più e più volte.
# 4) L'avvio dell'applicazione utilizzando un emulatore richiede più tempo rispetto a un dispositivo reale. Quindi, si consiglia l'uso di un dispositivo reale.
Conclusione
Con le tendenze emergenti e la crescente domanda di app mobili, tutte le principali aziende stanno migrando per portare il proprio business sulle app mobili. Pertanto, per rilasciare app mobili di qualità, il test di automazione delle app mobili è l'ultima tendenza nel settore.
Appium, per la sua semplicità e facilità d'uso, è uno degli strumenti leader e più utilizzati in tutto il mondo per i test di automazione delle app mobili per iOS o Android.
Circa l'autore: Questo post è stato scritto dal membro del team STH Neeraj. È un appassionato tester di software e attualmente lavora come ingegnere senior per lo sviluppo di software in Test e si diverte a testare applicazioni web e mobili.
Controlla qui per saperne di più Automazione mobile tramite Appium Studio Tool.
Lettura consigliata
- Esercitazione sul test dell'interfaccia utente mobile (test della GUI di app iOS e Android)
- TOP 15 migliori strumenti di test per dispositivi mobili nel 2021 per Android e iOS
- Servizi di beta test per app mobili (strumenti per beta test iOS e Android)
- Perché il test mobile è difficile?
- Collegamento di dispositivi iOS e Android reali da Cloud ad Appium Studio
- Migliori strumenti di test del software 2021 [Strumenti di automazione del test QA]
- Tutorial per test di app per dispositivi mobili (una guida completa con oltre 30 tutorial)
- Come ottenere rapidamente un lavoro di test mobile - Guida alla carriera nel test mobile (Parte 1)