selendroid tutorial android mobile test automation framework
Automazione mobile utilizzando Selendroid (Parte I):
Fino ad ora, milioni di app sono già state sviluppate utilizzando Android come piattaforma e il conteggio continua ad aumentare di giorno in giorno.
Il problema è: come convalidare ogni singola app? Poiché richiederemo risorse dedicate come manodopera, dispositivi reali (ad esempio, mobili) ecc., E ancora una volta si tratta di un'attività che richiede tempo. D'altra parte, la versione di Android, la versione delle applicazioni (.apk), la dimensione del dispositivo ecc. Non sono costanti.
Pertanto, diventa molto difficile definire i criteri di uscita dal test poiché non è possibile definire l'ambito completo del test, pertanto non è possibile eseguire una stima esatta dello sforzo di test.
Per superare la dipendenza dal dispositivo, sono in fase di sviluppo degli emulatori, che possono fornire un ambiente simile a quello in tempo reale, dove possiamo testare l'applicazione senza preoccuparci della versione di Android, dei dispositivi e della loro versione. Tuttavia, il test delle applicazioni (.apk) sull'emulatore è un'attività manuale e persino un'attività che richiede tempo. Quindi l'idea di automatizzare i test mobili si sta evolvendo.
Per eseguire l'automazione mobile, viene sviluppato il framework di automazione dei test, che consente l'automazione di applicazioni basate su Android utilizzando un linguaggio di scripting.
Sono stati sviluppati molti framework di automazione come Selendroid, Appium, Robotium, Espresso.
Questo tutorial è diviso in due parti:
Tutorial n. 1 : Introduzione a Selendroid: Android Mobile Test Automation Framework
Tutorial n. 2: Come utilizzare il framework Selendroid per automatizzare le interazioni dell'utente su un'applicazione mobile (disponibile a breve)
Cosa imparerai:
- Cos'è Selendroid?
- Componenti Selendroid
- Configurazione ambientale
- Scrittura del primo script utilizzando file APK su dispositivi reali
- Conclusione
- Lettura consigliata
Cos'è Selendroid?
Selendroid è uno straordinario strumento framework per l'automazione dei test di applicazioni mobili Android con diverse importanti funzionalità. Selendroid è uno strumento di automazione molto potente che può interagire con più dispositivi contemporaneamente e un'applicazione può essere testata senza alcuna modifica o cambiamento utilizzando Selendroid.
È anche chiamato 'Selenium per Android' per testare app mobili native e ibride e Web mobile.
Perché Selendroid?
- È un open source (gratuito da usare)
- Supporta il selenio come linguaggio di scripting
- Supporta linguaggi compatibili con i driver web come Java, C #, Perl
- Supporta tutte le versioni di Android
- Funziona sia su un emulatore che sul dispositivo reale
- Funziona su un'applicazione nativa, ibrida e basata sul web
- Efficace durante l'esecuzione di applicazioni native e applicazioni basate su cloud. poiché supporta la griglia di selenio
- Supporta il riconoscimento degli oggetti utilizzando le proprietà degli oggetti
- Facile da implementare
- I dispositivi hardware possono essere collegati, scollegati dal PC durante l'esecuzione del test, senza riavviare o interrompere il test. Selendroid può riconoscere automaticamente i nuovi dispositivi. Questa funzione è nota come 'Hotplugging'
Una semplice architettura di Selendroid
Componenti Selendroid
Selendroid - Client
Fondamentalmente, è una libreria client java. Da questo componente, la richiesta HTTP e WebDriver viene inviata utilizzando JSON al server Selendroid Standalone.
Selendroid - Standalone
Questo componente gestisce diversi dispositivi così come i file .apk installando il server Selendroid e l'app sotto test. La richiesta Http (da eseguire su dispositivo / simulatore reale) viene inviata dal server autonomo Selendroid al dispositivo e all'apk in prova.
Selendroid - Server
Questo server viene eseguito sul dispositivo insieme all'applicazione sottoposta a test. Esiste una comunicazione bidirezionale tra il server e l'applicazione sotto test.
AndroidDriverApp
È un driver Android integrato e un'app Web View per testare il Web mobile.
Un altro framework di test denominato come APPI funziona in modo simile a un Selendroid.
Ecco un piccolo confronto tra i due.
Caratteristica | Selendroid | appium |
---|---|---|
Supporto per versione Android inferiore (<4.1) | sì | No |
Collegamento a caldo | sì | No |
Test dell'agente utente | No | sì |
Supporto per applicazioni basate su iOS | No | sì |
Requisiti ambientali | Per Android: Mac, Linux, Windows (qualsiasi versione) | Per iOS - Mac OSX 107. Per Android: Windows 7+, Linux, Mac OSX 107. |
Prerequisiti:
Per iniziare con il pubblico previsto dovrebbe essere molto ben consapevole dell'uso del selenio, qualsiasi strumento IDE come Eclipse ecc. I concetti di base della programmazione dicono Java, C ecc ... e devono essere consapevoli dell'uso di Maven e altri strumenti di TEST.
- Installa Intel x86 Emulator Accelerator (non obbligatorio) per visualizzare il simulatore Qui
- Java SDK, JRE già installato in un ambiente di test. In alternativa puoi scaricare lo stesso da Qui
Annotare il percorso SDK durante l'installazione.
Imposta le variabili ambientali presenti su Risorse del computer -> fai clic con il pulsante destro del mouse -> Proprietà -> Impostazioni di sistema avanzate
- Eclipse è già installato sulla tua macchina. In caso contrario, puoi anche scaricare lo stesso da Qui
- I file jar selenio devono essere scaricati. Puoi scaricare lo stesso anche da qui
- I jar TestNG sono già scaricati
- Android SDK da scaricare e installare. Puoi anche scaricare lo stesso da Qui
Annotare il percorso dell'SDK Android durante l'installazione
Una volta scaricato ANDROID_HOME va impostato nelle variabili d'ambiente presenti sopra:
Risorse del computer -> fai clic con il pulsante destro del mouse -> Proprietà -> Impostazioni di sistema avanzate
- I file jar Selendroid devono essere scaricati. Puoi anche scaricare lo stesso da Qui
Ricorda per scaricare il file jar autonomo di Selendroid dalla posizione sopra. Di solito, il nome è come selendroid-standalone-0.9.0-with-dependencies.jar. Inoltre, scarica un file APK di esempio, ad esempio selendroid-test-app-0.8.0.apk dalla posizione sopra
Nota:
- Possiamo anche usare repository maven per dare il riferimento a tutti i jar oppure devi scaricarli manualmente e allegarli al percorso di compilazione (Over Eclipse Project)
- Dispositivi / emulatori - In Android tutte le applicazioni installate avranno l'estensione .apk. In altri modi puoi scaricare app come APK Info che ti informeranno sull'elenco delle applicazioni installate sul tuo dispositivo Android e sul suo nome, dimensione, ecc ...
Configurazione ambientale
# 1) Conserva l'APK che deve essere installato in una posizione corretta
come leggere un file .bin
Nel mio caso l'ho mantenuto G: \ Jars \ selendroid-test-app-0.8.0.apk
# 2) Quindi, mantieni l'applicazione sulla cartella del progetto
Nel mio caso lo è 500: AppiumAutomation SelendroidFirst
# 3) Collega il dispositivo reale al PC
Assicurati che la modalità Debug USB sia abilitata e stai anche consentendo l'installazione di app esterne tramite connessione USB.
Suggerimenti:
- Fare riferimento all'impostazione di debug USB richiesta per il cellulare, ad esempio Redmi Note 3 da Qui
- Consenti l'applicazione esterna installata tramite USB, ad esempio Redmi note 3 da Qui
# 4) Apri il prompt dei comandi su Windows
Passa alla cartella in cui sono presenti il jar autonomo Selendroid e il file apk scaricato.
Ora specifica il comando simile e premi Invio nel prompt dei comandi
Per esempio. java --jar selendroid-standalone-0.15.0-with-dependencies.jar -aut selendroid-test-app-0.8.0.apk
Oppure java –jar selendroid-standalone-0.15.0-with-dependencies.jar
File APK: selendroid-test-app-0.8.0.apk
Nota: Quando viene eseguito il comando precedente, assicurati che l'APK sia firmato e che anche il dispositivo reale sia connesso al PC e che il debug sia abilitato sul dispositivo.
(Nota: Clicca sull'immagine per ingrandirla)
Controllare i seguenti punti sul prompt dei comandi per assicurarsi che l'ambiente sia pronto per l'automazione:
- Verifica il messaggio 'Dispositivo specificato con numero valido'
- Verifica il messaggio 'il server è avviato nella porta predefinita, ad esempio (4444) ...'
- Verifica il messaggio 'Sessione in corso di creazione ...'
Anche in questo caso possiamo sempre riconfermare se un server è avviato o meno utilizzando il seguente URL su uno qualsiasi dei tuoi browser web.
per esempio. http: // localhost: 4444 / wd / hub / status
# 5) Ispezione degli APK
- Possiamo utilizzare le app reali collegando dispositivi mobili reali
- Possiamo utilizzare qualsiasi file APK offline scaricato
Selendroid Inspector è utile per il debug / l'ispezione degli elementi web di APK.
Una volta identificato e avviato il dispositivo possiamo visualizzare l'APK (in modalità virtuale) e trovare i riferimenti, utili per la scrittura degli script, utilizzando il seguente URL su uno qualsiasi dei vostri browser web.
Per esempio: http: // localhost: 4444 / inspector
Qui abbiamo lo screenshot dell'applicazione in prova e abbiamo anche la possibilità di ispezionare l'elemento.
Oppure puoi sempre usare uiautomatorviewer per trovare gli oggetti dall'applicazione sotto test.
Il percorso predefinito per questo è indicato di seguito:
C: Users admin android-sdks tools
C: Users admin - Questa è la posizione in cui ho installato Android SDK, ma può essere diversa a seconda della posizione specificata durante la sua installazione.
download gratuito di alta qualità del convertitore da youtube a mp3
Scrittura del primo script utilizzando file APK su dispositivi reali
Obbiettivo:
- Avvia il server (sulla porta predefinita diciamo 4444)
- Crea una sessione
- Installa l'applicazione (file .apk) sul dispositivo reale connesso
- Automatizza il campo di testo con alcuni dati
- Fare clic automaticamente sul pulsante
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); }
Conclusione
Selendroid è uno strumento di framework di test di automazione molto potente che può essere utilizzato per testare un'app nativa, ibrida e web su qualsiasi dispositivo Android, nonché un simulatore.
Supporta Hotplugging, il che significa che un utente può testare più dispositivi contemporaneamente, quindi è possibile eseguire test in parallelo su più dispositivi. Supporta vari tipi di interazioni come pressione prolungata, azioni di tocco ecc ...
L'unica complessità con esso è l'impostazione ambientale, che è presente anche in altri framework. Una volta impostato correttamente, possiamo far funzionare i nostri script senza alcuna difficoltà.
Nelparte 2di questo tutorial Selendoid, tratteremo - Come utilizzare il framework Selendroid per automatizzare le interazioni dell'utente su un'applicazione mobile.
Nel nostro prossimo articolo, discuteremo di più su Tutorial pratico di revisione di pCloudy.
Lettura consigliata
- Tutorial approfonditi su Eclipse per principianti
- SeeTest Automation Tutorial: A Mobile Test Automation Tool Guide
- Tutorial su Java Collections Framework (JCF)
- Tutorial Java Reflection con esempi
- Tutorial Ranorex: un potente strumento di test per l'automazione desktop, Web e mobile
- Tutorial Appium per testare app mobili Android e iOS
- Utilizzo di Selendroid per automatizzare le interazioni dell'utente su un'app mobile (parte 2)
- Utilizzo avanzato dell'automazione SeeTest nel progetto di automazione mobile in tempo reale