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
- 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
- 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
- Ä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
- Ä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
- 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: |
|
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 automatisktSteg 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
- Ange texten "Hello Guru"
- Klicka på Visa textknappen
- Vänta lite
- 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.