Selendroid Tutorial per principianti con esempio

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

Selendroid Esercitazione

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

Che cos'è la Selendroid?

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

Che cos'è la Selendroid

Puoi scrivere i test usando il file Selenium 2 API client. Perché Selendroid ancora riutilizzi dell'esistente Selenium infrastrutture per il web

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

Che cos'è la Selendroid

Perché abbiamo bisogno Selendroid?

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

Perché abbiamo bisogno Selendroid

Questa sezione introdurrà le caratteristiche importanti di Selendroid per rispondere alla domanda perché ne hai bisogno Selendroid.

Perché abbiamo bisogno Selendroid

  • È possibile testare l'applicazione in prova 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 firma
  • Selendroid l'app di test può interagire con più dispositivi o simulatori contemporaneamente. È un grande vantaggio di Selendroid. Quindi puoi testare la tua app con vari Android dispositivi per verificarne 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 (collegare e scollegare) durante il test senza riavviare o interrompere il test. Selendroid riconosce automaticamente i nuovi dispositivi
  • Corrispondente al Android Versione API aggiornata, Selendroid supporta anche il nuovo Android API (dall'API 10 all'API 19)
  • Selendroid ha anche alcuni strumenti di ispezione integrati per aiutarti a identificare l'elemento dell'interfaccia utente di un'applicazione in fase di test. Ad esempio il pulsante ID, il campo di testo, la visualizzazione del testo...

Selendroid Architectura

Selendroid si basa sulla Android quadro strumentale. Selendroid i test sono scritti in base a Selenium API client driver Web, quindi supporta la piena integrazione con la versione corrente Selenium quadri.

La figura seguente descrive l'architettura di Selendroid

Selendroid Architectura

Selendroid contiene 4 componenti principali:

Selendroid Architectura

  • Client Web Driver – Il Java libreria client 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 nell'app in fase di test Android dispositivo o simulatore. Questi sono i componenti principali di a Selendroid architettura
  • Android Driver-App: integrata Android driver, app Web View per testare il Web mobile.
  • Selendroid-Standalone: ​​questo componente viene utilizzato per installare Selendroid server e l'applicazione in prova (AUT)

Iniziare con Selendroid

Conosci già l'importanza del Selendroid. Ora sporchiamoci le mani Selendroid.

Ci sono 3 passaggi da eseguire prima del primo test Selendroid

Iniziare con Selendroid

Impostazione a Selendroid Industria XNUMX

Selendroid può funzionare su Window, Linux e sistema operativo Mac. In questo tutorial, configureremo Selendroid nel sistema operativo Windows.

Prima di utilizzare Selendroid, devi prima installare il seguente pacchetto

  • Java SDK (minimo 1.6)

    Devi accettare il contratto di licenza e scaricare il programma di installazione Java (scegli la base x64 o x86 in base al tuo sistema operativo)

    Impostazione a Selendroid Ambiente

    Scaricare e installare il Java SDK come un normale software

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

    Passo 1) In Finestra, fare clic con il pulsante destro del mouse su Computer -> Properties -> Impostazioni di sistema avanzate

    Impostazione a Selendroid Ambiente

    Passo 2) Visualizzazione della finestra Proprietà del sistema, selezionare la scheda Avanzate -> variabili ambientali

    Impostazione a Selendroid Ambiente

    Passo 3) Viene visualizzata la finestra Ambiente, fare clic su Nuovo -> Inserisci una variabile ANDROID_HOME come segue

    Impostazione a Selendroid Ambiente

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

    Trova la variabile di sistema Path -> Modifica -> Aggiungere la seguente riga dopo la riga corrente

    Impostazione a Selendroid Ambiente

    Impostazione a Selendroid Ambiente

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

    Impostazione a Selendroid Ambiente

    Il valore è il percorso verso il tuo Java Installazione JDK

    Passaggio 4) Riavvia il PC -> Fatto

Come lanciare Selendroid

Passaggio 1) Ottenere un'applicazione in fase di test

Puoi usare esistente Selendroid testare l'app per verificare come Selendroid lavori (Link all'applicazione campione in prova)

Una volta completato il download, copia questo APK e quanto sopra Selendroid Barattolo autonomo file in una cartella con il nome "Guru99″

Passaggio 2) Avviare il Selendroid

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

Esegui il seguente comando

Lancio Selendroid

L'output verrà visualizzato come segue

Lancio Selendroid

Dopo aver eseguito questo comando, Selendroid-si avvia il server HTTP autonomo! Il numero di porta predefinito di questo server è 4444. Tutti i dispositivi hardware, nonché Android Il dispositivo virtuale verrà scansionato e riconosciuto automaticamente. Selendroid identificherà il Android versione di destinazione e dimensione dello schermo del dispositivo.

Per controllare il file Android versione di destinazione e informazioni sul dispositivo, è possibile avviare il seguente URL su un browser: http://localhost:4444/wd/hub/status.

Lancio Selendroid

Selendroid comando di base

Questa sezione presenta alcune nozioni di base Selendroid-Riga di comando autonoma. Puoi usarli per impostare il file Selendroid ambiente di test

  1. Impostazione del porto di Selendroid

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

    Parametro: -port [numero di porta]

    Per esempio:

    Selendroid Comando di base

    Nel comando precedente, 5555 è la nuova porta.

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

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

    Parametro: -app [percorso del file]

    Per esempio:

    Selendroid Comando di base

    Nel comando sopra, il Selendroid trovare automaticamente il file binario base su “C:\Guru99App.apk” per ottenere le informazioni dell'applicazione in prova.

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

    Selendroid Comando di base

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

    Parametro: -selendroidServerPort [numero di porta]

    Esempio

    Selendroid Comando di base

    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 al nuovo timeout (200,000 ms) tramite comando

    Selendroid Comando di base

    Trascorso questo tempo il nostro scade, se l'emulatore non può avviarsi, il file Selendroid genererà l'errore di eccezione (si è verificato un errore durante la ricerca di dispositivi/emulatori.), quindi interromperà l'esecuzione

  4. Quando avvii il file Selendroid comando sul terminale, vedrai un log stampato sullo schermo. Puoi cambiare il tipo di log che vedi aggiungendo il seguente parametro

    Parametro: -logLevel [tipo di registro]

    I valori del livello di registro sono ERRORE, AVVISO, INFO, DEBUG e VERBOSE. Impostazione predefinita: ERRORE.

    Ad esempio, imposta Selendroid per stampare solo il registro ATTENZIONE, è possibile utilizzare questo comando

    Selendroid Comando di base

    Selendroid stampare solo il registro AVVERTENZE

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 Android applicazione con il nome di prova Guru99App. L'applicazione include un campo di testo e un pulsante chiamato "Mostra testo".

SCARICA L'APK QUI

Primo test con Selendroid

Dobbiamo eseguire quanto segue Test Case utilizzando Selendroid

Test di Casi Condizione Uscita prevista
  1. Avvia l'applicazione
  2. Inserisci un testo "Prova Guru99"nel campo di testo
  3. Premere il pulsante "Mostra testo".
Il binario dell'applicazione in prova è disponibile

Un dispositivo è collegato al PC

Il testo "Testo Mostra qui" viene modificato nel testo

quale utente inserisce in un campo di testo

Passo 1) Creare un Java progetto in Eclipse

Passo 2) Aggiungere selenio e Selendroid file jar negli ambienti eclipse

Fare clic con il pulsante destro del mouse su Progetto Guru99Test -> Costruisci percorso -> Aggiungi esterno Archives

Primo test con Selendroid

Passare alla cartella in cui sono archiviati i file jar

Dovrebbero essere aggiunti 3 file jar

  • selendroid-client-0.10.0.jar : Selendroid libreria client Java
  • selendroid-standalone-0.11.0-con-dipendenze : Selendroid libreria server autonoma
  • selenio-java-2.40.0.jar : Selenium Libreria dei driver Web

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

Primo test con Selendroid

Passo 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 di seguito

Fare clic con il tasto destro su Guru99Test -> Nuovo -> CONFEZIONE

Primo test con Selendroid

Digita com.guru.test nel campo Nome su Nuovo Java Finestra di dialogo del pacchetto à Fine

Primo test con Selendroid

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

Primo test con Selendroid

Passo 4) Installazione TestNG per Eclipse

In Eclipse, Aiuto -> Installa nuovo software, nella finestra di dialogo Installa, fai clic su Aggiungi e inserisci quanto segue

Premere OK -> Avanti per installare il TestNG

Primo test con Selendroid

Passo 5) Copia Guru99App.apk nella cartella dell'app Test

Primo test con Selendroid

Passo 6) Ottieni l'ID di un'applicazione in fase di test.

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

Primo test con Selendroid

Aprire il seguente link in un browser: http://localhost:4444/wd/hub/status.

Vengono visualizzate le informazioni del dispositivo, copiare il valore appId “com.guru99app:1.0”

Primo test con Selendroid

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

Primo test con Selendroid

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 imposti l'ID app corrispondente a Android dispositivo, 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 Selendroid server su di esso

Selendroid installa anche l'applicazione in prova e avvia il server selendroid sul dispositivo

Dopo aver inizializzato correttamente la sessione di test, viene avviata l'esecuzione del comando test su un dispositivo. (Come inserire testo, premere il pulsante...). Se il test aggiunge la sessione di test, l'emulatore si fermerà automaticamente

Passo 8) Inizia la nuova sessione di test

Avviare il Selendroid server utilizzando il seguente comando sul terminale come al punto 6

Primo test con Selendroid

Dopo il Selendroid Server avviato, aprire 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

Primo test con Selendroid

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

Inizierà una sessione di test come di seguito

Primo test con Selendroid

Passo 9) Ottieni l'ID dell'elemento GUI di un'applicazione in fase di test

Dopo aver avviato correttamente la sessione di test, aprire il browser e accedere all'URL http://localhost:4444/inspector

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

Primo test con Selendroid

Passa il mouse su ciascun elemento dell'interfaccia utente di AUT (pulsante, campo di testo, etichetta di testo), l'ID di ciascun elemento verrà evidenziato nel riquadro di destra

Primo test con Selendroid

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

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

Tali ID verranno utilizzati nel passaggio successivo

Passo 10) Inserisci il programma di test come di seguito

Un programma di test utilizzando Selendroid comprende 3 sezioni

Prova di installazione:

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

Il codice include i commenti per spiegare ciascuna affermazione.

package 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 using Selendroid
			 * Application under test: Guru99App
		 *
		 */
		public
				class Guru99Test {
				
				     //Declare web driver variable
		    private WebDriver driver;
					   
   
		    /**
		     * Setup the environment before testing
		     * @throws Exception
			     */
		    @BeforeSuite
		    public
					void setUp() throws Exception {
							
        //Start selendroid-standalone during test
		        SelendroidConfiguration config = new SelendroidConfiguration();
			        
		      // Add the selendroid-test-app to the standalone server
		        config.addSupportedApp("Guru99App.apk");
			        
                 
		        //start the standalone server
		        SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
			        selendroidServer.launchSelendroid();
		        
		       // Create the selendroid capabilities
		        SelendroidCapabilities capa = new SelendroidCapabilities();
			        
        
		       // Specify to use selendroid's test app
		        capa.setAut("com.guru99app:1.0");
			       
		       // Specify to use the Android device API 19
		        capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
			        
		        // Don't request simulator, use real device
		        capa.setEmulator(false);
			        
         
		        //capa.wait(10000000);
		        
		        // Create instance of Selendroid Driver
		        driver = new 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 "Ciao Guru"
  2. Fare clic su Mostra pulsante testo
  3. Aspetta un attimo
  4. Verifica che l'app visualizzi il testo quando l'utente inserisce in un campo di testo (es. Visualizza il testo "Hello Guru")
 /**
		     * Start execute the test case
		     * 01. Enter the text "Selendroid" to the textfield
		     * 02. Press OK button
		     * @throws Exception
			     */
		    @Test
		    public
					void selendroidTest() throws Exception {
							        
		        // Print the log 
		        System.out.print("Start executing test");
					        
		        // Find the input text field on screen
        // The id of this text field was get from step 9
		        WebElement inputField = driver.findElement(By.id("edtText"));
					        
		        // Verify that the text field enabled so user can enter text
		        Assert.assertEquals("true", inputField.getAttribute("enabled"));
					        
		        // Enter a text to text field
		        inputField.sendKeys("Hello Guru");        
			
         // click Show Text button
        // The id of this button was get from step 9
		        WebElement button = driver.findElement(By.id("btnShow"));
					        button.click();
		        
		        // Delay time to take effect
		        Thread.sleep(5000);
		        
		        //Find the label "Text Show Here" on screen
        // The id of this label was get from step 9
		        WebElement txtView = driver.findElement(By.id("txtView"));
					        
		        //Get the text display on screen
		        String expected = txtView.getText();
		        
		// Verify that the text which user enter on text field is same as text display on screen
		        Assert.assertEquals(expected, inputField.getText());        
		
     }

Termina la prova

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

 /**
		     * Stop the Selendroid driver
		     * 
		     */
		    @AfterSuite
		    public
					void tearDown() {
					        driver.quit();
			    }

È possibile visualizzare i dettagli nel codice di esempio incluso in questo articolo.

Passo 10) Connettere Android dispositivo al PC tramite cavo USB. Punti da osservare –

  • Assicurati che sul dispositivo non sia configurato il blocco schermo.
  • I dispositivi devono essere collegati tramite USB al computer su cui è in esecuzione il componente selendroid-standalone.
  • Il dispositivo dovrebbe essere installato almeno Android Target Versione API10

Passo 11) Eseguire l'app di test: fare clic con il pulsante destro del mouse su Guru99test -> Correre come -> TestNG test

Primo test con Selendroid

Passo 10) Lo script inizia l'esecuzione come segue

Primo test con Selendroid

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

Primo test con Selendroid

Primo test con Selendroid

Ottimo lavoro, ora hai finito il test.

Sommario

  • Selendroid è uno strumento molto potente per i test Android l'app nativa, l'app ibrida e l'app Web.
  • Può essere utilizzato su dispositivi reali e sul simulatore.
  • Consente inoltre di eseguire test in parallelo eseguendo un test su più dispositivi.
  • L'intera Selendroid suite è composta da quattro componenti:
    • Cliente del driver Web,
    • Selendroid-Server,
    • Android App driver
    • Selendroid-indipendente, autonomo
  • Per utilizzare Selendroid a portata di mouse Java JDK, Android SDK e Eclipse installato.