Selendroid Tutorial per principianti con esempio

Hai mai sviluppato un Android applicazione e pubblicarla su Google Giocare? Cosa farai se ricevi una recensione utente come questa?

Selendroid Tutorial

Quando pubblichi un'app su Google Gioca, deve essere ben testato per evitare potenziali bug. Ci sono un sacco di scenari di test che dovrebbero essere eseguiti prima di pubblicare un'app. Per salvare il Collaudo sforzo, รจ necessario uno strumento di test. Uno dei migliori strumenti di test per Android l'app รจ Selendroid.

Cosa รจ Selendroid?

Selendroid รจ un framework di automazione dei test per piรน tipi di applicazioni mobili: nativo and ibrido Android app e mobile web.

Cosa รจ 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

Cosa รจ 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 (collegandoli e scollegandoli) durante il test senza riavviare o interrompere il processo.ping 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 -> Proprietร  a Confronto -> 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 (vetro 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 accedere alla cartella Guru99 creati nella fase 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 quanto segue 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.

Di conseguenza, URL per controllare il 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 trova automaticamente il file binario in base a "C:\GuruEseguire il comando "99App.apk" per ottenere le informazioni sull'applicazione in fase di test.

    Controlla il 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

    Migliori 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 nome dell'applicazione in fase di test Guru99App. L'applicazione include un campo di testo e un pulsante denominato "Mostra testo".

SCARICA L'APK QUI

Primo test con Selendroid

Dobbiamo eseguire quanto segue Test Case utilizzando Selendroid

Test di Casi Condizioni dell'oggetto Uscita prevista
  1. Avvia l'applicazione
  2. Inserisci un testo "GuruMAI test"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 GuruProgetto 99Test -> 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

Right Click Guru99 Prova -> New -> 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

Migliori 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) copiare il Guru99App.apk nella cartella di Test App

Primo test con Selendroid

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

Supponiamo di avere un file APK chiamato Guru99App.apk. Segui i passaggi descritti nella sezione precedente ed esegui il comando nel 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 modificare 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 del file Guru99Test.java facendo doppio clic sulla riga 77 -> Verrร  visualizzato un punto come di seguito

Primo test con Selendroid

Avvia una sessione di prova facendo clic con il pulsante destro del mouse GuruProgetto 99Test -> 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 che la sessione di test รจ iniziata correttamente, apri il browser e vai a 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 inserito dall'utente in un campo di testo (es. Visualizza il testo "Ciao 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 tramite stopping , 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) Esegui l'app di prova: fai clic con il pulsante destro del mouse 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.

Sintesi

  • 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.

Riassumi questo post con: