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
- 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
- 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
- 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
- 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
- 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: |
|
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 automatiskTrin 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
- Indtast teksten "Hej Guru"
- Klik på Vis tekstknap
- Vent et øjeblik
- 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.