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 -
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.
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
Varför behöver vi Selendroid?
Selendroid är ett bra testverktyg. Men du kan fortfarande tvivla på dess användbarhet.
Detta avsnitt kommer att introducera de viktiga funktionerna i Selendroid för att svara på frågan varför du behöver 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 innehåller 4 huvudkomponenter:
- 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
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)
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
Steg 2) Systemegenskaper fönster, välj fliken Avancerat -> Miljövariabler
Steg 3) I fönstret Miljö, 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 Path -> Redigera -> Lägg till följande rad efter den aktuella raden
I likhet med ANDROID_HOME, lägg till ny variabel JAVA_HOME med värde enligt nedan
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
Utgången kommer att visas enligt följande
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
.
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ö
- 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:
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 (binär APK-fil). Selendroid krävde ofta den absoluta sökvägen för denna fil
Parameter: -app [sökväg]
Till exempel:
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 - Byt port Selendroid används för att kommunicera med instrumenteringsserver. Selendroid använder port 8080 som standard
Parameter: -selendroidServerPort [portnummer]
Exempelvis
Porten är nu ändrad till 9000
- Ä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
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
- 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
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".
Vi måste utföra följande Testfall med hjälp av Selendroid
Test Cases | Skick | Förväntad utgång |
---|---|---|
|
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
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
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
Skriv com.guru.test i fältet Namn på Ny Java Paketdialog à Slutför
Ocuco-landskapet Eclipse kommer att skapa listmappar och undermappar som denna i källkodsstrukturen
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
- Namn: TestNG
- Plats: https://github.com/selendroid/selendroid
Tryck på OK -> Nästa för att installera TestNG
Steg 5) Kopiera Guru99App.apk till mappen Test App
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
Ö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"
Steg 7) Öppna filen Guru99Test.java (i exempelkoden) och ändra enligt följande
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
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
Starta en testsession genom att högerklicka på Guru99Test-projektet -> Felsöka som -> Testng Test.
En testsession startar enligt nedan
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
Använd muspekaren till varje UI-element i AUT (knapp, textfält, textetikett), varje elements ID 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: "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
- Skriv in texten "Hej Guru"
- Klicka på Visa textknapp
- Vänta lite
- 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
Steg 10) Skriptstarten exekveras enligt följande
Steg 12) Efter att testet avslutats, TestNG automatiskt genererar testrapporten enligt följande
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.