Selendroid Tutorial pentru începători cu exemplu

Ați dezvoltat vreodată un Android aplicație și să o publice pe Google Play? Ce veți face dacă primiți o recenzie de utilizator precum -

Selendroid tutorial

Când publicați o aplicație pe Google Play, aceasta trebuie să fie bine testată pentru a evita potențialele erori. Există o mulțime de scenarii de testare care ar trebui executate înainte de a publica o aplicație. Pentru a salva Testarea efort, aveți nevoie de un instrument de testare. Unul dintre cele mai bune instrumente de testare pentru Android aplicația este Selendroid.

Ce Este Selendroid?

Selendroid este un cadru de automatizare de testare pentru mai multe tipuri de aplicații mobile: nativ și hibrid Android aplicație și mobil web.

Ce Este Selendroid

Puteți scrie testele folosind Selenium 2 API-uri client. Deoarece Selendroid încă reutilizarea celor existente Selenium infrastructura pentru web

Selendroid este un instrument puternic de testare. Poate fi folosit pe emulatoare si reale Dispozitive

Ce Este Selendroid

De ce avem nevoie? Selendroid?

Selendroid este un instrument excelent de testare. Dar s-ar putea să vă îndoiți de utilitatea acestuia.

De ce avem nevoie? Selendroid

Această secțiune va prezenta caracteristicile importante ale Selendroid pentru a răspunde la întrebarea de ce aveți nevoie Selendroid.

De ce avem nevoie? Selendroid

  • Puteți testa aplicația testată folosind Selendroid fără nicio modificare a aplicației. Ai nevoie doar de fișierul binar (APK) instalat pe computer. Pentru a instala fișierul binar pe dispozitiv, aplicația de testare și aplicația mobilă trebuie să fie semnate cu aceeași cheie de semnare
  • Selendroid Aplicația de testare poate interacționa cu mai multe dispozitive sau simulatoare simultan. Este un mare avantaj al Selendroid. Deci, puteți testa aplicația dvs. cu diverse Android dispozitive pentru a verifica compatibilitatea.
  • Selendroid poate simula acțiunile utilizatorului uman într-o aplicație, cum ar fi atingerea, glisarea, glisarea și plasarea pe dispozitive
  • Puteți schimba dispozitivele hardware (Plug and unplug) în timpul testării fără a reporni sau opri testul. Selendroid recunoaște automat noile dispozitive
  • Corespunzător la Android Versiunea API sus, Selendroid susține și noul Android API (de la API 10 la API 19)
  • Selendroid are, de asemenea, un instrument de inspector încorporat pentru a vă ajuta să identificați elementul UI al unei aplicații testate. De exemplu, butonul ID, câmpul de text, vizualizarea text...

Selendroid Architectură

Selendroid se bazează pe Android cadrul de instrumentare. Selendroid testele sunt scrise pe baza Selenium Web driver client API, astfel încât acceptă integrarea completă cu actualul Selenium cadre.

Următoarea figură descrie arhitectura Selendroid

Selendroid Architectură

Selendroid contine 4 componente majore:

Selendroid Architectură

  • Web Driver Client – ​​The Java bibliotecă client bazată pe Selenium. Această bibliotecă ar trebui să fie instalată pe computer (care este folosită pentru a dezvolta cazurile de testare)
  • Selendroid-Server – Serverul care rulează să fie în aplicația testată Android dispozitiv sau simulator. Acestea sunt componentele principale ale a Selendroid arhitectură
  • Android Driver-App – O aplicație încorporată Android driver, aplicația Web View pentru a testa web-ul mobil.
  • Selendroid-Standalone – Această componentă este utilizată pentru a instala Selendroid server și aplicația testată (AUT)

Noțiuni de bază cu Selendroid

Ați cunoscut deja importanța Selendroid. Acum hai să ne murdărim mâinile Selendroid.

Există 3 pași care trebuie făcuți înainte de primul test cu Selendroid

Noțiuni de bază cu Selendroid

Configurarea a Selendroid mediu inconjurator

Selendroid poate lucra pe Windows, Linux și Mac OS. În acest tutorial, vom configura Selendroid în Windows OS.

Înainte de a utiliza Selendroid, mai întâi trebuie să instalați următorul pachet

  • Java SDK (minimum 1.6)

    Trebuie să acceptați acordul de licență și să descărcați programul de instalare java (Alegeți baza x64 sau x86 pe sistemul de operare)

    Configurarea a Selendroid Mediu inconjurator

    Descărcați și instalați Java SDK ca software normal

  • Ultima versiune a Android SDK
  • Computerul dvs. trebuie să aibă cel puțin unul Android Dispozitiv virtual (AVD), sau un real Android dispozitiv conectat la PC.
  • Selendroid Standalone cu dependențe, Selendroid Client și Selenium Client
  • Eclipse software-ul
  • Configurați JAVA_HOME și ANDROID_HOME

    Pas 1) În fereastră, faceți clic dreapta pe Computer -> Proprietăţi -> Setări avansate de sistem

    Configurarea a Selendroid Mediu inconjurator

    Pas 2) Afișează fereastra System Properties, selectați fila Advanced -> variabile de mediu

    Configurarea a Selendroid Mediu inconjurator

    Pas 3) Se afișează fereastra Mediu, faceți clic pe Nou -> Introduceți o variabilă ANDROID_HOME după cum urmează

    Configurarea a Selendroid Mediu inconjurator

    Valoarea variabilei este calea către Android-sdks pe care le-ați instalat deja.

    Găsiți variabila de sistem Path -> Editati -> Adăugați următoarea linie după linia curentă

    Configurarea a Selendroid Mediu inconjurator

    Configurarea a Selendroid Mediu inconjurator

    Similar cu ANDROID_HOME, adăugați o nouă variabilă JAVA_HOME cu valoarea de mai jos

    Configurarea a Selendroid Mediu inconjurator

    Valoarea este Calea către dumneavoastră Java Instalare JDK

    Pasul 4) Reporniți computerul -> Terminat

Cum se lansează Selendroid

Pasul 1) Obținerea unei aplicații în curs de testare

Puteți utiliza cele existente Selendroid testați aplicația pentru a verifica așa cum Selendroid lucrări (Link pentru a eșantiona aplicația supusă testului)

Odată ce descărcarea este completă, copiați acest APK și cele de mai sus Selendroid Borcan de sine stătător fișier într-un folder cu numele „Guru99″

Pasul 2) Lansați Selendroid

Deschideți terminalul Windows & navigați la folderul Guru99 creat la pasul 1.

Rulați următoarea comandă

Lansa Selendroid

Ieșirea se va afișa după cum urmează

Lansa Selendroid

După rularea acestei comenzi, Selendroid-Pornește serverul HTTP independent! Numărul de port implicit al acestui server este 4444. Toate dispozitivele hardware, precum și Android Dispozitivul virtual, va fi scanat și recunoscut automat. Selendroid va identifica Android versiunea țintă și dimensiunea ecranului dispozitivului.

Pentru a verifica Android versiunea țintă, precum și informațiile despre dispozitiv, puteți lansa următoarea adresă URL pe un browser: http://localhost:4444/wd/hub/status.

Lansa Selendroid

Selendroid comanda de bază

Această secțiune vă prezintă câteva elemente de bază Selendroid-Linie de comandă autonomă. Le puteți folosi pentru a configura Selendroid mediu de testare

  1. Setarea portului pentru Selendroid

    Portul implicit al Selendroid este 4444. Dar puteți trece la alt port adăugând un parametru la comanda de lansare Selendroid

    Parametru: -port [numarul portului]

    De exemplu:

    Selendroid Comandamentul de bază

    În comanda de mai sus, 5555 este noul port.

Deci URL-ul pentru a verifica Android versiunea țintă este schimbată în: http://localhost:5555/wd/hub/status

  1. Specificați locația aplicației testate (fișier APK binar). Selendroid adesea necesita calea absolută pentru acest fișier

    Parametru: -app [calea fișierului]

    De exemplu:

    Selendroid Comandamentul de bază

    În comanda de mai sus, Selendroid găsiți automat baza fișierului binar pe „C:\Guru99App.apk” pentru a obține informațiile despre aplicația testată.

    Verificați adresa URL http://localhost:4444/wd/hub/status, veți vedea aceste informații

    Selendroid Comandamentul de bază

  2. Schimbați portul Selendroid folosește pentru a comunica cu serverul de instrumente. Selendroid folosește portul 8080 ca implicit

    Parametru: -selendroidServerPort [numarul portului]

    Exemplu

    Selendroid Comandamentul de bază

    Portul este acum schimbat la 9000

  3. Modificați timpul de expirare pentru a porni emulatorii. Unitatea este milisecunde.

    Parametru: -timeoutEmulatorStart

    În mod implicit, Selendroid va aștepta 300,000 de milisecunde până când emulatorul pornește. Puteți trece la un nou timeout (200,000 ms) prin comandă

    Selendroid Comandamentul de bază

    După acest timp a expirat, dacă emulatorul nu poate porni, emul Selendroid va arunca eroarea de excepție (Eroare a apărut în timpul căutării dispozitivelor/emulatorilor.) apoi opriți rularea

  4. Când porniți Selendroid comanda pe terminal, veți vedea un jurnal tipărit pe ecran. Puteți schimba tipul de jurnal pe care îl vedeți adăugând următorul parametru

    Parametru: -logLevel [tip de jurnal]

    Valorile nivelului de jurnal sunt ERROR, WARNING, INFO, DEBUG și VERBOSE. Implicit: EROARE.

    De exemplu, setați Selendroid pentru a tipări numai jurnalul de AVERTIZARE, puteți utiliza această comandă

    Selendroid Comandamentul de bază

    Selendroid tipăriți doar jurnalul de AVERTIZARE

Începeți primul test cu Selendroid

Această secțiune este un ghid pas cu pas pentru crearea primului script de testare folosind Selendroid

Să presupunem că avem un Android aplicație sub numele de test Guru99App. Aplicația include un câmp de text și un nume de buton „Afișează text”.

DESCARCĂ APK-ul AICI

Primul test cu Selendroid

Trebuie să executăm următoarele Caz de testare folosind Selendroid

Cazuri de testare Condiție Rezultat așteptat
  1. Lansați aplicația
  2. Introdu un text „Testul Guru99” la câmpul de text
  3. Apăsați butonul „Afișați text”.
Binarul aplicației testate este disponibil

Un dispozitiv este conectat la PC

Textul „Text Show here” este schimbat în text

pe care utilizatorul îl introduce într-un câmp de text

Pas 1) Crearea unei Java proiect in Eclipse

Pas 2) Adăugați seleniu și Selendroid jar în medii eclipse

Faceți clic dreapta pe Proiectul Guru99Test -> Construiți calea -> Adăugați extern Archives

Primul test cu Selendroid

Navigați la folderul care a stocat fișierele jar

Ar trebui adăugate 3 fișiere jar

  • selendroid-client-0.10.0.jar : Selendroid biblioteca client java
  • selendroid-standalone-0.11.0-cu-dependențe : Selendroid bibliotecă de server autonomă
  • selenium-java-2.40.0.jar : Selenium Biblioteca Web Driver

selectați toate -> Alegeți Deschidere pentru a adăuga un fișier jar la proiect

Primul test cu Selendroid

Pas 3) după adăugarea bibliotecii de mai sus, acele biblioteci vor fi adăugate la Bibliotecile de referință ale proiectului de testare. Un tester poate folosi API-urile acelor biblioteci pentru a dezvolta programul de testare

Creați pachetul „com.guru.test” și adăugați fișierul java „Guru99Test.java” ca mai jos

Faceți clic dreapta pe Guru99Test -> Nou -> Pachet

Primul test cu Selendroid

Tastați com.guru.test în câmpul Nume din Nou Java Dialog pachet à Terminare

Primul test cu Selendroid

Eclipse va crea liste de foldere și subdosare ca acesta în structura codului sursă

Primul test cu Selendroid

Pas 4) Instalare TestNG pentru Eclipse

In Eclipse, Ajutor -> Instalați software nou, în caseta de dialog Instalare, faceți clic pe Adăugare și introduceți următoarele

Apăsați OK -> În continuare pentru a instala TestNG

Primul test cu Selendroid

Pas 5) Copiați Guru99App.apk în folderul Test App

Primul test cu Selendroid

Pas 6) Obțineți ID-ul unei aplicații testate.

Să presupunem că avem un nume de fișier APK Guru99App.apk. Urmați pasul descris în secțiunea anterioară, executați comanda pe terminal

Primul test cu Selendroid

Deschideți următorul link într-un browser: http://localhost:4444/wd/hub/status.

Se afișează informațiile dispozitivului, copiați valoarea appId „com.guru99app:1.0”

Primul test cu Selendroid

Pas 7) Deschideți fișierul Guru99Test.java (în exemplul de cod) și modificați după cum urmează

Primul test cu Selendroid

Pentru a crea o nouă sesiune de testare cu Selendroid, trebuie să furnizați id-ul aplicației în formatul: com.guru99app:1.0. Acest ID de aplicație poate este identificat la pasul 6. Dacă nu setați ID-ul aplicației care să se potrivească cu Android dispozitiv, sesiunea de testare va genera o eroare și nu va porni.

După inițializarea dispozitivului găsit, Selendroid creează un server selendroid personalizat și instalează Selendroid server de pe el

Selendroid de asemenea, instalează aplicația testată și pornește serverul selendroid pe dispozitiv

După inițializarea cu succes a sesiunii de testare, comanda de testare începe să se execute pe un dispozitiv. (De exemplu, introducerea textului, apăsarea butonului...). Dacă testul adaugă sesiunea de testare, emulatorul se va opri automat

Pas 8) Începeți noua sesiune de testare

Lansarea Selendroid server folosind următoarea comandă pe terminal, ca la pasul 6

Primul test cu Selendroid

După Selendroid Serverul a pornit, deschideți exemplul de proiect de testare Guru99test pe Eclipse, setați un punct de întrerupere la linia 77 din fișierul Guru99Test.java făcând dublu clic pe linia 77 -> Se va afișa un punct ca mai jos

Primul test cu Selendroid

Începeți o sesiune de testare prin clic dreapta pentru proiectul Guru99Test -> Depanare ca -> Testng Test.

O sesiune de testare va începe ca mai jos

Primul test cu Selendroid

Pas 9) Obțineți ID-ul elementului GUI al unei aplicații testate

După ce sesiunea de testare a început cu succes, deschideți browserul, navigați la adresa URL http://localhost:4444/inspector

Veți vedea că aplicația în curs de testare este lansată ca mai jos

Primul test cu Selendroid

Folosiți mouse-ul la fiecare element UI al AUT (Button, TextField, Text Label), ID-ul fiecărui element va fi evidențiat în panoul din dreapta

Primul test cu Selendroid

După acest pas, puteți obține ID-ul fiecărui element UI de mai sus

  • Butonul Afișează ID text: „btnShow
  • ID câmp text: „edtText
  • ID text etichetă: „txtView

Aceste ID-uri vor fi folosite la pasul următor

Pas 10) Intrați în programul de testare ca mai jos

Un program de testare folosind Selendroid include 3 secțiuni

Test de configurare:

Următorul este codul pentru testul de configurare, acesta va configura condiția pentru o sesiune de testare. În cazul unei erori, Selendroid va arunca excepția și aplicația de testare se va opri.

Codul include comentarii pentru a explica fiecare afirmație.

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);
					       
		    }
		

Executați testul

Mai jos este codul pentru a executa un test. Codul include comentariile

Iată din nou pașii de testare

  1. Introdu textul „Hello Guru”
  2. Faceți clic pe Afișați butonul text
  3. Așteaptă un pic
  4. Verificați dacă aplicația afișează textul pe măsură ce utilizatorul introduce într-un câmp de text (de ex. Afișați textul „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ți testul

Următorul cod va finaliza testul prin oprirea Selendroid conducător auto.

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

Puteți vedea detaliile în exemplu de cod inclus în acest articol.

Pas 10) Connect Android dispozitiv la PC prin cablu USB. Puncte de observat -

  • Asigurați-vă că dispozitivul nu are configurată blocarea ecranului.
  • Dispozitivele trebuie să fie conectate prin USB la computerul pe care rulează componenta autonomă selendroid.
  • Dispozitivul ar trebui să se instaleze cel puțin Android Target Versiunea API 10

Pas 11) Rulați aplicația de testare: faceți clic dreapta pe Guru99test -> Aleargă ca -> TestNG test

Primul test cu Selendroid

Pas 10) Scriptul a început executat după cum urmează

Primul test cu Selendroid

Pas 12) După terminarea execuției testului, TestNG automat generează raportul de testare după cum urmează

Primul test cu Selendroid

Primul test cu Selendroid

Bravo, ai terminat testul acum.

Rezumat

  • Selendroid este un instrument foarte puternic pentru testare Android aplicația nativă, aplicația hibridă, precum și aplicația web.
  • Poate fi folosit pe dispozitive reale, precum și pe simulator.
  • De asemenea, vă permite să rulați teste în paralel, rulând un test pe mai multe dispozitive.
  • Intregul Selendroid suita este compusă din patru componente:
    • Client Web Driver,
    • Selendroid-Server,
    • Android Aplicația Driver
    • Selendroid-de sine stătătoare
  • A folosi Selendroid ai nevoie Java JDK, Android SDK și Eclipse instalat.