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:
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.
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
Perché abbiamo bisogno 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 perché ne hai 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 contiene 4 componenti principali:
- 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
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)
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
Passo 2) Visualizzazione della finestra Proprietà del sistema, selezionare la scheda Avanzate -> variabili ambientali
Passo 3) Viene visualizzata la finestra Ambiente, fare clic su Nuovo -> Inserisci una variabile ANDROID_HOME come segue
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
Simile a ANDROID_HOME, aggiungi la nuova variabile JAVA_HOME con il valore come di seguito
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
L'output verrà visualizzato come segue
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
.
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
- 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:
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
- 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:
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 - 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
La porta ora è cambiata in 9000
- 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
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
- 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 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".
Dobbiamo eseguire quanto segue Test Case utilizzando Selendroid
Test di Casi | Condizione | Uscita prevista |
---|---|---|
|
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
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
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
Digita com.guru.test nel campo Nome su Nuovo Java Finestra di dialogo del pacchetto à Fine
Eclipse creerà elenchi di cartelle e sottocartelle come questa nella struttura del codice sorgente
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
- Nome e Cognome: TestNG
- Sede: https://github.com/selendroid/selendroid
Premere OK -> Avanti per installare il TestNG
Passo 5) Copia Guru99App.apk nella cartella dell'app Test
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
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”
Passo 7) Aprire il file Guru99Test.java (nel codice di esempio) e modificarlo 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 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
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
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
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
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
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
- Inserisci il testo "Ciao Guru"
- Fare clic su Mostra pulsante testo
- Aspetta un attimo
- 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
Passo 10) Lo script inizia l'esecuzione come segue
Passo 12) Al termine dell'esecuzione del test, TestNG genera automaticamente il report di prova come segue
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.