Tutorial Selendroid per principianti con esempio

Sommario:

Anonim

Hai mai sviluppato un'applicazione Android e pubblicarla su Google Play? Cosa farai se ricevi una recensione da parte degli utenti come:

Quando pubblichi un'app su Google Play, deve essere ben testata per evitare potenziali bug. Esistono tantissimi scenari di test che dovrebbero essere eseguiti prima di pubblicare un'app. Per risparmiare lo sforzo di test, è necessario uno strumento di test. Uno dei migliori strumenti di test per l'app Android è Selendroid.

  • Cos'è Selendroid?
  • Perché abbiamo bisogno di Selendroid?
  • Architettura Selendroid
  • Iniziare con Selendroid
  • Configurazione di un ambiente Selendroid
  • Come avviare Selendroid
  • Comando di base di Selendroid
  • Inizia il tuo primo test con Selendroid

Cos'è Selendroid?

Selendroid è un framework di automazione dei test per più tipi di applicazioni mobili: app Android native e ibride e web mobile .

È possibile scrivere i test utilizzando le API client Selenium 2. Perché Selendroid riutilizza ancora l'infrastruttura Selenium esistente per il web

Selendroid è un potente strumento di test. Può essere utilizzato su emulatori e dispositivi reali

Perché abbiamo bisogno di Selendroid?

Selendroid è un ottimo strumento di test. Ma potresti ancora dubitare della sua utilità.

Questa sezione introdurrà le caratteristiche importanti di Selendroid per rispondere alla domanda sul perché è necessario Selendroid.

  • Puoi testare l'applicazione sottoposta a test utilizzando Selendroid senza alcuna modifica dell'app. Hai solo bisogno del file binario (APK) installato sul computer. Per installare il file binario sul dispositivo, l'app di prova e l'app mobile devono essere firmate con la stessa chiave di segno
  • L'app di test Selendroid può interagire con più dispositivi o simulatori contemporaneamente. È un grande vantaggio di Selendroid. Quindi puoi testare la tua app con vari dispositivi Android per verificare la compatibilità.
  • Selendroid può simulare le azioni dell'utente umano su un'app, come toccare, scorrere, trascinare e rilasciare sui dispositivi
  • È possibile modificare i dispositivi hardware (Collega e scollega) durante il test senza riavviare o interrompere il test. Selendroid riconosce automaticamente i nuovi dispositivi
  • Corrispondente alla versione dell'API Android aggiornata, Selendroid supporta anche la nuova API Android (dall'API 10 all'API 19)
  • Selendroid ha anche uno strumento di ispezione integrato per aiutarti a identificare l'elemento dell'interfaccia utente di un'applicazione sotto test. Ad esempio il pulsante ID, il campo di testo, la visualizzazione del testo ...

Architettura Selendroid

Selendroid si basa sul framework di strumentazione Android. I test Selendroid sono scritti sulla base dell'API client del driver Web Selenium, quindi supporta la piena integrazione con gli attuali framework Selenium.

La figura seguente descrive l'architettura di Selendroid

Selendroid contiene 4 componenti principali:

  • Web Driver Client - La libreria client Java basata su Selenium. Questa libreria dovrebbe essere installata sul computer (che viene utilizzato per sviluppare i casi di test)
  • Selendroid-Server - Il server che viene eseguito si trova nell'app in prova su dispositivo Android o simulatore. Questi sono i componenti principali di un'architettura Selendroid
  • App per driver Android: un driver Android integrato, app Web View per testare il Web mobile.
  • Selendroid-Standalone: ​​questo componente viene utilizzato per installare il server Selendroid e l'applicazione in test (AUT)

Iniziare con Selendroid

Hai già conosciuto l'importanza del Selendroid. Ora sporchiamoci le mani con Selendroid.

Ci sono 3 passaggi da eseguire prima del primo test con Selendroid

Configurazione di un ambiente Selendroid

Selendroid può funzionare su Windows, Linux e Mac OS. In questo tutorial, configureremo Selendroid in Windows OS.

Prima di utilizzare Selendroid, è necessario installare prima il seguente pacchetto

  • Java SDK (minimo 1,6)

    Devi accettare il contratto di licenza e scaricare il programma di installazione java (scegli x64 o x86 base sul tuo sistema operativo)

    Scarica e installa Java SDK come normale software

  • Ultima versione di Android SDK
  • Il tuo computer deve avere almeno un dispositivo virtuale Android (AVD) o un dispositivo Android reale collegato al PC.
  • Selendroid Standalone con dipendenze, Selendroid Client e Selenium Client
  • Software Eclipse
  • Configura JAVA_HOME e ANDROID_HOME

    Passaggio 1) Nella finestra, fare clic con il pulsante destro del mouse su Computer -> Proprietà -> Impostazioni di sistema avanzate

    Passaggio 2) Visualizzazione della finestra Proprietà del sistema, selezionare la scheda Avanzate -> Variabili d'ambiente

    Passaggio 3) La visualizzazione della finestra Ambiente, fare clic su Nuovo -> Immettere una variabile ANDROID_HOME come segue

    Il valore della variabile è il percorso di android-sdks che hai già installato.

    Trova la variabile di sistema Percorso -> Modifica -> Aggiungi la riga seguente dopo la riga corrente

    Simile a ANDROID_HOME, aggiungi una nuova variabile JAVA_HOME con il valore come di seguito

    Il valore è il percorso dell'installazione di Java JDK

    Passaggio 4) Riavvia il PC -> Fine

Come avviare Selendroid

Passaggio 1) Ottenere un'applicazione sotto test

È possibile utilizzare l'app di test Selendroid esistente per verificare il funzionamento di Selendroid (collegamento all'applicazione di esempio sotto test)

Una volta completato il download, copia questo APK e il precedente file jar Selendroid Standalone in una cartella con il nome " Guru99"

Passaggio 2) Avvia Selendroid

Apri il terminale su Windows e vai alla cartella Guru99 creata nel passaggio 1.

Esegui il seguente comando

L'output verrà visualizzato come segue

Dopo aver eseguito questo comando, il server HTTP autonomo di Selendroid si avvia! Il numero di porta predefinito di questo server è 4444. Tutti i dispositivi hardware, così come il dispositivo virtuale Android, verranno scansionati e riconosciuti automaticamente. Selendroid identificherà la versione di destinazione di Android e le dimensioni dello schermo del dispositivo.

Per controllare la versione di destinazione di Android e le informazioni sul dispositivo, è possibile avviare il seguente URL su un browser:

http: // localhost: 4444 / wd / hub / status.

Comando di base di Selendroid

Questa sezione presenta alcuni comandi base di Selendroid-Standalone. Puoi usarli per configurare l'ambiente di test Selendroid

  1. Impostazione della porta di Selendroid

    La porta predefinita di Selendroid è 4444. Ma puoi passare a un'altra porta aggiungendo un parametro al comando per avviare Selendroid

    Parametro: -port [numero porta]

    Per esempio:

    Nel comando precedente, 5555 è la nuova porta.

Quindi l'URL per controllare la versione di destinazione di Android viene modificato in: http: // localhost: 5555 / wd / hub / status

  1. Specificare la posizione dell'applicazione sottoposta a test (file APK binario). Selendroid spesso richiedeva il percorso assoluto per questo file

    Parametro: -app [percorso file]

    Per esempio:

    Nel comando precedente, il Selendroid trova automaticamente la base del file binario su "C: \ Guru99App.apk" per ottenere le informazioni dell'applicazione sotto test.

    Controlla l'URL http: // localhost: 4444 / wd / hub / status, vedrai queste informazioni

  2. Cambia la porta che Selendroid usa per comunicare con il server di strumentazione. Selendroid utilizza la porta 8080 come predefinita

    Parametro: -selendroidServerPort [numero di porta]

    Esempio

    La porta ora è cambiata in 9000

  3. Modificare il timeout per avviare gli emulatori. L'unità è millisecondi.

    Parametro: -timeoutEmulatorStart

    Per impostazione predefinita, Selendroid attenderà 300.000 millisecondi fino all'avvio dell'emulatore. È possibile passare a un nuovo timeout (200.000 ms) tramite comando

    Dopo questo tempo scaduto, se l'emulatore non può essere avviato, il Selendroid genererà l'errore di eccezione (si è verificato un errore durante la ricerca di dispositivi / emulatori), quindi smetterà di funzionare

  4. Quando avvii il comando Selendroid sul terminale, vedrai un log stampato sullo schermo. È possibile modificare il tipo di registro visualizzato aggiungendo il seguente parametro

    Parametro: -logLevel [tipo di registro]

    I valori del livello di log sono ERROR, WARNING, INFO, DEBUG e VERBOSE. Predefinito: ERRORE.

    Ad esempio, imposta Selendroid per stampare solo il registro AVVISO, puoi utilizzare questo comando

    Il Selendroid stampa solo il registro degli AVVISI

Inizia il tuo primo test con Selendroid

Questa sezione è una guida passo passo per creare il tuo primo script di test utilizzando Selendroid

Supponiamo di avere un'applicazione Android sotto il nome di test Guru99App. L'applicazione include un campo di testo e il nome di un pulsante "Mostra testo".

SCARICA L'APK QUI

Dobbiamo eseguire il seguente test case usando Selendroid

Casi test

Condizione

Uscita prevista:

  1. Avvia l'applicazione
  2. Immettere un testo " Guru99 Test " nel campo di testo
  3. Premere il pulsante "Mostra testo"

È disponibile il binario dell'applicazione in prova

Un dispositivo è connesso al PC

Il testo "Mostra testo qui" viene modificato nel testo

quale utente immette in un campo di testo

Passaggio 1) Crea un progetto Java in Eclipse

Passaggio 2) Aggiungi selenio e file jar Selendroid in ambienti eclipse

Fare clic con il pulsante destro del mouse su Guru99Test Project -> Build Path -> Add External Archives

Passa alla cartella in cui sono archiviati i file jar

Dovrebbero essere aggiunti 3 file jar

  • selendroid-client-0.10.0.jar: libreria client java Selendroid
  • selendroid-standalone-0.11.0-with-dependencies: libreria del server autonomo Selendroid
  • selenium-java-2.40.0.jar: libreria Selenium Web Driver

Seleziona tutto -> Scegli Apri per aggiungere un file jar al progetto

Passaggio 3) dopo aver aggiunto la libreria di cui sopra, tali librerie verranno aggiunte alle Librerie di riferimento del progetto di test. Un tester può utilizzare le API di tali librerie per sviluppare il programma di test

Crea il pacchetto "com.guru.test" e aggiungi il file java "Guru99Test.java" come sotto

Fare clic con il pulsante destro del mouse su Guru99Test -> Nuovo -> Pacchetto

Digitare com.guru.test nel campo Nome nella finestra di dialogo Nuovo pacchetto Java à Fine

Eclipse creerà cartelle di elenchi e sottocartelle come questa nella struttura del codice sorgente

Passaggio 4) Installa TestNG per Eclipse

In Eclipse, Guida -> Installa nuovo software, nella finestra di dialogo Installa, fare clic su Aggiungi e immettere quanto segue

  • Nome: TestNG
  • Posizione: http://selendroid.io/

Premere OK -> Avanti per installare TestNG

Passaggio 5) Copia Guru99App.apk nella cartella di Test App

Passaggio 6) Ottieni l'ID di un'applicazione in prova.

Supponiamo di avere un nome di file APK Guru99App.apk. Segui il passaggio descritto nella sezione precedente, esegui il comando sul terminale

Apri il seguente link in un browser

http: // localhost: 4444 / wd / hub / status.

Vengono visualizzate le informazioni del dispositivo, copia il valore appId "com.guru99app: 1.0"

Passaggio 7) Aprire il file Guru99Test.java (nel codice di esempio) e modificare come segue

Per creare una nuova sessione di test con Selendroid, devi fornire l'ID dell'app nel formato: com.guru99app: 1.0. Questo ID app può essere identificato nel passaggio 6. Se non si imposta l'ID app corrispondente al dispositivo Android, la sessione di test genererà un errore e non verrà avviata.

Dopo aver inizializzato il dispositivo trovato, Selendroid crea un server selendroid personalizzato e installa il server Selendroid su di esso

Selendroid installa anche l'applicazione sotto test e avvia il server selendroid sul dispositivo

Dopo aver inizializzato correttamente la sessione di test, viene avviata l'esecuzione del comando di test su un dispositivo. (Ad esempio l'inserimento di testo, premere il pulsante

...). Se il test aggiunge la sessione di test, l'emulatore si arresterà automaticamente

Passaggio 8) Avvia la nuova sessione di test

Avvia il server Selendroid utilizzando il seguente comando sul terminale come il passaggio 6

Dopo l'avvio del server Selendroid, apri il progetto di test di esempio Guru99test su Eclipse, imposta un punto di interruzione alla riga 77 sul file Guru99Test.java facendo doppio clic sulla riga 77 -> Verrà visualizzato un punto come di seguito

Avvia una sessione di test facendo clic con il pulsante destro del mouse sul progetto Guru99Test -> Debug As -> Testng Test.

Inizierà una sessione di test come di seguito

Passaggio 9) Ottieni l'ID dell'elemento GUI di un'applicazione sotto test

Dopo che la sessione di test è stata avviata correttamente, aprire il browser, accedere all'URL http: // localhost: 4444 / inspector

Vedrai che l'applicazione in prova viene avviata come di seguito

Usa il mouse su ogni elemento dell'interfaccia utente di AUT (Button, TextField, Text Label), l'ID di ogni elemento verrà evidenziato nel riquadro di destra

Dopo questo passaggio, puoi ottenere l'ID di ogni elemento dell'interfaccia utente sopra

  • Pulsante Mostra ID testo: " btnShow "
  • ID campo di testo: " edtText "
  • ID testo etichetta: " txtView "

Questi ID verranno utilizzati nel passaggio successivo

Passaggio 10) Immettere il programma di test come di seguito

Un programma di test che utilizza Selendroid include 3 sezioni

Test di installazione:

Di seguito è riportato il codice per il test di configurazione, imposterà la condizione per una sessione di test.In caso di errore, Selendroid genererà l'eccezione e l'app di test si fermerà.

Il codice include i commenti per spiegare ciascuna affermazione.

pacchetto 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 utilizzando Selendroid* Applicazione in prova: Guru99App** /pubblicoclass Guru99Test {// Dichiara la variabile del driver webdriver WebDriver privato;/ *** Imposta l'ambiente prima del test* @throws Eccezione* /@BeforeSuitepubblicovoid setUp () genera un'eccezione {// Avvia selendroid autonomo durante il testSelendroidConfiguration config = new SelendroidConfiguration ();// Aggiungi l'app selendroid-test al server autonomoconfig.addSupportedApp ("Guru99App.apk");// avvia il server autonomoSelendroidLauncher selendroidServer = nuovo SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Crea le funzionalità selendroidSelendroidCapabilities capa = new SelendroidCapabilities ();// Specifica di utilizzare l'app di test di selendroidcapa.setAut ("com.guru99app: 1.0");// Specifica di utilizzare l'API del dispositivo Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Non richiedere il simulatore, usa un dispositivo realecapa.setEmulator (false);//capa.wait(10000000);// Crea istanza di Selendroid Driverdriver = nuovo SelendroidDriver (capa);}

Esegui test

Di seguito è riportato il codice per eseguire un test. Il codice include i commenti

Ecco di nuovo i passaggi del test

  1. Inserisci il testo "Hello Guru"
  2. Fare clic su Mostra pulsante di testo
  3. Aspetta un attimo
  4. Verifica che l'app visualizzi il testo mentre l'utente immette in un campo di testo (es. Visualizza il testo "Hello Guru")
 / *** Inizia ad eseguire il test case* 01. Immettere il testo "Selendroid" nel campo di testo* 02. Premere il pulsante OK* @throws Eccezione* /@Testpubblicovoid selendroidTest () genera un'eccezione {// Stampa il registroSystem.out.print ("Avvia l'esecuzione del test");// Trova il campo di testo di input sullo schermo// L'ID di questo campo di testo è stato ottenuto dal passaggio 9WebElement inputField = driver.findElement (By.id ("edtText"));// Verifica che il campo di testo sia abilitato in modo che l'utente possa inserire il testoAssert.assertEquals ("true", inputField.getAttribute ("enabled"));// Immettere un campo da testo a testoinputField.sendKeys ("Hello Guru");// fare clic sul pulsante Mostra testo// L'ID di questo pulsante è stato ottenuto dal passaggio 9Pulsante WebElement = driver.findElement (By.id ("btnShow"));pulsante. clic ();// Tempo di ritardo per avere effettoThread.sleep (5000);// Trova l'etichetta "Text Show Here" sullo schermo// L'ID di questa etichetta è stato ottenuto dal passaggio 9WebElement txtView = driver.findElement (By.id ("txtView"));// Visualizza il testo visualizzato sullo schermoStringa attesa = txtView.getText ();// Verifica che il testo immesso dall'utente nel campo di testo sia lo stesso del testo visualizzato sullo schermoAssert.assertEquals (previsto, inputField.getText ());}

Termina il test

Il codice seguente completerà il test arrestando il driver Selendroid.

 / *** Ferma il driver Selendroid** /@AfterSuitepubblicovoid tearDown () {driver.quit ();}

Puoi vedere i dettagli nel codice di esempio incluso in questo articolo.

Passaggio 10) Collega il dispositivo Android al PC tramite cavo USB. Punti da osservare -

  • Assicurati che il dispositivo non abbia un blocco schermo configurato.
  • I dispositivi devono essere collegati tramite USB al computer su cui è in esecuzione il componente autonomo selendroid.
  • Il dispositivo deve installare almeno Android Target Version API 10

Passaggio 11) Esegui l'app di prova: fai clic con il pulsante destro del mouse su Guru99test -> Esegui come -> TestNG test

Passaggio 10) Lo script viene avviato come segue

Passaggio 12) Al termine dell'esecuzione del test, TestNG genera automaticamente il report del test come segue

Ottimo lavoro, ora hai finito il test.

Sommario

Sommario

  • Selendroid è uno strumento molto potente per testare l'app nativa Android, l'app ibrida e l'app web.
  • Può essere utilizzato su dispositivi reali così come il simulatore.
  • Consente inoltre di eseguire test in parallelo eseguendo un test su più dispositivi.
  • L'intera suite Selendroid è composta da quattro componenti:
    • Client Web Driver,
    • Selendroid-Server,
    • App per driver Android
    • Selendroid-stand alone
  • Per utilizzare Selendroid è necessario che siano installati Java JDK, Android SDK ed Eclipse.