Selendroid Handledning för nybörjare med exempel

Har du någonsin utvecklat en Android appen och publicera den på Google Play? Vad kommer du att göra om du får en användarrecension som -

Selendroid Handledning

När du publicerar en app på Google Play måste den vara väl testad för att undvika potentiella buggar. Det finns massor av testscenarier som bör köras innan du publicerar en app. För att spara Testning ansträngning behöver du ett testverktyg. Ett av de bästa testverktygen för Android appen är Selendroid.

Vad är Selendroid?

Selendroid är ett ramverk för testautomatisering för flera typer av mobilapplikationer: nativ och hybrid Android app och mobil banan.

Vad är Selendroid

Du kan skriva proven med hjälp av Selenium 2 klient-API:er. Därför att Selendroid fortfarande återanvänder det befintliga Selenium infrastruktur för webben

Selendroid är ett kraftfullt testverktyg. Den kan användas på emulatorer och verklig enheter

Vad är Selendroid

Varför behöver vi Selendroid?

Selendroid är ett bra testverktyg. Men du kan fortfarande tvivla på dess användbarhet.

Varför behöver vi Selendroid

Detta avsnitt kommer att introducera de viktiga funktionerna i Selendroid för att svara på frågan varför du behöver Selendroid.

Varför behöver vi Selendroid

  • Du kan testa applikationen som testas med Selendroid utan någon modifiering av appen. Du behöver bara den binära filen (APK) installerat på datorn. För att installera den binära filen på enheten måste testappen och mobilappen signeras med samma teckennyckel
  • Selendroid testappen kan interagera med flera enheter eller simulatorer samtidigt. Det är en stor fördel med Selendroid. Så du kan testa din app med olika Android enheter för att kontrollera kompatibilitet.
  • Selendroid kan simulera mänskliga användares handlingar i en app, såsom pek, svep, dra och släpp på enheter
  • Du kan byta hårdvaruenheter (Plug and unplug) under testet utan att starta om eller stoppa testet. Selendroid känner igen de nya enheterna automatiskt
  • Motsvarande Android API-version upp, Selendroid stöder också det nya Android API (från API 10 till API 19)
  • Selendroid har också ett inbyggt inspektörsverktyg som hjälper dig att identifiera UI-elementet i en applikation som testas. Till exempel ID-knappen, textfältet, textvyn...

Selendroid Architecture

Selendroid är baserad på Android instrumenteringsram. Selendroid test skrivs baserat på Selenium Webdrivrutinsklient-API, så det stöder full integration med nuvarande Selenium ramar.

Följande figur beskriver arkitekturen för Selendroid

Selendroid Architecture

Selendroid innehåller 4 huvudkomponenter:

Selendroid Architecture

  • Web Driver Client – ​​Den Java klientbibliotek baserat på Selenium. Detta bibliotek bör installeras på datorn (som används för att utveckla testfallen)
  • Selendroid-Server – Servern som körs finns i appen som testas på Android enhet eller simulator. Detta är huvudkomponenterna i en Selendroid arkitektur
  • Android Driver-App – En inbyggd Android drivrutin, Web View-appen för att testa den mobila webben.
  • Selendroid-Fristående – Denna komponent används för att installera Selendroid server och applikationen under test (AUT)

Komma igång med Selendroid

Du har redan känt till vikten av Selendroid. Låt oss nu smutsa ner händerna Selendroid.

Det finns 3 steg som bör göras innan det första testet med Selendroid

Komma igång med Selendroid

Ställa in en Selendroid miljö

Selendroid kan arbeta på fönster, Linux och Mac OS. I den här handledningen kommer vi att ställa in Selendroid i Windows OS.

Innan du använder Selendroid, måste du installera följande paket först

  • Java SDK (minst 1.6)

    Du måste acceptera licensavtalet och ladda ner java-installationsprogrammet (Välj x64 eller x86 base på ditt operativsystem)

    Ställa in en Selendroid Miljö

    Hämta och installera Java SDK som vanlig programvara

  • Senaste versionen av Android SDK
  • Din dator måste ha minst en Android Virtual Device (AVD), eller en riktig Android enheten ansluten till datorn.
  • Selendroid Fristående med beroenden, Selendroid Klientoch Selenium Klient
  • Eclipse programvara
  • Konfigurera JAVA_HOME och ANDROID_HOME

    Steg 1) Högerklicka på Dator i fönstret -> Våra Bostäder -> Avancerad systeminställning

    Ställa in en Selendroid Miljö

    Steg 2) Systemegenskaper fönster, välj fliken Avancerat -> Miljövariabler

    Ställa in en Selendroid Miljö

    Steg 3) I fönstret Miljö, klicka på Ny -> Ange en variabel ANDROID_HOME enligt följande

    Ställa in en Selendroid Miljö

    Variabelvärdet är sökvägen till android-sdks som du redan har installerat.

    Hitta systemvariabeln Path -> Redigera -> Lägg till följande rad efter den aktuella raden

    Ställa in en Selendroid Miljö

    Ställa in en Selendroid Miljö

    I likhet med ANDROID_HOME, lägg till ny variabel JAVA_HOME med värde enligt nedan

    Ställa in en Selendroid Miljö

    Värdet är vägen till din Java JDK installation

    Steg 4) Starta om din dator -> Färdig

Hur man startar Selendroid

Steg 1) Få en applikation under test

Du kan använda befintliga Selendroid testa appen för att kontrollera hur Selendroid Arbetar (Länk till exempel på applikation som testas)

När en nedladdning är klar kopierar du denna APK och ovanstående Selendroid Fristående burk fil till en mapp med namnet "Guru99″

Steg 2) Starta Selendroid

Öppna terminalen på Windows & navigera till mappen Guru99 som skapades i steg 1.

Kör följande kommando

Starta Selendroid

Utgången kommer att visas enligt följande

Starta Selendroid

Efter att ha kört detta kommando, Selendroid-fristående HTTP-server startar! Standardportnumret för denna server är 4444. All hårdvaruenhet, samt Android Virtual Device, kommer att skannas och kännas igen automatiskt. Selendroid kommer att identifiera Android målversion och enhetsskärmstorlek.

För att kontrollera Android målversionen samt enhetsinformationen kan du starta följande URL i en webbläsare: http://localhost:4444/wd/hub/status.

Starta Selendroid

Selendroid grundläggande kommando

Det här avsnittet introducerar dig lite grundläggande Selendroid-Fristående kommandorad. Du kan använda dem för att ställa in Selendroid testmiljö

  1. Inställning av port för Selendroid

    Standardporten för Selendroid är 4444. Men du kan byta till en annan port genom att lägga till en parameter i kommandot för att starta Selendroid

    Parameter: -port [portnummer]

    Till exempel:

    Selendroid Grundläggande kommando

    I ovanstående kommando är 5555 den nya porten.

Så webbadressen för att kontrollera Android målversionen ändras till: http://localhost:5555/wd/hub/status

  1. Ange platsen för applikationen som testas (binär APK-fil). Selendroid krävde ofta den absoluta sökvägen för denna fil

    Parameter: -app [sökväg]

    Till exempel:

    Selendroid Grundläggande kommando

    I ovanstående kommando, den Selendroid hitta automatiskt den binära filbasen på "C:\Guru99App.apk" för att få information om applikationen som testas.

    Kontrollera URL:en http://localhost:4444/wd/hub/status, kommer du att se denna information

    Selendroid Grundläggande kommando

  2. Byt port Selendroid används för att kommunicera med instrumenteringsserver. Selendroid använder port 8080 som standard

    Parameter: -selendroidServerPort [portnummer]

    Exempelvis

    Selendroid Grundläggande kommando

    Porten är nu ändrad till 9000

  3. Ändra timeout för att starta emulatorer. Enheten är millisekunder.

    Parameter: -timeoutEmulatorStart

    Som standard Selendroid väntar 300,000 200,000 millisekunder tills emulatorn startar. Du kan ändra till ny timeout (XNUMX XNUMX ms) med kommando

    Selendroid Grundläggande kommando

    Efter denna tid löpte vår utgång, om emulatorn inte kan starta, den Selendroid kommer att kasta undantagsfelet (Fel uppstod när du letade efter enheter/emulatorer.) och slutar sedan köras

  4. När du startar Selendroid kommandot på terminalen kommer du att se en logg utskriven på skärmen. Du kan ändra vilken typ av logg du ser genom att lägga till följande parameter

    Parameter: -logLevel [typ av logg]

    Loggnivåvärdena är ERROR, WARNING, INFO, DEBUG och VERBOSE. Standard: ERROR.

    Till exempel, ställ in Selendroid för att endast skriva ut VARNINGSloggen kan du använda det här kommandot

    Selendroid Grundläggande kommando

    Ocuco-landskapet Selendroid skriv bara ut VARNINGSloggen

Börja ditt första test med Selendroid

Det här avsnittet är en steg-för-steg-guide för att skapa ditt första testskript med hjälp av Selendroid

Anta att vi har en Android applikation under testnamn Guru99App. Applikationen innehåller ett textfält och ett knappnamn "Visa text".

LADDA NED APKEN HÄR

Första testet med Selendroid

Vi måste utföra följande Testfall med hjälp av Selendroid

Test Cases Skick Förväntad utgång
  1. Starta programmet
  2. Skriv en text "Guru99 test” till textfältet
  3. Tryck på knappen "Visa text".
Binären för applikationen som testas är tillgänglig

En enhet är ansluten till PC

Texten "Text Visa här" ändras till texten

vilken användare anger i ett textfält

Steg 1) Skapa en Java projekt i Eclipse

Steg 2) Tillsätt selen och Selendroid jar-fil i eclipse-miljöer

Högerklicka på Guru99Test Project -> Bygg väg -> Lägg till extern Archives

Första testet med Selendroid

Navigera till mappen som lagrade jar-filerna

Det finns 3 jar-filer som bör läggas till

  • selendroid-client-0.10.0.jar : Selendroid java klientbibliotek
  • selendroid-fristående-0.11.0-med-beroenden : Selendroid fristående serverbibliotek
  • selen-java-2.40.0.jar : Selenium Webb-drivrutinbibliotek

Markera alla -> Välj Öppna för att lägga till en jar-fil till projektet

Första testet med Selendroid

Steg 3) efter att du har lagt till ovanstående bibliotek kommer dessa bibliotek att läggas till i testprojektets referensbibliotek. En testare kan använda API:erna för dessa bibliotek för att utveckla testprogrammet

Skapa paketet "com.guru.test" och lägg till java-filen "Guru99Test.java" som nedan

Högerklicka på Guru99Test -> Nytt -> Paket

Första testet med Selendroid

Skriv com.guru.test i fältet Namn på Ny Java Paketdialog à Slutför

Första testet med Selendroid

Ocuco-landskapet Eclipse kommer att skapa listmappar och undermappar som denna i källkodsstrukturen

Första testet med Selendroid

Steg 4) installera TestNG för Eclipse

In Eclipse, Hjälp -> Installera ny programvara, klicka på Lägg till i installationsdialogrutan och skriv in följande

Tryck på OK -> Nästa för att installera TestNG

Första testet med Selendroid

Steg 5) Kopiera Guru99App.apk till mappen Test App

Första testet med Selendroid

Steg 6) Skaffa ID för en applikation som testas.

Anta att vi har ett APK-filnamn Guru99App.apk. Följ steget som beskrivs i föregående avsnitt, kör kommandot på terminalen

Första testet med Selendroid

Öppna följande länk i en webbläsare: http://localhost:4444/wd/hub/status.

Informationen om enheten visas, kopiera appId-värdet "com.guru99app:1.0"

Första testet med Selendroid

Steg 7) Öppna filen Guru99Test.java (i exempelkoden) och ändra enligt följande

Första testet med Selendroid

För att skapa en ny testsession med Selendroid, måste du ange app-id:t i formatet: com.guru99app:1.0. Denna app-ID identifieras i steg 6. Om du inte ställer in app-ID:t som matchar Android enhet kommer testsessionen att ge ett fel och kommer inte att starta.

Efter att ha initierat den hittade enheten, Selendroid skapar en anpassad selendroid-server och installerar Selendroid server på den

Selendroid installerar även applikationen som testas och startar selendroid-servern på enheten

Efter att testsessionen har initierats framgångsrikt, startas testkommandot exekvering på en enhet. (Till exempel att skriva in text, tryck på knappen...). Om testet lägger till testsessionen stoppas emulatorn automatiskt

Steg 8) Starta den nya testsessionen

Starta Selendroid server med följande kommando på terminal som steg 6

Första testet med Selendroid

Efter Selendroid Servern startade, öppna provtestprojektet Guru99test på Eclipse, ställ in en brytpunkt på rad 77 i filen Guru99Test.java genom att dubbelklicka på rad 77 -> En prick visas som nedan

Första testet med Selendroid

Starta en testsession genom att högerklicka på Guru99Test-projektet -> Felsöka som -> Testng Test.

En testsession startar enligt nedan

Första testet med Selendroid

Steg 9) Få ID för GUI-elementet för en applikation som testas

Efter att testsessionen har startat framgångsrikt, öppna webbläsaren, navigera till URL:en http://localhost:4444/inspector

Du kommer att se att Application Under Test lanseras som nedan

Första testet med Selendroid

Använd muspekaren till varje UI-element i AUT (knapp, textfält, textetikett), varje elements ID kommer att markeras i den högra rutan

Första testet med Selendroid

Efter detta steg kan du få ID för varje ovanstående UI-element

  • Knapp Visa text-ID: "btnVisa"
  • Textfälts-ID: "edtText"
  • Etiketttext-ID: "txtView"

Dessa ID kommer att användas i nästa steg

Steg 10) Gå in i testprogrammet enligt nedan

Ett testprogram som använder Selendroid innehåller 3 sektioner

Inställningstest:

Följande är koden för inställningstestet, det kommer att ställa in villkoret för en testsession. Om ett fel uppstår, Selendroid kommer att kasta undantaget och testappen stoppas.

Koden innehåller kommentarerna för att förklara varje påstående.

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

Nedan finns koden för att utföra ett test. Koden innehåller kommentarerna

Här är teststegen igen

  1. Skriv in texten "Hej Guru"
  2. Klicka på Visa textknapp
  3. Vänta lite
  4. Kontrollera att appen visar texten när användaren skriver in i ett textfält (exempelvis visa texten "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());        
		
     }

Avsluta testet

Följande kod kommer att slutföra testet genom att stoppa Selendroid förare.

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

Du kan se detaljerna i exempelkoden som ingår i den här artikeln.

Steg 10) Kontakta Android enheten till datorn via USB-kabel. Punkter att observera -

  • Se till att enheten inte har något skärmlås konfigurerat.
  • Enheter måste anslutas via USB till datorn som den fristående selendroid-komponenten körs på.
  • Enheten bör installeras åtminstone Android Target Version API 10

Steg 11) Kör testappen: Högerklicka på Guru99test -> Spring som -> TestNG test

Första testet med Selendroid

Steg 10) Skriptstarten exekveras enligt följande

Första testet med Selendroid

Steg 12) Efter att testet avslutats, TestNG automatiskt genererar testrapporten enligt följande

Första testet med Selendroid

Första testet med Selendroid

Bra jobbat, du är klar med testet nu.

Sammanfattning

  • Selendroid är ett mycket kraftfullt verktyg för att testa Android native app, hybridappen samt webbappen.
  • Den kan användas på riktiga enheter såväl som simulatorn.
  • Det låter dig också köra tester parallellt genom att köra ett test på flera enheter.
  • Hela Selendroid svit består av fyra komponenter:
    • Web Driver-klient,
    • Selendroid-Server,
    • Android App för drivrutiner
    • Selendroid-fristående
  • Att använda Selendroid du behöver Java JDK, Android SDK och Eclipse installerad.