Selendroid opplæring for nybegynnere med eksempel

Innholdsfortegnelse:

Anonim

Har du noen gang utviklet en Android-applikasjon og publisert den på Google Play? Hva vil du gjøre hvis du får en brukeranmeldelse som -

Når du publiserer en app til Google Play, må den testes godt for å unngå potensielle feil. Det er mange testscenarier som skal utføres før du publiserer en app. For å lagre testinnsatsen trenger du et testverktøy. Et av de beste testverktøyene for Android-appen er Selendroid.

  • Hva er Selendroid?
  • Hvorfor trenger vi Selendroid?
  • Selendroid Architecture
  • Komme i gang med Selendroid
  • Sette opp et Selendroid-miljø
  • Hvordan starte Selendroid
  • Selendroid grunnleggende kommando
  • Start din første test med Selendroid

Hva er Selendroid?

Selendroid er et testautomatiseringsrammeverk for flere typer mobilapplikasjoner: native og hybrid Android-app og mobilnett .

Du kan skrive testene ved hjelp av Selenium 2-klient-APIene. Fordi Selendroid fortsatt bruker den eksisterende Selen-infrastrukturen på nettet

Selendroid er et kraftig testverktøy. Den kan brukes på emulatorer og ekte enheter

Hvorfor trenger vi Selendroid?

Selendroid er et flott testverktøy. Men du kan fortsatt tvile på nytten.

Denne delen vil introdusere de viktige funksjonene i Selendroid for å svare på spørsmålet hvorfor du trenger Selendroid.

  • Du kan teste applikasjonen under test ved hjelp av Selendroid uten noen endring av appen. Du trenger bare den binære filen (APK) installert på datamaskinen. For å installere den binære filen på enheten, må testappen og mobilappen signeres med samme tegnnøkkel
  • Selendroid testapp kan samhandle med flere enheter eller simulatorer samtidig. Det er en stor fordel med Selendroid. Så du kan teste appen din med forskjellige Android-enheter for å sjekke kompatibilitet.
  • Selendroid kan simulere handlinger fra en bruker på en app, for eksempel berøring, sveipe, dra og slipp på enheter
  • Du kan endre maskinvareenhetene (plugge og koble fra) under testingen uten å starte eller stoppe testen. Selendroid gjenkjenner de nye enhetene automatisk
  • Tilsvarende Android API-versjonen opp, støtter Selendroid også den nye Android API (Fra API 10 til API 19)
  • Selendroid har også noe innebygd inspektørverktøy som hjelper deg med å identifisere UI-elementet i en applikasjon som testes. For eksempel ID-knappen, tekstfeltet, tekstvisningen ...

Selendroid Architecture

Selendroid er basert på rammeverket for Android-instrumentering. Selendroid-tester er skrevet på Selenium Web Driver Client API, slik at den støtter full integrasjon med gjeldende Selen-rammer.

Følgende figur beskriver arkitekturen til Selendroid

Selendroid inneholder 4 hovedkomponenter:

  • Web Driver Client - Java-klientbiblioteket basert på Selenium. Dette biblioteket skal installeres på datamaskinen (som brukes til å utvikle testtilfellene)
  • Selendroid-server - Serveren som kjører, er i appen som testes på Android-enhet eller simulator. Dette er hovedkomponentene i en Selendroid-arkitektur
  • Android Driver-App - En innebygd Android-driver, Web View-app for å teste mobilnettet.
  • Selendroid-frittstående - Denne komponenten brukes til å installere Selendroid-serveren og applikasjonen under test (AUT)

Komme i gang med Selendroid

Du har allerede kjent viktigheten av Selendroid. La oss nå gjøre hendene skitne med Selendroid.

Det er tre trinn som skal gjøres før den første testen med Selendroid

Sette opp et Selendroid-miljø

Selendroid kan fungere på Window, Linux og Mac OS. I denne opplæringen vil vi sette opp Selendroid i Window OS.

Før du bruker Selendroid, må du installere følgende pakke først

  • Java SDK (minimum 1,6)

    Du må godta lisensavtalen og laste ned java-installasjonsprogrammet (Velg x64 eller x86 base på operativsystemet ditt)

    Last ned og installer Java SDK som vanlig programvare

  • Siste versjon av Android SDK
  • Datamaskinen din må ha minst en Android Virtual Device (AVD), eller en ekte Android-enhet koblet til PCen.
  • Selendroid frittstående med avhengigheter, Selendroid Client og Selenium Client
  • Formørkelsesprogramvare
  • Sett opp JAVA_HOME og ANDROID_HOME

    Trinn 1) Høyreklikk Datamaskin -> Egenskaper -> Avansert systeminnstilling i Window

    Trinn 2) Skjermbildet Systemegenskaper, velg fanen Avansert -> Miljøvariabler

    Trinn 3) Skjermbildet Miljøvindu, klikk Ny -> Skriv inn en variabel ANDROID_HOME som følger

    Variabelverdien er banen til android-sdks som du allerede har installert.

    Finn systemvariabelen Sti -> Rediger -> Legg til følgende linje etter gjeldende linje

    I likhet med ANDROID_HOME, legg til ny variabel JAVA_HOME med verdi som nedenfor

    Verdien er banen til Java JDK-installasjonen

    Trinn 4) Start PCen på nytt -> Ferdig

Hvordan starte Selendroid

Trinn 1) Få en søknad under test

Du kan bruke eksisterende Selendroid testapp for å sjekke at hvordan Selendroid fungerer (lenke til prøveprogram under test)

Når en nedlasting er fullført, kopierer du denne APK-filen og ovennevnte Selendroid frittstående jar-fil til en mappe med navnet " Guru99"

Trinn 2) Start Selendroid

Åpne terminalen på Windows og naviger til mappen Guru99 opprettet i trinn 1.

Kjør følgende kommando

Utgangen vises som følger

Etter å ha kjørt denne kommandoen, starter Selendroid-frittstående HTTP-server! Standard portnummer på denne serveren er 4444. Alle maskinvareenheter, så vel som Android Virtual Device, skannes og gjenkjennes automatisk. Selendroid vil identifisere Android-målversjonen og enhetens skjermstørrelse.

For å sjekke Android-målversjonen samt enhetsinformasjonen, kan du starte følgende URL i en nettleser:

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

Selendroid grunnleggende kommando

Denne delen introduserer deg noen grunnleggende Selendroid-frittstående kommandolinje. Du kan bruke dem til å konfigurere Selendroid-testmiljøet

  1. Innstilling av havnen i Selendroid

    Standardporten til Selendroid er 4444. Men du kan bytte til annen port ved å legge til en parameter i kommandoen for å starte Selendroid

    Parameter: -port [portnummer]

    For eksempel:

    I kommandoen ovenfor er 5555 den nye porten.

Så URL-en for å sjekke Android-målversjonen er endret til: http: // localhost: 5555 / wd / hub / status

  1. Angi plasseringen til applikasjonen som testes (Binary APK-fil). Selendroid krevde ofte den absolutte banen for denne filen

    Parameter: -app [filsti]

    For eksempel:

    I kommandoen ovenfor finner Selendroid automatisk den binære filbasen på "C: \ Guru99App.apk" for å få informasjon om applikasjonen under test.

    Sjekk URL http: // localhost: 4444 / wd / hub / status, du vil se denne informasjonen

  2. Endre porten Selendroid bruker til å kommunisere med instrumentasjonsserveren. Selendroid bruker port 8080 som standard

    Parameter: -selendroidServerPort [portnummer]

    Eksempel

    Porten er nå endret til 9000

  3. Endre tidsavbrudd for å starte emulatorer. Enheten er millisekunder.

    Parameter: -timeoutEmulatorStart

    Som standard venter Selendroid 300 000 millisekunder til emulatoren starter. Du kan bytte til ny tidsavbrudd (200 000 ms) etter kommando

    Etter denne tiden, hvis emulatoren ikke kan starte, vil Selendroid kaste unntaksfeilen (feil oppstod mens du lette etter enheter / emulatorer.) Og deretter slutte å kjøre

  4. Når du starter Selendroid-kommandoen på terminalen, vil du se en logg skrevet ut på skjermen. Du kan endre loggtypen du ser ved å legge til følgende parameter

    Parameter: -logLevel [type logg]

    Loggnivåverdiene er FEIL, ADVARSEL, INFO, DEBUG og VERBOSE. Standard: FEIL.

    Sett for eksempel Selendroid til å bare skrive ut ADVARSEL-loggen, du kan bruke denne kommandoen

    Selendroid skriver bare ut ADVARSEL-loggen

Start din første test med Selendroid

Denne delen er en trinnvis guide for å lage ditt første testskript ved hjelp av Selendroid

Anta at vi har en Android-applikasjon under testnavnet Guru99App. Søknaden inneholder et tekstfelt og et knappnavn "Vis tekst".

LAST NED APK-en HER

Vi må utføre følgende tilfelle ved bruk av Selendroid

Test tilfeller

Betingelse

Forventet utgang:

  1. Start applikasjonen
  2. Skriv inn en tekst " Guru99 Test " i tekstfeltet
  3. Trykk på "Vis tekst" -knappen

Binærprogrammet til applikasjonen som testes er tilgjengelig

En enhet er koblet til PC

Teksten "Tekst Vis her" endres til teksten

hvilken bruker som skriver inn i et tekstfelt

Trinn 1) Opprett et Java-prosjekt i Eclipse

Trinn 2) Legg til selen og Selendroid jar-fil i formørkelsesmiljøer

Høyreklikk Guru99Test Project -> Build Path -> Add External Archives

Naviger til mappen som lagret jar-filene

Det er tre jar-filer som skal legges til

  • selendroid-client-0.10.0.jar: Selendroid java-klientbibliotek
  • selendroid-frittstående-0.11.0-med-avhengigheter: Selendroid frittstående serverbibliotek
  • selen-java-2.40.0.jar: Selenium Web Driver-bibliotek

Velg alt -> Velg Åpne for å legge til en jar-fil til prosjektet

Trinn 3) etter å ha lagt til biblioteket ovenfor, vil disse bibliotekene legges til i referansebibliotekene til testprosjektet. En tester kan bruke API-ene til disse bibliotekene for å utvikle testprogrammet

Lag pakken "com.guru.test" og legg til java-filen "Guru99Test.java" som nedenfor

Høyreklikk Guru99Test -> Ny -> Pakke

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

Formørkelsen vil lage listemapper og undermapper som dette i kildekodestrukturen

Trinn 4) Installer TestNG for Eclipse

I Eclipse, Hjelp -> Installer ny programvare, i dialogboksen Install, klikk Legg til og skriv inn følgende

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

Trykk på OK -> Neste for å installere TestNG

Trinn 5) Kopier Guru99App.apk til mappen til Test App

Trinn 6) Få IDen til en applikasjon under test.

Anta at vi har et APK-filnavn Guru99App.apk. Følg trinnet som er beskrevet i forrige avsnitt, utfør kommandoen på terminalen

Åpne følgende lenke i en nettleser

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

Informasjonen til enheten vises, kopier appId-verdien "com.guru99app: 1.0"

Trinn 7) Åpne filen Guru99Test.java (i eksempelkoden) og endre som følger

For å opprette en ny testøkt med Selendroid, må du oppgi app-ID-en i formatet: com.guru99app: 1.0. Denne app-ID-en kan identifiseres i trinn 6. Hvis du ikke angir app-ID-en som samsvarer med Android-enheten, vil testøkten kaste en feil og vil ikke starte.

Etter initialisering av den funnet enheten, oppretter Selendroid en tilpasset selendroid-server og installerer Selendroid-serveren på den

Selendroid installerer også applikasjonen under test og starter selendroid-serveren på enheten

Etter at initialiseringen av testøkten er vellykket, startes testkommandoen på en enhet. (For eksempel å skrive inn tekst, trykk på knappen

...). Hvis testen vedlegger testøkten, stopper emulatoren automatisk

Trinn 8) Start den nye testøkten

Start Selendroid-serveren ved hjelp av følgende kommando på terminalen som trinn 6

Etter at Selendroid Server startet, åpner du prøveprøveprosjektet Guru99test på Eclipse, setter et brytpunkt ved linje 77 på filen Guru99Test.java ved å dobbeltklikke på linjen 77 -> En prikk vises som nedenfor

Start en testøkt ved å høyreklikke på Guru99Test-prosjektet -> Feilsøk som -> Testng-test.

En testøkt starter som nedenfor

Trinn 9) Få ID for GUI-elementet til en applikasjon under test

Etter at testøkten har startet, åpner du nettleseren, navigerer til URL-en http: // localhost: 4444 / inspector

Du vil se Application Under Test lanseres som nedenfor

Bruk musepekeren til hvert UI-element i AUT (Button, TextField, Text Label), ID for hvert element vil markeres i høyre rute

Etter dette trinnet kan du få ID for hvert over UI-element

  • Knapp Vis tekst-ID: " btnShow "
  • Tekstfelt- ID: " edtText "
  • ID for etiketttekst : " txtView "

Disse ID-ene vil bli brukt i neste trinn

Trinn 10) Gå inn i testprogrammet som nedenfor

Et testprogram som bruker Selendroid inneholder tre seksjoner

Oppsett Test:

Følgende er koden for installasjonstest, den vil sette opp tilstanden for en testøkt. I tilfelle en feil vil Selendroid kaste unntaket og testappen stopper.

Koden inneholder kommentarene for å forklare hver uttalelse.

pakke com.guru.test;importere io.selendroid.SelendroidCapabilities;importere io.selendroid.SelendroidConfiguration;importere io.selendroid.SelendroidDriver;importere io.selendroid.SelendroidLauncher;importer io.selendroid.device.DeviceTargetPlatform;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.WebElement;importer org.testng.Assert;importer org.testng.annotations.AfterSuite;importer org.testng.annotations.BeforeSuite;importer org.testng.annotations.Test;/ *** @forfatter Guru99 Test App ved hjelp av Selendroid* Søknad under test: Guru99App** /offentligklasse Guru99Test {// Erklære variabel for nettdriverprivat WebDriver-driver;/ *** Sett opp miljøet før testing* @kaster unntak* /@BeforeSuiteoffentligugyldig setUp () kaster unntak {// Start selendroid-frittstående under testenSelendroidConfiguration config = ny SelendroidConfiguration ();// Legg til selendroid-test-appen til den frittstående serverenconfig.addSupportedApp ("Guru99App.apk");// start den frittstående serverenSelendroidLauncher selendroidServer = ny SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Opprett selendroid-funksjoneneSelendroidCapabilities capa = nye SelendroidCapabilities ();// Spesifiser for å bruke selendroids testappcapa.setAut ("com.guru99app: 1.0");// Spesifiser for å bruke Android-enhetens API 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Ikke be om simulator, bruk ekte enhetcapa.setEmulator (false);//capa.wait(10000000);// Opprett forekomst av Selendroid Driverdriver = ny SelendroidDriver (capa);}

Utfør test

Nedenfor er koden for å utføre en test. Koden inneholder kommentarene

Her er testtrinnene igjen

  1. Skriv inn teksten "Hello Guru"
  2. Klikk på Vis tekst-knapp
  3. Vent en stund
  4. Bekreft at appen viser teksten når brukeren går inn i et tekstfelt (Eks. Vis teksten "Hallo guru")
 / *** Begynn å utføre testsaken* 01. Skriv inn teksten "Selendroid" i tekstfeltet* 02. Trykk på OK-knappen* @kaster unntak* /@Testoffentligugyldig selendroidTest () kaster unntak {// Skriv ut loggenSystem.out.print ("Start kjøring av test");// Finn inntastingsfeltet på skjermen// IDen til dette tekstfeltet var fra trinn 9WebElement inputField = driver.findElement (By.id ("edtText"));// Bekreft at tekstfeltet er aktivert slik at brukeren kan skrive inn tekstAssert.assertEquals ("true", inputField.getAttribute ("aktivert"));// Skriv inn et tekst til tekstfeltinputField.sendKeys ("Hello Guru");// klikk på Vis tekst-knappen// IDen til denne knappen var fra trinn 9WebElement-knapp = driver.findElement (By.id ("btnShow"));button.click ();// Forsink tid til å tre i kraftTråd. Søvn (5000);// Finn etiketten "Text Show Here" på skjermen// IDen til denne etiketten var fra trinn 9WebElement txtView = driver.findElement (By.id ("txtView"));// Få tekstvisning på skjermenStreng forventet = txtView.getText ();// Bekreft at teksten som brukeren skriver inn i tekstfeltet er den samme som tekstvisning på skjermenAssert.assertEquals (forventet, inputField.getText ());}

Avslutt test

Følgende kode fullfører testen ved å stoppe Selendroid-driveren.

 / *** Stopp Selendroid-driveren** /@AfterSuiteoffentligugyldig tearDown () {driver.quit ();}

Du kan se detaljene i eksempelkoden som er inkludert i denne artikkelen.

Trinn 10) Koble Android-enheten til PC-en via USB-kabel. Poeng å observere -

  • Forsikre deg om at enheten ikke har noen skjermlås konfigurert.
  • Enheter må kobles til via USB til datamaskinen som den selvstendige komponenten kjører på.
  • Enheten skal installere minst Android Target Version API 10

Trinn 11) Kjør testappen: Høyreklikk Guru99test -> Kjør som -> TestNG-test

Trinn 10) Skriptet startes som følger

Trinn 12) Etter at testen er fullført, genererer TestNG auto testrapporten som følger

God jobb, du er ferdig med testen nå.

Sammendrag

Sammendrag

  • Selendroid er et veldig kraftig verktøy for å teste Android native app, hybrid-appen samt webappen.
  • Den kan brukes på ekte enheter så vel som på simulatoren.
  • Det lar deg også kjøre tester parallelt ved å kjøre en test på flere enheter.
  • Hele Selendroid-suiten består av fire komponenter:
    • Web Driver-klient,
    • Selendroid-server,
    • Android Driver-app
    • Selendroid-stå alene
  • For å bruke Selendroid trenger du Java JDK, Android SDK og Eclipse installert.