selendroid tutorial android mobile test automation framework
Mobil automatisering ved hjælp af Selendroid (del-I):
Indtil nu er millioner af apps allerede blevet udviklet ved hjælp af Android som en platform, og optællingen fortsætter med at stige dag for dag.
Fangsten er, hvordan valideres hver eneste app? Da vi vil kræve dedikerede ressourcer som arbejdskraft, rigtige enheder (f.eks. Mobil) osv., Og igen er det en tidskrævende opgave. På den anden side er Android-version, applikationsversion (.apk), enhedsdimension osv. Ikke konstant.
Derfor bliver det meget svært at definere testudgangskriterier, da vi ikke kan definere det komplette testomfang, hvorved nøjagtig testindsats estimering ikke kan udføres.
For at overvinde enhedens afhængighed udvikles emulatorer, der kan give miljø i realtid, hvor vi kan teste applikationen uden at bekymre os om Android-versionen, enhederne og deres version. Men stadig test af applikationer (.apk) over emulator er en manuel aktivitet og en tidskrævende opgave, selv. Derfor udvikles ideen om automatisering af mobil test.
.net spørgsmål om webserviceservices
For at udføre mobilautomation udvikles rammen om testautomatisering, som muliggør automatisering af Android-baseret applikation ved hjælp af et script-sprog.
Der er mange automatiseringsrammer udviklet som Selendroid, Appium, Robotium, Espresso.
Denne tutorial er opdelt i to dele:
Vejledning nr. 1 : Selendroid Introduktion: Android Mobile Test Automation Framework
Tutorial # 2: Sådan bruges Selendroid framework til at automatisere brugerinteraktioner over en mobilapplikation (kommer snart)
Hvad du vil lære:
- Hvad er Selendroid?
- Selendroid-komponenter
- Opsætning af miljøet
- Skrivning af første script ved hjælp af APK-filer over rigtige enheder
- Konklusion
- Anbefalet læsning
Hvad er Selendroid?
Selendroid er et fantastisk rammeværktøj til Android-applikationer til testautomatisering med flere vigtige funktioner. Selendroid er et meget kraftfuldt automatiseringsværktøj, der kan interagere med flere enheder samtidigt, og en applikation kan testes uden ændringer eller ændringer ved hjælp af Selendroid.
Det kaldes også “Selen til Android” til test af native og hybrid mobile apps og mobilweb.
Hvorfor Selendroid?
- Det er en open source (gratis at bruge)
- Understøtter selen som et script-sprog
- Understøtter webdriver kompatible sprog som Java, C #, Perl
- Understøtter alle Android-versioner
- Fungerer både på en emulator såvel som den rigtige enhed
- Arbejder på en native, hybrid og webbaseret applikation
- Effektiv under udførelse af indfødte applikationer samt skybaseret applikation. da det understøtter selenet
- Det understøtter genkendelse af objekter ved hjælp af objektegenskaber
- Let at implementere
- Hardwareenheder kan tilsluttes, frakobles fra pc'en under testudførelse uden at genstarte eller stoppe testen. Selendroid kan automatisk genkende de nye enheder. Denne funktion kaldes “Hotplugging”
En simpel arkitektur af Selendroid
Selendroid-komponenter
Selendroid - klient
Dybest set er det et java-klientbibliotek. Fra denne komponent sendes HTTP- og WebDriver-anmodningen ved hjælp af JSON til Selendroid Standalone-serveren.
Selendroid - uafhængig
Denne komponent styrer forskellige enheder såvel som .apk'erne ved at installere Selendroid-serveren og den app, der testes. Http-anmodningen (udføres over ægte enhed / simulator) sendes fra Selendroid standalone server til enheden og apk'en under test.
Selendroid - Server
Denne server kører over enheden sammen med den applikation, der testes. Der er en tovejskommunikation mellem serveren såvel som applikationen, der testes.
AndroidDriverApp
Det er en indbygget Android-driver såvel som en Web View-app til at teste mobilwebet.
En anden testramme navngivet som APPI fungerer som en Selendroid.
Her er en lille sammenligning mellem de to.
Funktion | Selendroid | appium |
---|---|---|
Understøttelse af lavere Android-version (<4.1) | Ja | Lade være med |
Hot plugging | Ja | Lade være med |
Test af brugeragent | Lade være med | Ja |
Support til iOS-baseret applikation | Lade være med | Ja |
Miljøkrav | Til Android - Mac, Linux, Windows (enhver version) | Til iOS - Mac OSX 107. Til Android - Windows 7+, Linux, Mac OSX 107. |
Forudsætninger:
Til at begynde med det tilsigtede publikum skal være meget opmærksom på at bruge selen, ethvert IDE-værktøj som Eclipse osv. Grundlæggende begreber ved programmering siger Java, C osv ... og skal være opmærksomme på at bruge Maven og andre TESTING-værktøjer.
- Installer Intel x86 Emulator Accelerator (ikke obligatorisk) for at se simulatoren fra her
- Java SDK, JRE allerede installeret i et testmiljø. Alternativt kan du downloade det samme fra her
Noter SDK-stien under installationen.
Indstil miljøvariablerne til stede over denne computer -> højreklik på den -> Egenskaber -> Advance System Setting
- Eclipse er allerede installeret på din maskine. Hvis ikke, kan du også downloade det samme fra her
- Selen jar-filer skal downloades. Du kan downloade det samme herfra også
- TestNG-krukker er allerede downloadet
- Android SDK skal downloades og installeres. Du kan også downloade det samme fra her
Noter Android SDK-stien under installationen
Når det er downloadet, skal ANDROID_HOME indstilles i de miljøvariabler, der findes over:
Min computer -> højreklik på den -> Egenskaber -> Advance System Setting
- Selendroid jar-filer skal downloades. Du kan også downloade det samme fra her
Husk for at downloade Selendroid standalone jar-filen fra ovenstående placering. Normalt er navnet som selendroid-standalone-0.9.0-with-dependencies.jar. Download også en prøve APK-fil, siger selendroid-test-app-0.8.0.apk fra ovenstående placering
Bemærk:
- Vi kan også bruge maven arkiv for at give henvisningen til alle krukkerne, ellers skal du downloade dem manuelt og vedhæfte det til byggestien (Over Eclipse Project)
- Enheder / emulatorer - I android vil alle de installerede applikationer have .apk-udvidelsen. På andre måder kan du downloade apps som APK Info, der informerer dig om listen over applikationer installeret på din Android-enhed og dens faktiske navn, størrelse osv ...
Opsætning af miljøet
# 1) Opbevar APK'en, der skal installeres over en korrekt placering
I mit tilfælde holdt jeg det over G: \ Krukker \ selendroid-test-app-0.8.0.apk
# 2) Hold derefter applikationen over projektmappen
I mit tilfælde er det 500: AppiumAutomation SelendroidFirst
# 3) Tilslut den rigtige enhed til pc'en
Sørg for, at USB-fejlretningstilstand er aktiveret, og at du også tillader eksterne apps at blive installeret via USB-forbindelse.
Tips:
- Se USB-fejlretningsindstillingen, der kræves for mobil, siger Redmi Note 3 fra her
- Tillad, at ekstern applikation installeres ved hjælp af USB, siger Redmi note 3 fra her
# 4) Åbn kommandoprompten over Windows
Naviger til mappen, hvor Selendroid standalone jar samt den downloadede apk-fil er til stede.
Angiv nu den lignende kommando, og tryk på enter i kommandoprompten
youtube til mp4 konverter gratis online uden download
For eksempel. java --jar selendroid-standalone-0.15.0-med-afhængigheder.jar -aut selendroid-test-app-0.8.0.apk
Eller java –jar selendroid-standalone-0.15.0-with-dependencies.jar
APK-fil: selendroid-test-app-0.8.0.apk
Bemærk: Når ovenstående kommando udføres, skal du sørge for, at APK er signeret, og at den rigtige enhed er forbundet til pc'en, og fejlretning er aktiveret over enheden.
(Bemærk: Klik på billedet for at se et forstørret billede)
Kontroller følgende punkter over kommandoprompten for at sikre, at miljøet er klar til automatisering:
- Bekræft for meddelelsen 'Enhed angivet med gyldigt nummer'
- Bekræft for meddelelse 'serveren er startet i standardport siger (4444) ...'
- Bekræft for meddelelsen 'Session oprettes ...'
Igen kan vi altid bekræfte, om en server er startet eller ikke bruger følgende URL over nogen af dine webbrowsere.
for eksempel. http: // localhost: 4444 / wd / hub / status
# 5) Inspektion af APK'erne
- Vi kan bruge rigtige apps ved at forbinde rigtige mobile enheder
- Vi kan bruge downloadede offline APK-filer
Selendroid Inspector er nyttig til fejlfinding / inspektion af webelementerne i APK.
Når enheden er identificeret og startet, kan vi se APK (i virtuel tilstand) og finde referencerne, hvilket er nyttigt til at skrive scripts ved hjælp af følgende URL over en af dine webbrowsere.
For eksempel: http: // localhost: 4444 / inspektør
Her har vi skærmbilledet af den applikation, der testes, og vi har også mulighed for at inspicere elementet.
Eller du kan altid bruge uiautomatorviewer for at finde objekterne fra den applikation, der testes.
Standardstien til dette er nævnt nedenfor:
C: Brugere admin android-sdks værktøjer
C: Brugere admin - Dette er det sted, hvor jeg har installeret Android SDK'er, men det kan være forskelligt fra den placering, der er angivet under installationen.
Skrivning af første script ved hjælp af APK-filer over rigtige enheder
Objektiv:
- Start serveren (på standardport siger 4444)
- Opret en session
- Installer applikationen (.apk-fil) over den tilsluttede rigtige enhed
- Automatiser tekstfeltet med nogle data
- Klik automatisk på knappen
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); }
Konklusion
Selendroid er et meget kraftfuldt rammeværktøj til automatiseringstest, der kan bruges til at teste native, hybrid såvel som en webapp på enhver Android-enhed såvel som en simulator.
Det understøtter Hotplugging, hvilket betyder, at en bruger kan få testet flere enheder ad gangen, hvorfor parallel testudførelse er mulig på tværs af flere enheder. Det understøtter forskellige slags interaktioner som langt tryk, berøringshandlinger osv ...
Eneste kompleksitet med det er miljøopsætningen, som også er der i andre rammer. Når det er konfigureret korrekt, kan vi have vores scripts kørende uden problemer.
Idel 2i denne Selendoid-tutorial, vil vi dække - Sådan bruges Selendroid-rammen til at automatisere brugerinteraktioner over en mobilapplikation.
I vores næste artikel vil vi diskutere mere om pCloudy Hands-on Review Tutorial.
Anbefalet læsning
- Dybdegående formørkelsesvejledninger til begyndere
- SeeTest Automation Tutorial: En mobil testautomatiseringsværktøjsvejledning
- Java Collections Framework (JCF) vejledning
- Java Reflection Tutorial med eksempler
- Ranorex Tutorial: Et kraftfuldt testværktøj til desktop, web og mobil automatisering
- Appium-vejledning til test af Android- og iOS-mobilapps
- Brug af Selendroid til at automatisere brugerinteraktioner via en mobilapp (del 2)
- Avanceret brug af SeeTest-automatisering på realtids-mobilautomationsprojekt