Selendroid tutorial til begyndere med eksempel

Indholdsfortegnelse:

Anonim

Har du nogensinde udviklet en Android-applikation og offentliggjort den til Google Play? Hvad vil du gøre, hvis du får en brugeranmeldelse som -

Når du udgiver en app til Google Play, skal den testes godt for at undgå de potentielle fejl. Der er masser af testscenarier, der skal udføres, inden der udgives en app. For at gemme testindsatsen har du brug for et testværktøj. Et af de bedste testværktøjer til Android-appen er Selendroid.

  • Hvad er Selendroid?
  • Hvorfor har vi brug for Selendroid?
  • Selendroid-arkitektur
  • Kom godt i gang med Selendroid
  • Opsætning af et Selendroid-miljø
  • Sådan startes Selendroid
  • Selendroid grundlæggende kommando
  • Start din første test med Selendroid

Hvad er Selendroid?

Selendroid er en testautomatiseringsramme til multi-type mobilapplikation: native og hybrid Android-app og mobilweb .

Du kan skrive testene ved hjælp af Selenium 2-klient-API'erne. Fordi Selendroid stadig genbruger den eksisterende Selen-infrastruktur til internettet

Selendroid er et kraftfuldt testværktøj. Det kan bruges på emulatorer og ægte enheder

Hvorfor har vi brug for Selendroid?

Selendroid er et fantastisk testværktøj. Men du tvivler muligvis stadig på nytten.

Dette afsnit introducerer de vigtige funktioner i Selendroid for at besvare spørgsmålet, hvorfor du har brug for Selendroid.

  • Du kan teste applikationen under test ved hjælp af Selendroid uden nogen ændring af appen. Du skal bare have den binære fil (APK) installeret på computeren. For at installere den binære fil på enheden skal testappen og mobilappen signeres med samme tegnnøgle
  • Selendroid testapp 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 handlinger fra mennesker til brugere i en app, såsom berøring, stryg, træk og slip på enheder
  • Du kan ændre hardwareenhederne (Plug and unplug) under testen uden at genstarte eller stoppe testen. Selendroid genkender automatisk de nye enheder
  • Svarende til Android API-versionen op understøtter Selendroid også den nye Android API (Fra API 10 til API 19)
  • Selendroid har også et indbygget inspektørværktøj, der hjælper dig med at identificere UI-elementet i en applikation, der testes. For eksempel ID-knappen, tekstfelt, tekstvisning ...

Selendroid-arkitektur

Selendroid er baseret på rammerne til Android-instrumentering. Selendroid-tests er skrevet på Selenium Web-driver-klient-API'en, så det understøtter fuld integration med de nuværende Selen-rammer.

Den følgende figur beskriver Selendroid-arkitekturen

Selendroid indeholder 4 hovedkomponenter:

  • Web Driver Client - Java-klientbiblioteket baseret på Selenium. Dette bibliotek skal installeres på computeren (som bruges til at udvikle testcases)
  • Selendroid-server - Den server, der kører, er 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 til at teste mobilwebet.
  • Selendroid-standalone - Denne komponent bruges til at installere Selendroid-serveren og applikationen under test (AUT)

Kom godt i gang med Selendroid

Du har allerede kendt vigtigheden af ​​Selendroid. Lad os nu gøre vores hænder beskidte med Selendroid.

Der er 3 trin, der skal udføres før den første test med Selendroid

Opsætning af et Selendroid-miljø

Selendroid kan arbejde på Window, Linux og Mac OS. I denne vejledning konfigurerer vi Selendroid i Window OS.

Før du bruger Selendroid, skal du først installere følgende pakke

  • Java SDK (minimum 1,6)

    Du skal acceptere licensaftalen og downloade java-installationsprogrammet (Vælg x64 eller x86 base på dit operativsystem)

    Download og installer Java SDK som normal software

  • Seneste version af Android SDK
  • Din computer skal have mindst en Android Virtual Device (AVD) eller en ægte Android-enhed tilsluttet pc'en.
  • Selendroid Standalone med afhængigheder, Selendroid Client og Selenium Client
  • Formørkelsessoftware
  • Opsæt JAVA_HOME og ANDROID_HOME

    Trin 1) I Windows skal du højreklikke på Computer -> Egenskaber -> Avanceret systemindstilling

    Trin 2) Vindue til systemegenskaber, vælg fanen Avanceret -> Miljøvariabler

    Trin 3) Vinduet Miljøvindue, klik på Ny -> Indtast en variabel ANDROID_HOME som følger

    Den variable værdi er stien til android-sdks, som du allerede har installeret.

    Find systemvariablen Sti -> Rediger -> Tilføj følgende linje efter den aktuelle linje

    Svarende til ANDROID_HOME, tilføj ny variabel JAVA_HOME med værdi som nedenfor

    Værdien er stien til din Java JDK-installation

    Trin 4) Genstart din pc -> Udført

Sådan startes Selendroid

Trin 1) Sådan testes en applikation

Du kan bruge den eksisterende Selendroid-testapp til at kontrollere, hvordan Selendroid fungerer (Link til prøveapplikation under test)

Når en download er færdig, skal du kopiere denne APK og ovenstående Selendroid Standalone jar-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

Outputtet vises som følger

Efter at have kørt denne kommando, starter Selendroid-standalone HTTP-server! Standardportnummeret på denne server er 4444. Alle hardwareenheder såvel som Android Virtual Device scannes og genkendes automatisk. Selendroid identificerer Android-målversionen og enhedens skærmstørrelse.

For at kontrollere Android-målversionen samt enhedsoplysningerne kan du starte følgende URL i en browser:

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

Selendroid grundlæggende kommando

Dette afsnit introducerer dig nogle grundlæggende Selendroid-standalone kommandolinjer. Du kan bruge dem til at konfigurere Selendroid-testmiljøet

  1. Indstiller havn i Selendroid

    Standardporten til Selendroid er 4444. Men du kan skifte til anden port ved at tilføje en parameter til kommandoen for at starte Selendroid

    Parameter: -port [portnummer]

    For eksempel:

    I ovenstående kommando er 5555 den nye port.

Så URL'en til at kontrollere 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:

    I ovenstående kommando finder Selendroid automatisk den binære filbase på "C: \ Guru99App.apk" for at få oplysningerne om applikationen under test.

    Tjek URL http: // localhost: 4444 / wd / hub / status, du vil se disse oplysninger

  2. Skift porten, som Selendroid bruger til at kommunikere med instrumentationsserveren. Selendroid bruger port 8080 som standard

    Parameter: -selendroidServerPort [portnummer]

    Eksempel

    Porten ændres nu til 9000

  3. Skift timeout for at starte emulatorer. Enheden er millisekunder.

    Parameter: -timeoutEmulatorStart

    Som standard venter Selendroid 300.000 millisekunder, indtil emulatoren starter. Du kan skifte til ny timeout (200.000 ms) ved kommando

    Efter denne tid er vores udløbet, hvis emulatoren ikke kan starte, vil Selendroid kaste undtagelsesfejlen (der opstod en fejl under udkig efter enheder / emulatorer.) Stop derefter med at køre

  4. Når du starter Selendroid-kommandoen på terminalen, 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 log]

    Logniveauværdierne er FEJL, ADVARSEL, INFO, AFBRUG og VERBOSE. Standard: FEJL.

    For eksempel skal du indstille Selendroid til kun at udskrive ADVARSEL-loggen, du kan bruge denne kommando

    Selendroid udskriver kun ADVARSEL-loggen

Start din første test med Selendroid

Dette afsnit er en trinvis vejledning til oprettelse af dit første testscript ved hjælp af Selendroid

Antag, at vi har en Android-applikation under testnavnet Guru99App. Applikationen indeholder et tekstfelt og et knapnavn "Vis tekst".

DOWNLOAD APKEN HER

Vi skal udføre følgende testsag ved hjælp af Selendroid

Test tilfælde

Tilstand

Forventet output:

  1. Start applikationen
  2. Indtast en tekst " Guru99 Test " i tekstfeltet
  3. Tryk på knappen "Vis tekst"

Den binære applikation, der testes, er tilgængelig

En enhed er tilsluttet pc

Teksten "Tekst Vis her" ændres til teksten

hvilken bruger indtaster i et tekstfelt

Trin 1) Opret et Java-projekt i Eclipse

Trin 2) Tilføj selen og Selendroid jar-fil i formørkelsesmiljøer

Højreklik på Guru99Test-projektet -> Byg sti -> Tilføj eksterne arkiver

Naviger til den mappe, der lagrede 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 standalone 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

Trin 3) efter tilføjelse af ovenstående bibliotek vil disse biblioteker blive tilføjet til referencebibliotekerne i testprojektet. En tester kan bruge API'erne fra disse biblioteker til at udvikle testprogrammet

Opret pakke "com.guru.test" og tilføj java-fil "Guru99Test.java" som nedenfor

Højreklik Guru99Test -> Ny -> Pakke

Skriv com.guru.test til feltet Navn i dialogboksen Ny Java-pakke à Udfør

Formørkelsen opretter listemapper og undermapper som denne i kildekodestrukturen

Trin 4) Installer TestNG til Eclipse

I Eclipse, Hjælp -> Installer ny software. Klik på Tilføj i dialogboksen Install, og indtast følgende

  • Navn: TestNG
  • Placering: http://selendroid.io/

Tryk på OK -> Næste for at installere TestNG

Trin 5) Kopier Guru99App.apk til mappen i Test App

Trin 6) Få id'et for en applikation under test.

Antag, at vi har et APK-filnavn Guru99App.apk. Følg det trin, der er beskrevet i forrige afsnit, udfør kommandoen på terminalen

Åbn følgende link i en browser

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

Enhedens oplysninger vises, kopier appId-værdien "com.guru99app: 1.0"

Trin 7) Åbn filen Guru99Test.java (i prøvekoden), og skift som følger

For 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 den app-id, der svarer til Android-enheden, kaster testsessionen en fejl og starter ikke.

Efter initialisering af den fundne enhed opretter Selendroid en tilpasset selendroid-server og installerer Selendroid-serveren på den

Selendroid installerer også applikationen under test og starter selendroid-serveren på enheden

Efter initialisering af testsessionen er testkommandoen startet med at blive udført på en enhed. (F.eks. Indtastning af tekst, tryk på knappen

...). Hvis testen tilføjer testsessionen, stopper emulatoren automatisk

Trin 8) Start den nye testsession

Start Selendroid-serveren ved hjælp af følgende kommando på terminal som trin 6

Når Selendroid-serveren er startet, skal du åbne prøvetestprojektet Guru99test på Eclipse, indstille et brudpunkt ved linje 77 i filen Guru99Test.java ved at dobbeltklikke på linjen 77 -> En prik vises som nedenfor

Start en test session ved højre Klik for at Guru99Test projekt -> Debug Som -> TestNG Test.

En testsession starter som nedenfor

Trin 9) Få Id af GUI-elementet i en applikation under test

Når testsessionen er startet med succes, skal du åbne browseren, navigere til URL'en http: // localhost: 4444 / inspector

Du vil se, at applikationen under test lanceres som nedenfor

Brug musen med musen over hvert UI-element i AUT (Button, TextField, Text Label), id for hvert element fremhæves i højre rude

Efter dette trin kan du få ID'et for hvert ovenstående UI-element

  • Knap Vis tekst-id: " btnShow "
  • Tekstfelt-id: " edtText "
  • Etikettekst-id: " txtView "

Disse ID'er vil blive brugt i næste trin

Trin 10) Indtast testprogrammet som nedenfor

Et testprogram, der bruger Selendroid, indeholder 3 sektioner

Opsætningstest:

Følgende er koden til opsætningstest, den indstiller betingelsen for en testsession. I tilfælde af en fejl kaster Selendroid undtagelsen, og testappen stopper.

Koden indeholder kommentarerne for at forklare hver erklæring.

pakke com.guru.test;import io.selendroid.SelendroidCapabilities;import io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;import io.selendroid.SelendroidLauncher;import io.selendroid.device.DeviceTargetPlatform;importer 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;/ *** @forfatter Guru99 Test-app ved hjælp af Selendroid* Ansøgning under test: Guru99App** /offentligklasse Guru99Test {// Erklær variabel for webdriverprivat WebDriver-driver;/ *** Opsæt miljøet før test* @kaster undtagelse* /@BeforeSuiteoffentligugyldig setUp () kaster undtagelse {// Start selendroid-standalone under testenSelendroidConfiguration config = ny SelendroidConfiguration ();// Føj selendroid-test-appen til den enkeltstående serverconfig.addSupportedApp ("Guru99App.apk");// start den enkeltstående serverSelendroidLauncher selendroidServer = ny SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Opret selendroid-funktionerneSelendroidCapabilities capa = ny SelendroidCapabilities ();// Angiv for at bruge selendroids testappcapa.setAut ("com.guru99app: 1.0");// Angiv for at bruge Android-enhedens API 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Spørg ikke simulator, brug ægte enhedcapa.setEmulator (falsk);//capa.wait(10000000);// Opret forekomst af Selendroid Driverdriver = ny SelendroidDriver (capa);}

Udfør test

Nedenfor er koden til at udføre en test. Koden indeholder kommentarer

Her er testtrinnene 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. Viser teksten "Hej guru")
 / *** Start med at udføre testsagen* 01. Indtast teksten "Selendroid" i tekstfeltet* 02. Tryk på OK-knappen* @kaster undtagelse* /@Prøveoffentligugyldigt selendroidTest () kaster undtagelse {// Udskriv logfilenSystem.out.print ("Start udførelse af test");// Find inputtekstfeltet på skærmen// Idet til dette tekstfelt var fra trin 9WebElement inputField = driver.findElement (By.id ("edtText"));// Kontroller, at tekstfeltet er aktiveret, så brugeren kan indtaste tekstAssert.assertEquals ("true", inputField.getAttribute ("aktiveret"));// Indtast et tekstfelt til tekstinputField.sendKeys ("Hej Guru");// klik på knappen Vis tekst// Id for denne knap var fra trin 9WebElement-knap = driver.findElement (By.id ("btnShow"));button.click ();// Forsink tid til at træde i kraftTråd. Søvn (5000);// Find etiketten "Tekst Vis her" på skærmen// Id'et på denne etiket var fra trin 9WebElement txtView = driver.findElement (By.id ("txtView"));// Få tekstvisning på skærmenStreng forventet = txtView.getText ();// Kontroller, at teksten, som brugeren indtaster i tekstfeltet, er den samme som tekstvisning på skærmenAssert.assertEquals (forventet, inputField.getText ());}

Afslut test

Den følgende kode fuldfører testen ved at stoppe Selendroid-driveren.

 / *** Stop Selendroid-driveren** /@AfterSuiteoffentligugyldigt tearDown () {driver.quit ();}

Du kan se detaljerne i eksempelkode, der er inkluderet i denne artikel.

Trin 10) Tilslut Android-enhed til pc'en via USB-kabel. Point at overholde -

  • Sørg for, at enheden ikke har konfigureret nogen skærmlås.
  • Enheder skal tilsluttes via USB til computeren, som selendroid-standalone-komponenten kører på.
  • Enheden skal mindst installere Android Target Version API 10

Trin 11) Kør testappen: Højreklik på Guru99test -> Kør som -> TestNG-test

Trin 10) Scriptet startes som følger

Trin 12) Når testen er udført, genererer TestNG auto testrapporten som følger

Godt arbejde, du er færdig med testen nu.

Resumé

Resumé

  • Selendroid er et meget kraftfuldt værktøj til at teste Android native app, hybrid-appen såvel som webappen.
  • Det kan bruges på rigtige enheder såvel som på simulatoren.
  • Det giver dig også mulighed for at køre tests parallelt ved at køre en test på flere enheder.
  • Hele Selendroid-pakken består af fire komponenter:
    • Web Driver-klient,
    • Selendroid-server,
    • Android Driver-app
    • Selendroid-stå alene
  • For at bruge Selendroid skal du have installeret Java JDK, Android SDK og Eclipse.