Selendroid Opplæring for nybegynnere med eksempel

Har du noen gang utviklet en Android applikasjonen og publisere den på Google Play? Hva vil du gjøre hvis du får en brukeranmeldelse som -

Selendroid Opplæringen

Når du publiserer en app på Google Play, må den være godt testet for å unngå potensielle feil. Det er massevis av testscenarier som bør utføres før du publiserer en app. For å lagre Testing innsats, trenger du et testverktøy. Et av de beste testverktøyene for Android app er Selendroid.

Hva er Selendroid?

Selendroid er et testautomatiseringsrammeverk for multi-type mobilapplikasjoner: innfødt og hybrid Android app og mobil Web.

Hva er Selendroid

Du kan skrive testene ved å bruke Selenium 2 klient-APIer. Fordi Selendroid fortsatt gjenbruk av det eksisterende Selenium infrastruktur for nettet

Selendroid er et kraftig testverktøy. Den kan brukes på emulatorer og ekte enheter

Hva er Selendroid

Hvorfor trenger vi Selendroid?

Selendroid er et flott testverktøy. Men du kan fortsatt tvile på nytten.

Hvorfor trenger vi Selendroid

Denne delen vil introdusere de viktige funksjonene til Selendroid for å svare på spørsmålet hvorfor du trenger Selendroid.

Hvorfor trenger vi Selendroid

  • Du kan teste applikasjonen under test ved å bruke Selendroid uten endringer i appen. Du trenger bare den binære filen (APK) installert på datamaskinen. For å installere den binære filen på enheten, må testappen og mobilappen signeres med samme tegnnøkkel
  • Selendroid testappen kan samhandle med flere enheter eller simulatorer samtidig. Det er en stor fordel med Selendroid. Så du kan teste appen din med forskjellige Android enheter for å sjekke kompatibilitet.
  • Selendroid kan simulere menneskelige brukerhandlinger på en app, for eksempel berøring, sveip, dra og slipp på enheter
  • Du kan endre maskinvareenheter (plug og koble fra) under testen uten å starte på nytt eller stoppe testen. Selendroid gjenkjenner de nye enhetene automatisk
  • Tilsvarende Android API-versjon opp, Selendroid støtter også det nye Android API (fra API 10 til API 19)
  • Selendroid har også noe innebygd inspektørverktøy for å hjelpe deg med å identifisere brukergrensesnittelementet til en applikasjon som testes. For eksempel ID-knappen, tekstfeltet, tekstvisningen ...

Selendroid Architecture

Selendroid er basert på det Android instrumenteringsramme. Selendroid tester er skrevet basert på Selenium Web driver klient API, så den støtter full integrasjon med gjeldende Selenium rammer.

Følgende figur beskriver arkitekturen til Selendroid

Selendroid Architecture

Selendroid inneholder 4 hovedkomponenter:

Selendroid Architecture

  • Web Driver Client – ​​Den Java klientbibliotek basert på Selenium. Dette biblioteket bør installeres på datamaskinen (som brukes til å utvikle testcasene)
  • Selendroid-Server – Serveren som kjører være i appen som testes på Android enhet eller simulator. Dette er hovedkomponentene i en Selendroid arkitektur
  • Android Driver-app – En innebygd Android driver, Web View-app for å teste mobilnettet.
  • Selendroid-Frittstående – Denne komponenten brukes til å installere Selendroid server og applikasjonen under test (AUT)

Komme i gang med Selendroid

Du har allerede kjent betydningen av Selendroid. La oss nå skitne til hendene Selendroid.

Det er 3 trinn som bør gjøres før den første testen med Selendroid

Komme i gang med Selendroid

Sette opp en Selendroid miljø

Selendroid kan jobbe med Windows, Linux og Mac OS. I denne opplæringen vil vi sette opp Selendroid i Windows OS.

Før du bruker Selendroid, må du installere følgende pakke først

  • Java SDK (minimum 1.6)

    Du må godta lisensavtalen og laste ned java-installasjonsprogrammet (velg x64 eller x86 base på operativsystemet ditt)

    Sette opp en Selendroid Miljø

    Last ned og installer Java SDK som vanlig programvare

  • Siste versjon av Android SDK
  • Datamaskinen din må ha minst én Android Virtual Device (AVD), eller en ekte Android enheten koblet til PC-en.
  • Selendroid Frittstående med avhengigheter, Selendroid kundeog Selenium kunde
  • Eclipse programvare
  • Sett opp JAVA_HOME og ANDROID_HOME

    Trinn 1) Høyreklikk på Datamaskin i vinduet -> Eiendommer -> Avansert systeminnstilling

    Sette opp en Selendroid Miljø

    Trinn 2) Systemegenskaper-vinduet, velg fanen Avansert -> Miljøvariabler

    Sette opp en Selendroid Miljø

    Trinn 3) I miljøvinduet, klikk på Ny -> Skriv inn en variabel ANDROID_HOME som følger

    Sette opp en Selendroid Miljø

    Variabelverdien er banen til android-sdks som du allerede har installert.

    Finn systemvariabelen Path -> Rediger -> Legg til følgende linje etter gjeldende linje

    Sette opp en Selendroid Miljø

    Sette opp en Selendroid Miljø

    I likhet med ANDROID_HOME, legg til ny variabel JAVA_HOME med verdi som nedenfor

    Sette opp en Selendroid Miljø

    Verdien er veien til din Java JDK installasjon

    Trinn 4) Start PC-en på nytt -> Ferdig

Hvordan lansere Selendroid

Trinn 1) Få en applikasjon under test

Du kan bruke eksisterende Selendroid test appen for å sjekke hvordan Selendroid fungerer (link til prøveapplikasjon under test)

Når en nedlasting er fullført, kopierer du denne APK og ovenstående Selendroid Frittstående krukke fil til en mappe med navnet "Guru99"

Trinn 2) Start Selendroid

Åpne terminalen på Windows & naviger til mappen Guru99 opprettet i trinn 1.

Kjør følgende kommando

Start Selendroid

Utgangen vil vises som følger

Start Selendroid

Etter å ha kjørt denne kommandoen, Selendroid-frittstående HTTP-server starter! Standard portnummer for denne serveren er 4444. All maskinvareenhet, samt Android Virtual Device, vil bli skannet og gjenkjent automatisk. Selendroid vil identifisere Android målversjon og enhetsskjermstørrelse.

For å sjekke Android målversjonen så vel som enhetsinformasjonen, kan du starte følgende URL i en nettleser: http://localhost:4444/wd/hub/status.

Start Selendroid

Selendroid grunnleggende kommando

Denne delen introduserer deg noen grunnleggende Selendroid-Frittstående kommandolinje. Du kan bruke dem til å sette opp Selendroid testmiljø

  1. Innstilling av port for Selendroid

    Standardporten til Selendroid er 4444. Men du kan endre til en annen port ved å legge til en parameter i kommandoen for å starte Selendroid

    Parameter: -port [portnummer]

    For eksempel:

    Selendroid Grunnleggende kommando

    I kommandoen ovenfor er 5555 den nye porten.

Så nettadressen for å sjekke Android målversjonen endres til: http://localhost:5555/wd/hub/status

  1. Angi plasseringen av applikasjonen som testes (binær APK-fil). Selendroid krevde ofte den absolutte banen for denne filen

    Parameter: -app [filbane]

    For eksempel:

    Selendroid Grunnleggende kommando

    I kommandoen ovenfor er Selendroid finn automatisk den binære filbasen på "C:\Guru99App.apk" for å få informasjon om applikasjonen som testes.

    Sjekk nettadressen http://localhost:4444/wd/hub/status, vil du se denne informasjonen

    Selendroid Grunnleggende kommando

  2. Endre porten Selendroid bruker for å kommunisere med instrumenteringsserver. Selendroid bruker port 8080 som standard

    Parameter: -selendroidServerPort [portnummer]

    Eksempel

    Selendroid Grunnleggende kommando

    Porten er nå endret til 9000

  3. Endre tidsavbruddet for å starte emulatorer. Enheten er millisekunder.

    Parameter: -timeoutEmulatorStart

    Som standard Selendroid vil vente 300,000 200,000 millisekunder til emulatoren starter. Du kan endre til ny tidsavbrudd (XNUMX XNUMX ms) med kommando

    Selendroid Grunnleggende kommando

    Etter denne tiden er vår utløpt, hvis emulatoren ikke kan starte, vil den Selendroid vil kaste unntaksfeilen (Feil oppstod under søk etter enheter/emulatorer.) og slutte å kjøre

  4. Når du starter Selendroid kommando på terminal, vil du se en logg skrevet ut på skjermen. Du kan endre typen logg du ser ved å legge til følgende parameter

    Parameter: -logLevel [type logg]

    Loggnivåverdiene er ERROR, WARNING, INFO, DEBUG og VERBOSE. Standard: FEIL.

    For eksempel, sett Selendroid for kun å skrive ut ADVARSEL-loggen, kan du bruke denne kommandoen

    Selendroid Grunnleggende kommando

    Ocuco Selendroid bare skriv ut ADVARSEL-loggen

Start din første test med Selendroid

Denne delen er en trinnvis veiledning for å lage ditt første testskript ved hjelp av Selendroid

Anta at vi har en Android applikasjon under testnavn Guru99App. Applikasjonen inkluderer et tekstfelt og et knappnavn "Vis tekst".

LAST NED APK HER

Første test med Selendroid

Vi må utføre følgende Testsak ved hjelp av Selendroid

test Cases Betingelse Forventet utgang
  1. Start programmet
  2. Skriv inn en tekst "Guru99-test" til tekstfeltet
  3. Trykk på "Vis tekst"-knappen
Binæren til applikasjonen som testes er tilgjengelig

En enhet er koblet til PC

Teksten "Tekst Vis her" endres til teksten

hvilken bruker skriver inn i et tekstfelt

Trinn 1) Lag en Java prosjekt i Eclipse

Trinn 2) Tilsett selen og Selendroid jar-fil i eclipse-miljøer

Høyreklikk på Guru99Test Project -> Bygg sti -> Legg til ekstern Archives

Første test med Selendroid

Naviger til mappen som lagret jar-filene

Det er 3 jar-filer som bør legges til

  • selendroid-client-0.10.0.jar : Selendroid java klientbibliotek
  • selendroid-standalone-0.11.0-med-avhengigheter : Selendroid frittstående serverbibliotek
  • selen-java-2.40.0.jar : Selenium Nettdriverbibliotek

Velg alle -> Velg Åpne for å legge til en jar-fil i prosjektet

Første test med Selendroid

Trinn 3) etter å ha lagt til biblioteket ovenfor, vil disse bibliotekene bli lagt til referansebibliotekene til testprosjektet. En tester kan bruke API-ene til disse bibliotekene for å utvikle testprogrammet

Opprett pakken "com.guru.test" og legg til java-filen "Guru99Test.java" som nedenfor

Høyreklikk Guru99Test -> Ny -> Pakke

Første test med Selendroid

Skriv com.guru.test til Navn-feltet på Ny Java Pakkedialog à Fullfør

Første test med Selendroid

Ocuco Eclipse vil opprette listemapper og undermapper som dette i kildekodestrukturen

Første test med Selendroid

Trinn 4) Install TestNG forum Eclipse

In Eclipse, Hjelp -> Installer ny programvare, klikk på Legg til i installasjonsdialogen og skriv inn følgende

Trykk på OK -> Neste for å installere TestNG

Første test med Selendroid

Trinn 5) Kopier Guru99App.apk til mappen til Test App

Første test med Selendroid

Trinn 6) Få ID-en til en applikasjon som testes.

Anta at vi har et APK-filnavn Guru99App.apk. Følg trinnet som er beskrevet i forrige avsnitt, utfør kommandoen på terminalen

Første test med Selendroid

Åpne følgende lenke i en nettleser: http://localhost:4444/wd/hub/status.

Informasjonen om enheten vises, kopier appId-verdien "com.guru99app:1.0"

Første test med Selendroid

Trinn 7) Åpne filen Guru99Test.java (i eksempelkoden) og endre som følger

Første test med Selendroid

For å opprette en ny testøkt med Selendroid, må du oppgi app-ID-en i formatet: com.guru99app:1.0. Denne app-ID-en identifiseres i trinn 6. Hvis du ikke angir at app-ID-en samsvarer med Android enhet, vil testøkten gi en feil og vil ikke starte.

Etter initialisering av enheten som ble funnet, Selendroid oppretter en tilpasset selendroid-server og installerer Selendroid server på den

Selendroid installerer også applikasjonen som testes og starter selendroid-serveren på enheten

Etter vellykket initialisering av testøkten, startes testkommandoen på en enhet. (Slik som å skrive inn tekst, trykk på knappen...). Hvis testen legger til testøkten, stopper emulatoren automatisk

Trinn 8) Start den nye testøkten

Start Selendroid server ved å bruke følgende kommando på terminal som trinn 6

Første test med Selendroid

Etter Selendroid Server startet, åpne prøvetestprosjektet Guru99test på Eclipse, sett et bruddpunkt på linje 77 på filen Guru99Test.java ved å dobbeltklikke til linje 77 -> En prikk vil vises som nedenfor

Første test med Selendroid

Start en testøkt ved å høyreklikke til Guru99Test-prosjektet -> Feilsøk som -> Testng Test.

En testøkt vil starte som nedenfor

Første test med Selendroid

Trinn 9) Få ID-en til GUI-elementet til en applikasjon som testes

Etter at testøkten har startet, åpner du nettleseren og går til URL-en http://localhost:4444/inspector

Du vil se at applikasjonen under test er lansert som nedenfor

Første test med Selendroid

Bruk musepekeren til hvert UI-element i AUT (knapp, tekstfelt, tekstetikett), IDen til hvert element vil fremheves i høyre rute

Første test med Selendroid

Etter dette trinnet kan du få IDen til hvert UI-element ovenfor

  • Knapp Vis tekst-ID: "btnVis"
  • Tekstfelt-ID: "edtText"
  • Etiketttekst-ID: "txtView"

Disse ID-ene vil bli brukt i neste trinn

Trinn 10) Gå inn i testprogrammet som nedenfor

Et testprogram som bruker Selendroid inkluderer 3 seksjoner

Oppsetttest:

Følgende er koden for oppsetttesten, den vil sette opp betingelsen for en testøkt. I tilfelle en feil, Selendroid vil kaste unntaket og testappen stopper.

Koden inkluderer kommentarene for å forklare hver påstand.

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

Utfør test

Nedenfor er koden for å utføre en test. Koden inkluderer kommentarene

Her er testtrinnene igjen

  1. Skriv inn teksten "Hei Guru"
  2. Klikk på Vis tekstknapp
  3. Vent en stund
  4. Bekreft at appen viser teksten når brukeren skriver inn i et tekstfelt (f.eks. vis teksten "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());        
		
     }

Fullfør testen

Følgende kode vil fullføre testen ved å stoppe Selendroid sjåfør.

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

Du kan se detaljene i eksempelkoden inkludert i denne artikkelen.

Trinn 10) Koble Android enheten til PC-en via USB-kabel. Punkter å observere -

  • Sørg for at enheten ikke har konfigurert noen skjermlås.
  • Enheter må kobles til via USB til datamaskinen som den frittstående selendroid-komponenten kjører på.
  • Enheten bør installeres minst Android Target Versjon API 10

Trinn 11) Kjør testappen: Høyreklikk Guru99test -> Løp så -> TestNG test

Første test med Selendroid

Trinn 10) Skriptstarten utføres som følger

Første test med Selendroid

Trinn 12) Etter at testen er fullført, TestNG automatisk genererer testrapporten som følger

Første test med Selendroid

Første test med Selendroid

Bra jobbet, du er ferdig med testen nå.

Sammendrag

  • Selendroid er et veldig kraftig verktøy for testing Android native app, hybrid-appen så vel som web-appen.
  • Den kan brukes på ekte enheter så vel som simulatoren.
  • Den lar deg også kjøre tester parallelt ved å kjøre en test på flere enheter.
  • Hele Selendroid suiten består av fire komponenter:
    • Web Driver-klient,
    • Selendroid-Server,
    • Android Driver-app
    • Selendroid- stå alene
  • Å bruke Selendroid du trenger Java JDK, Android SDK og Eclipse installert.