Selendroid-handledning för nybörjare med exempel

Innehållsförteckning:

Anonim

Har du någonsin utvecklat en Android-applikation och publicerat den på Google Play? Vad ska du göra om du får en användarrecension som -

När du publicerar en app till Google Play måste den testas väl för att undvika potentiella buggar. Det finns massor av testscenarier som ska köras innan du publicerar en app. För att spara testansträngningen behöver du ett testverktyg. Ett av de bästa testverktygen för Android-appen är Selendroid.

  • Vad är Selendroid?
  • Varför behöver vi Selendroid?
  • Selendroid arkitektur
  • Komma igång med Selendroid
  • Ställa in en Selendroid-miljö
  • Hur man startar Selendroid
  • Selendroid grundläggande kommando
  • Starta ditt första test med Selendroid

Vad är Selendroid?

Selendroid är ett testautomatiseringsramverk för flera typer av mobilapplikationer: native och hybrid Android-app och mobilweb .

Du kan skriva testerna med Selenium 2-klient-API: er. Eftersom Selendroid fortfarande återanvänder den befintliga Selen-infrastrukturen för webben

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

Varför behöver vi Selendroid?

Selendroid är ett utmärkt testverktyg. Men du kanske fortfarande tvivlar på dess användbarhet.

I det här avsnittet presenteras de viktiga funktionerna i Selendroid för att svara på frågan varför du behöver Selendroid.

  • Du kan testa applikationen under test med Selendroid utan någon ändring av appen. Du behöver bara den binära filen (APK) installerad på datorn. För att kunna installera den binära filen på enheten måste testappen och mobilappen signeras med samma teckennyckel
  • Selendroid testapp 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ändaråtgärder i en app, till exempel peka, svep, dra och släpp på enheter
  • Du kan byta maskinvaruenheter (plugga och koppla ur) under testet utan att starta om eller stoppa testet. Selendroid känner igen de nya enheterna automatiskt
  • Motsvarar Android API-versionen upp, stöder Selendroid också det nya Android API (från API 10 till API 19)
  • Selendroid har också ett inbyggt inspektörverktyg som hjälper dig att identifiera UI-elementet i en applikation som testas. Till exempel ID-knappen, textfältet, textvyn ...

Selendroid arkitektur

Selendroid är baserad på Android-instrumentramverket. Selendroid-tester är skrivna på Selenium Web Driver Client API, så det stöder full integration med nuvarande Selen-ramar.

Följande bild beskriver Selendroid-arkitekturen

Selendroid innehåller fyra huvudkomponenter:

  • Web Driver Client - Java-klientbiblioteket baserat på Selenium. Detta bibliotek ska installeras på datorn (som används för att utveckla testfallet)
  • Selendroid-server - Servern som körs 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 mobilwebben.
  • Selendroid-fristående - Denna komponent används för att installera Selendroid-servern och applikationen som testas (AUT)

Komma igång med Selendroid

Du har redan känt vikten av Selendroid. Nu ska vi smutsa händerna på Selendroid.

Det finns tre steg som ska göras före det första testet med Selendroid

Ställa in en Selendroid-miljö

Selendroid kan fungera på Window, Linux och Mac OS. I den här handledningen ställer vi in ​​Selendroid i Window OS.

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

  • Java SDK (minimum 1,6)

    Du måste acceptera licensavtalet och ladda ner Java-installationsprogrammet (Välj x64- eller x86-bas i ditt operativsystem)

    Ladda ner 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-enhet ansluten till datorn.
  • Selendroid fristående med beroenden, Selendroid Client och Selenium Client
  • Eclipse-programvara
  • Ställ in JAVA_HOME och ANDROID_HOME

    Steg 1) I fönstret högerklickar du på Dator -> Egenskaper -> Avancerad systeminställning

    Steg 2) Fönstrets systemegenskaper, välj fliken Avancerat -> Miljövariabler

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

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

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

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

    Värdet är sökvägen till din Java JDK-installation

    Steg 4) Starta om din dator -> Klar

Hur man startar Selendroid

Steg 1) Få en ansökan under test

Du kan använda befintlig Selendroid testapp för att kontrollera hur Selendroid fungerar (Länk till provapplikation under test)

När en nedladdning är klar kopierar du denna APK och ovanstående Selendroid fristående jar-fil till en mapp med namnet " Guru99"

Steg 2) Starta Selendroid

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

Kör följande kommando

Utgången visas som följande

Efter att ha kört det här kommandot startar den fristående HTTP-servern för Selendroid! Standardportnumret för denna server är 4444. Alla hårdvaruenheter, såväl som Android Virtual Device, skannas och känns igen automatiskt. Selendroid identifierar Android-målversionen och enhetens skärmstorlek.

För att kontrollera Android-målversionen och enhetsinformationen kan du starta följande URL i en webbläsare:

http: // localhost: 4444 / wd / hub / status.

Selendroid grundläggande kommando

I det här avsnittet presenteras några grundläggande kommandorader för Selendroid. Du kan använda dem för att ställa in testmiljön för Selendroid

  1. Ställer in port för Selendroid

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

    Parameter: -port [portnummer]

    Till exempel:

    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 (Binary APK-fil). Selendroid krävde ofta den absoluta sökvägen för den här filen

    Parameter: -app [filsökväg]

    Till exempel:

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

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

  2. Ändra porten som Selendroid använder för att kommunicera med instrumentationsservern. Selendroid använder port 8080 som standard

    Parameter: -selendroidServerPort [portnummer]

    Exempel

    Hamnen ändras nu till 9000

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

    Parameter: -timeoutEmulatorStart

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

    Efter denna tid vår utgång, om emulatorn inte kan starta, kommer Selendroid att kasta undantagsfelet (Fel inträffade när du letade efter enheter / emulatorer.) Sluta sedan köra

  4. När du startar kommandot Selendroid på terminalen ser du 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: FEL.

    Ange till exempel Selendroid att endast skriva ut VARNING-loggen, du kan använda det här kommandot

    Selendroid skriver bara ut VARNING-loggen

Starta 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 Selendroid

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

LADDA NER APK HÄR

Vi måste utföra följande testfall med Selendroid

Testfall

Tillstånd

Förväntad effekt:

  1. Starta applikationen
  2. Ange en text " Guru99 Test " i textfältet
  3. Tryck på "Visa text" -knappen

Den binära applikationen är tillgänglig

En enhet är ansluten till PC

Texten "Text Show here" ändras till texten

vilken användare anger i ett textfält

Steg 1) Skapa ett Java-projekt i Eclipse

Steg 2) Lägg till selen- och Selendroid-burkfil i eclipse-miljöer

Högerklicka på Guru99Test-projektet -> Bygg väg -> Lägg till externa arkiv

Navigera till den mapp som lagrade jar-filerna

Det finns tre burkfiler som ska 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 Web Driver-bibliotek

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

Steg 3) efter att ovanstående bibliotek har lagts till kommer dessa bibliotek att läggas till i referensbiblioteken i testprojektet. En testare kan använda API: er 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 Guru99Test -> Nytt -> Paket

Skriv com.guru.test i fältet Namn i dialogrutan Nytt Java-paket à Slutför

Eclipse skapar listmappar och undermappar så här i källkodsstrukturen

Steg 4) Installera TestNG för Eclipse

I Eclipse, Hjälp -> Installera ny programvara, klicka på Lägg till i dialogrutan Installera och ange följande

  • Namn: TestNG
  • Plats: http://selendroid.io/

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

Steg 5) Kopiera Guru99App.apk till mappen för Test App

Steg 6) Få ID för en ansökan under test.

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

Öppna följande länk i en webbläsare

http: // localhost: 4444 / wd / hub / status.

Enhetens information visas, kopiera appId-värdet "com.guru99app: 1.0"

Steg 7) Öppna filen Guru99Test.java (i exempelkoden) och ändra på följande sätt

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 kan identifieras i steg 6. Om du inte ställer in app-id: n som matchar Android-enheten, kommer testsessionen att ge ett fel och starta inte.

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

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

Efter att testsessionen initialiserats framgångsrikt startas testkommandot på en enhet. (Så som att skriva in text, tryck på knappen

...). Om testet bifogar testsessionen stoppas emulatorn automatiskt

Steg 8) Starta den nya testsessionen

Starta Selendroid-servern med följande kommando på terminalen som steg 6

När Selendroid-servern startade öppnar du testprojektet Guru99test på Eclipse, ställer in en brytpunkt vid rad 77 i filen Guru99Test.java genom att dubbelklicka på raden 77 -> En punkt visas som nedan

Starta en testperiod genom att högerklicka på Guru99Test-projektet -> Felsök som -> Testng-test.

En testsession börjar som nedan

Steg 9) Få Id för GUI-elementet för en applikation under test

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

Du kommer att se Application Under Test lanseras som nedan

Använd muspekaren till varje UI-element i AUT (Button, TextField, Text Label), ID för varje element kommer att markeras i den högra rutan

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

  • Knapp Visa text-ID: " btnShow "
  • Textfält-ID: " edtText "
  • Etiketttext-ID: " txtView "

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

Steg 10) Gå in i testprogrammet som nedan

Ett testprogram med Selendroid innehåller tre avsnitt

Installationstest:

Följande är koden för installationstest, det kommer att ställa in villkoret för en testsession. Om ett fel kommer Selendroid att kasta undantaget och testappen kommer att stoppa.

Koden innehåller kommentarer för att förklara varje uttalande.

paket com.guru.test;importera io.selendroid.SelendroidCapabilities;importera io.selendroid.SelendroidConfiguration;importera io.selendroid.SelendroidDriver;importera io.selendroid.SelendroidLauncher;importera io.selendroid.device.DeviceTargetPlatform;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.testng.Assert;importera org.testng.annotations.AfterSuite;importera org.testng.annotations.BeforeSuite;importera org.testng.annotations.Test;/ *** @author Guru99 Test App med Selendroid* Testad ansökan: Guru99App** /offentligklass Guru99Test {// Deklarera webbdrivrutinens variabelprivat WebDriver-drivrutin;/ *** Ställ in miljön innan du testar* @ kastar undantag* /@BeforeSuiteoffentligogiltig setUp () kastar undantag {// Starta selendroid-fristående under testetSelendroidConfiguration config = ny SelendroidConfiguration ();// Lägg till selendroid-test-appen till den fristående servernconfig.addSupportedApp ("Guru99App.apk");// starta den fristående servernSelendroidLauncher selendroidServer = ny SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Skapa selendroid-funktionernaSelendroidCapabilities capa = nya SelendroidCapabilities ();// Ange för att använda selendroids testappcapa.setAut ("com.guru99app: 1.0");// Ange att använda Android-enhetens API 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Begär inte simulator, använd riktig enhetcapa.setEmulator (falskt);//capa.wait(10000000);// Skapa instans av Selendroid Driverförare = ny SelendroidDriver (capa);}

Utför test

Nedan är koden för att utföra ett test. Koden innehåller kommentarer

Här är teststegen igen

  1. Ange texten "Hello Guru"
  2. Klicka på Visa textknappen
  3. Vänta lite
  4. Verifiera att appen visar texten när användaren anger ett textfält (Ex. Visa texten "Hello Guru")
 / *** Börja köra testfallet* 01. Ange texten "Selendroid" i textfältet* 02. Tryck på OK-knappen* @ kastar undantag* /@Testaoffentligogiltigt selendroidTest () kastar undantag {// Skriv ut loggenSystem.out.print ("Börja köra test");// Hitta inmatningsfältet på skärmen// ID för detta textfält var från steg 9WebElement inputField = driver.findElement (By.id ("edtText"));// Kontrollera att textfältet är aktiverat så att användaren kan skriva in textAssert.assertEquals ("true", inputField.getAttribute ("enabled"));// Ange ett text till textfältinputField.sendKeys ("Hello Guru");// klicka på Visa text-knappen// Id för den här knappen var från steg 9WebElement-knapp = driver.findElement (By.id ("btnShow"));button.click ();// Fördröjningstiden för att träda i kraftThread.sleep (5000);// Hitta etiketten "Text Visa här" på skärmen// ID för denna etikett var från steg 9WebElement txtView = driver.findElement (By.id ("txtView"));// Få textvisning på skärmenSträng förväntad = txtView.getText ();// Kontrollera att texten som användaren anger i textfältet är samma som textvisning på skärmenAssert.assertEquals (förväntat, inputField.getText ());}

Avsluta testet

Följande kod kommer att slutföra testet genom att stoppa Selendroid-drivrutinen.

 / *** Stoppa Selendroid-drivrutinen** /@AfterSuiteoffentligogiltig tearDown () {driver.quit ();}

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

Steg 10) Anslut Android-enheten till datorn via USB-kabel. Poäng att observera -

  • Se till att enheten inte har konfigurerat något skärmlås.
  • Enheter måste anslutas via USB till den dator som den självständiga komponenten körs på.
  • Enheten ska installera minst Android Target Version API 10

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

Steg 10) Skriptet körs enligt följande

Steg 12) När testet är slutfört genererar TestNG auto testrapporten enligt följande

Bra jobbat, du är klar med testet nu.

Sammanfattning

Sammanfattning

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