Selendroid Tutorial for begyndere med eksempel

Har du nogensinde udviklet en Android ansรธgning og offentliggรธr den til Google Spil? Hvad vil du gรธre, hvis du fรฅr en brugeranmeldelse som โ€“

Selendroid tutorial

Nรฅr du udgiver en app til Google Play, det skal testes grundigt for at undgรฅ potentielle fejl. Der er et vรฆld af testscenarier, der bรธr udfรธres, fรธr en app udgives. 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 skifte hardwareenhederne (tilslut og tag stikket ud) under testen uden at genstarte eller stoppeping 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 samt 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 at tjekke 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 fil baseret pรฅ โ€œC:\Guru99App.apkโ€ for at fรฅ oplysninger om den applikation, der testes.

    Tjek URL 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 en knap med navnet "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 "GuruTest ALDRIGโ€ 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 Guru99Test-projekt -> 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 vist nedenfor

Hรธjreklik Guru99 Test -> 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 med Test-appen

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 beskrevet i forrige afsnit, og udfรธr kommandoen i 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 รฆndr 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 eksempeltestprojektet Guru99test pรฅ Eclipse, sรฆt et breakpoint pรฅ linje 77 i filen Guru99Test.java ved at dobbeltklikke pรฅ linjen 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 korrekt, skal du รฅbne browseren og navigere til URL 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 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 stoppeping og 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 Guru99 test -> 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.

Opsummer dette indlรฆg med: