Selendroid Tutorial for begyndere med eksempel

Har du nogensinde udviklet en Android applikation og udgive den til Google Play? Hvad vil du gøre, hvis du får en brugeranmeldelse som -

Selendroid tutorial

Når du udgiver en app til Google Play, skal den være godt testet for at undgå de potentielle fejl. Der er et væld af testscenarier, der bør udføres, før du udgiver en app. For at gemme Test indsats, har du brug for et testværktøj. Et af de bedste testværktøjer til Android app er Selendroid.

Hvad er Selendroid?

Selendroid er en testautomatiseringsramme for multi-type mobilapplikation: indfødte og hybrid Android app og mobil web.

Hvad er Selendroid

Du kan skrive testene ved hjælp af Selenium 2 klient-API'er. Fordi Selendroid stadig genbrug af det eksisterende Selenium infrastruktur til nettet

Selendroid er et kraftfuldt testværktøj. Den kan bruges på emulatorer og ægte enheder

Hvad er Selendroid

Hvorfor har vi brug for Selendroid?

Selendroid er et fantastisk testværktøj. Men du kan stadig tvivle på dets anvendelighed.

Hvorfor har vi brug for Selendroid

Dette afsnit vil introducere de vigtige funktioner i Selendroid at besvare spørgsmålet, hvorfor du har brug for Selendroid.

Hvorfor har vi brug for Selendroid

  • Du kan teste applikationen under test vha Selendroid uden nogen ændring af appen. Du skal bare bruge den binære fil (APK) installeret på computeren. For at installere den binære fil på enheden skal testappen og mobilappen signeres med samme fortegnsnøgle
  • Selendroid test app kan interagere med flere enheder eller simulatorer samtidigt. Det er en stor fordel ved Selendroid. Så du kan teste din app med forskellige Android enheder for at kontrollere kompatibilitet.
  • Selendroid kan simulere menneskelige brugerhandlinger på en app, såsom berøring, swipe, træk og slip på enheder
  • Du kan ændre hardwareenhederne (tilslut og frakoble) under testen uden at genstarte eller stoppe testen. Selendroid genkender de nye enheder automatisk
  • Svarende til Android API version op, Selendroid understøtter også det nye Android API (fra API 10 til API 19)
  • Selendroid har også et eller andet indbygget inspektørværktøj til at hjælpe dig med at identificere UI-elementet i en applikation, der testes. For eksempel ID-knappen, tekstfeltet, tekstvisningen...

Selendroid Architecture

Selendroid er baseret på den Android instrumenteringsramme. Selendroid prøver er skrevet baseret på Selenium Web driver klient API, så det understøtter fuld integration med nuværende Selenium rammer.

Følgende figur beskriver arkitekturen af Selendroid

Selendroid Architecture

Selendroid indeholder 4 hovedkomponenter:

Selendroid Architecture

  • Web Driver Client – ​​Den Java klientbibliotek baseret på Selenium. Dette bibliotek skal installeres på computeren (som bruges til at udvikle testcases)
  • Selendroid-Server – Serveren, der kører, skal være i den app, der testes på Android enhed eller simulator. Dette er hovedkomponenterne i en Selendroid arkitektur
  • Android Driver-app – En indbygget Android driver, Web View-app for at teste mobilnettet.
  • Selendroid-Standalone – Denne komponent bruges til at installere Selendroid server og applikationen under test (AUT)

Kom i gang med Selendroid

Du har allerede kendt vigtigheden af Selendroid. Lad os nu få hænderne snavsede med Selendroid.

Der er 3 trin, der skal udføres før den første test med Selendroid

Kom i gang med Selendroid

Opsætning af a Selendroid miljø

Selendroid kan arbejde på Window, Linux og Mac OS. I denne tutorial vil vi opsætte Selendroid i Windows OS.

Før du bruger Selendroid, skal du installere følgende pakke først

  • Java SDK (minimum 1.6)

    Du skal acceptere licensaftalen og downloade java-installationsprogrammet (Vælg x64 eller x86 base på dit OS)

    Opsætning af a Selendroid Miljø

    Download og installer Java SDK som normal software

  • Seneste version af Android SDK
  • Din computer skal have mindst én Android Virtual Device (AVD), eller en rigtig Android enhed tilsluttet pc'en.
  • Selendroid Standalone med afhængigheder, Selendroid Klientog Selenium Klient
  • Eclipse software
  • Konfigurer JAVA_HOME og ANDROID_HOME

    Trin 1) Højreklik på Computer i vinduet -> Ejendomme -> Avanceret systemindstilling

    Opsætning af a Selendroid Miljø

    Trin 2) Vinduet Systemegenskaber, vælg fanen Avanceret -> Miljøvariabler

    Opsætning af a Selendroid Miljø

    Trin 3) I vinduet Miljø, klik på Ny -> Indtast en variabel ANDROID_HOME som følger

    Opsætning af a Selendroid Miljø

    Variabelværdien er stien til android-sdks, som du allerede har installeret.

    Find systemvariablen Path -> Redigere -> Tilføj følgende linje efter den aktuelle linje

    Opsætning af a Selendroid Miljø

    Opsætning af a Selendroid Miljø

    I lighed med ANDROID_HOME, tilføje ny variabel JAVA_HOME med værdi som nedenfor

    Opsætning af a Selendroid Miljø

    Værdien er vejen til din Java JDK installation

    Trin 4) Genstart din pc -> Udført

Sådan starter du Selendroid

Trin 1) Få en applikation under test

Du kan bruge eksisterende Selendroid test app for at kontrollere, hvordan Selendroid arbejder (Link for at prøve applikation under test)

Når en download er færdig, skal du kopiere denne APK og ovenstående Selendroid Enkeltstående krukke fil til en mappe med navnet "Guru99″

Trin 2) Start Selendroid

Åbn terminalen på Windows & naviger til mappen Guru99 oprettet i trin 1.

Kør følgende kommando

Launch Selendroid

Outputtet vises som følgende

Launch Selendroid

Efter at have kørt denne kommando, Selendroid-standalone HTTP-server starter! Standardportnummeret for denne server er 4444. Al hardwareenhed, samt Android Virtuel enhed, vil blive scannet og genkendt automatisk. Selendroid vil identificere Android målversion og enhedsskærmstørrelse.

At kontrollere Android målversionen såvel som enhedsoplysningerne, kan du starte følgende URL på en browser: http://localhost:4444/wd/hub/status.

Launch Selendroid

Selendroid grundlæggende kommando

Dette afsnit introducerer dig nogle grundlæggende Selendroid-Fristående kommandolinje. Du kan bruge dem til at konfigurere Selendroid testmiljø

  1. Indstilling af port for Selendroid

    Standardporten for Selendroid er 4444. Men du kan skifte til en anden port ved at tilføje en parameter til kommandoen for at starte Selendroid

    Parameter: -port [portnummer]

    For eksempel:

    Selendroid Grundlæggende kommando

    I ovenstående kommando er 5555 den nye port.

Så URL'en til at kontrollere Android målversionen ændres til: http://localhost:5555/wd/hub/status

  1. Angiv placeringen af ​​applikationen under test (binær APK-fil). Selendroid krævede ofte den absolutte sti til denne fil

    Parameter: -app [filsti]

    For eksempel:

    Selendroid Grundlæggende kommando

    I ovenstående kommando er Selendroid find automatisk den binære filbase på "C:\Guru99App.apk" for at få oplysningerne om den applikation, der testes.

    Tjek URL'en http://localhost:4444/wd/hub/status, vil du se disse oplysninger

    Selendroid Grundlæggende kommando

  2. Skift porten Selendroid bruger til at kommunikere med instrumenteringsserver. Selendroid bruger port 8080 som standard

    Parameter: -selendroidServerPort [portnummer]

    Eksempel

    Selendroid Grundlæggende kommando

    Porten er nu ændret til 9000

  3. Skift timeout for at starte emulatorer. Enheden er millisekunder.

    Parameter: -timeoutEmulatorStart

    Som standard Selendroid vil vente 300,000 millisekunder, indtil emulatoren starter. Du kan skifte til ny timeout (200,000 ms) ved kommando

    Selendroid Grundlæggende kommando

    Efter dette tidspunkt er vores udløbet, hvis emulatoren ikke kan starte, vil den Selendroid vil kaste undtagelsesfejlen (Der opstod en fejl under søgning efter enheder/emulatorer.) og derefter stoppe med at køre

  4. Når du starter Selendroid kommando på terminal, vil du se en log udskrevet på skærmen. Du kan ændre den type log, du ser, ved at tilføje følgende parameter

    Parameter: -logLevel [type af log]

    Logniveauværdierne er ERROR, WARNING, INFO, DEBUG og VERBOSE. Standard: FEJL.

    For eksempel sæt Selendroid for kun at udskrive ADVARSEL-loggen kan du bruge denne kommando

    Selendroid Grundlæggende kommando

    Selendroid udskriv kun ADVARSEL-loggen

Start din første test med Selendroid

Dette afsnit er en trin for trin guide til at oprette dit første testscript ved hjælp af Selendroid

Antag, at vi har en Android applikation under testnavn Guru99App. Applikationen indeholder et tekstfelt og et knapnavn "Vis tekst".

DOWNLOAD APK'en HER

Første test med Selendroid

Vi er nødt til at udføre følgende Test sag ved brug af Selendroid

Test Cases Betingelse Forventet output
  1. Start applikationen
  2. Indtast en tekst "Guru99 test” til tekstfeltet
  3. Tryk på knappen "Vis tekst".
Den binære applikation til den testede er tilgængelig

En enhed er tilsluttet pc

Teksten "Tekst Vis her" ændres til teksten

hvilken bruger indtaster i et tekstfelt

Trin 1) Opret en Java projekt i Eclipse

Trin 2) Tilsæt selen og Selendroid jar-fil i eclipse-miljøer

Højreklik på Guru99Test Project -> Byg sti -> Tilføj ekstern ArchiVes

Første test med Selendroid

Naviger til den mappe, der gemte jar-filerne

Der er 3 jar-filer, der skal tilføjes

  • selendroid-client-0.10.0.jar : Selendroid java klientbibliotek
  • selendroid-standalone-0.11.0-med-afhængigheder: Selendroid selvstændigt serverbibliotek
  • selen-java-2.40.0.jar : Selenium Web driver bibliotek

Vælg alle -> Vælg Åbn for at tilføje en jar-fil til projektet

Første test med Selendroid

Trin 3) efter tilføjelse af ovenstående bibliotek vil disse biblioteker blive tilføjet til referencebibliotekerne for testprojektet. En tester kan bruge disse bibliotekers API'er til at udvikle testprogrammet

Opret pakken "com.guru.test" og tilføj java-filen "Guru99Test.java" som nedenfor

Højreklik på Guru99Test -> Ny -> Pakke

Første test med Selendroid

Skriv com.guru.test i feltet Navn på Ny Java Pakkedialog à Afslut

Første test med Selendroid

Eclipse vil oprette listemapper og undermapper som denne i kildekodestrukturen

Første test med Selendroid

Trin 4) Installer TestNG forum Eclipse

In Eclipse, Hjælp -> Installer ny software, klik på Tilføj i installationsdialogen, og indtast følgende

Tryk på OK -> Næste for at installere TestNG

Første test med Selendroid

Trin 5) Kopier Guru99App.apk til mappen Test App

Første test med Selendroid

Trin 6) Få id'et for en applikation under test.

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

Første test med Selendroid

Åbn følgende link i en browser: http://localhost:4444/wd/hub/status.

Oplysningerne om enheden vises, kopier appId-værdien "com.guru99app:1.0"

Første test med Selendroid

Trin 7) Åbn filen Guru99Test.java (i eksempelkoden) og skift som følger

Første test med Selendroid

Til at oprette en ny testsession med Selendroid, skal du angive app-id'et i formatet: com.guru99app:1.0. Denne app-id kan identificeres i trin 6. Hvis du ikke indstiller app-id'et til at matche Android enhed, vil testsessionen give en fejl og vil ikke starte.

Efter initialisering af den fundne enhed, Selendroid opretter en tilpasset selendroid-server og installerer Selendroid server på den

Selendroid installerer også applikationen under test og starter selendroid-serveren på enheden

Efter vellykket initialisering af testsessionen startes testkommandoen med at udføre på en enhed. (Såsom indtastning af tekst, tryk på knappen...). Hvis testen tilføjer testsessionen, stopper emulatoren automatisk

Trin 8) Start den nye testsession

Start Selendroid server ved at bruge følgende kommando på terminal som trin 6

Første test med Selendroid

Efter Selendroid Server startet, åbn prøvetestprojektet Guru99test på Eclipse, indstil et brudpunkt ved linje 77 i filen Guru99Test.java ved at dobbeltklikke til linje 77 -> En prik vises som nedenfor

Første test med Selendroid

Start en testsession ved at højreklikke for at Guru99Test-projekt -> Debug As -> Testng Test.

En testsession starter som nedenfor

Første test med Selendroid

Trin 9) Få id'et for GUI-elementet for en applikation, der testes

Når testsessionen er startet, skal du åbne browseren, navigere til URL'en http://localhost:4444/inspector

Du vil se, at applikationen under test lanceres som nedenfor

Første test med Selendroid

Brug musen til hvert UI-element i AUT (knap, tekstfelt, tekstetiket), ID'et for hvert element fremhæves i højre rude

Første test med Selendroid

Efter dette trin kan du få ID'et for hvert ovenstående UI-element

  • Knap Vis tekst-id: "btnVis"
  • Tekstfelt-id: "edtText"
  • Etikettekst-id: "txtView"

Disse ID'er vil blive brugt i næste trin

Trin 10) Gå ind i testprogrammet som nedenfor

Et testprogram vha Selendroid indeholder 3 sektioner

Opsætningstest:

Følgende er koden for opsætningstest, den vil konfigurere betingelsen for en testsession. I tilfælde af en fejl, Selendroid vil kaste undtagelsen, og test-appen stopper.

Koden inkluderer kommentarerne til at forklare hver udsagn.

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

Udfør test

Nedenfor er koden til at udføre en test. Koden inkluderer kommentarerne

Her er testtrinene igen

  1. Indtast teksten "Hej Guru"
  2. Klik på Vis tekstknap
  3. Vent et øjeblik
  4. Bekræft, at appen viser teksten, når brugeren indtaster i et tekstfelt (f.eks. Vis teksten "Hej 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());        
		
     }

Afslut test

Følgende kode vil fuldføre testen ved at stoppe Selendroid chauffør.

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

Du kan se detaljerne i prøvekoden inkluderet i denne artikel.

Trin 10) Tilslut Android enhed til pc'en via USB-kabel. Punkter at observere -

  • Sørg for, at enheden ikke har konfigureret en skærmlås.
  • Enheder skal tilsluttes via USB til den computer, som selendroid-standalone-komponenten kører på.
  • Enheden skal som minimum installeres Android Target Version API 10

Trin 11) Kør testappen: Højreklik på Guru99test -> Løb som -> TestNG prøve

Første test med Selendroid

Trin 10) Scriptet starter udført som følger

Første test med Selendroid

Trin 12) Når testen er afsluttet, TestNG automatisk genererer testrapporten som følger

Første test med Selendroid

Første test med Selendroid

Godt arbejde, du er færdig med testen nu.

Resumé

  • Selendroid er et meget kraftfuldt værktøj til test Android native app, hybrid-appen samt web-appen.
  • Det kan bruges på rigtige enheder såvel som simulatoren.
  • Det giver dig også mulighed for at køre test parallelt ved at køre en test på flere enheder.
  • Hele Selendroid suite består af fire komponenter:
    • Web Driver klient,
    • Selendroid-Server,
    • Android Driver-app
    • Selendroid- stå alene
  • At bruge Selendroid du har brug for Java JDK, Android SDK og Eclipse installeret.