selendroid tutorial android mobile test automation framework
Mobil automatisering med Selendroid (Del-I):
Hittills har miljontals appar redan utvecklats med Android som plattform och räkningen fortsätter att öka dag för dag.
Fångsten är, hur validerar jag varje app? Eftersom vi kommer att kräva dedikerade resurser som arbetskraft, riktiga enheter (säg t.ex. mobil) etc., och återigen är det en tidskrävande uppgift. Å andra sidan är Android-versionen, applikationsversionen (.apk), enhetsdimension etc. inte konstant.
Därför blir det väldigt svårt att definiera testutgångskriterier eftersom vi inte kan definiera det fullständiga testomfånget, och därmed kan exakt uppskattning av testansträngningen inte göras.
För att övervinna enhetsberoende utvecklas emulatorer som kan ge miljö i realtid, där vi kan testa applikationen utan att oroa oss för Android-versionen, enheterna och deras version. Men testning av applikationer (.apk) över emulator är fortfarande en manuell aktivitet och till och med en tidskrävande uppgift. Därför utvecklas idén om att automatisera mobiltester.
För att utföra mobilautomation utvecklas testautomatiseringsramverk som möjliggör automatisering av Android-baserad applikation med hjälp av ett skriptspråk.
Det finns många automatiseringsramar som utvecklats som Selendroid, Appium, Robotium, Espresso.
Denna handledning är uppdelad i två delar:
Handledning nr 1 : Selendroid Introduktion: Android Mobile Test Automation Framework
Handledning nr 2: Hur man använder Selendroid-ramverk för att automatisera användarinteraktioner över en mobilapplikation (kommer snart)
Vad du kommer att lära dig:
- Vad är Selendroid?
- Selendroid-komponenter
- Miljöinställning
- Skriva första skript med APK-filer över riktiga enheter
- Slutsats
- Rekommenderad läsning
Vad är Selendroid?
Selendroid är ett fantastiskt ramverktyg för mobilapplikation för Android-applikationer med flera viktiga funktioner. Selendroid är ett mycket kraftfullt automatiseringsverktyg som kan interagera med flera enheter samtidigt och en applikation kan testas utan någon ändring eller ändring med Selendroid.
Det kallas också “Selen för Android” för testning av inbyggda och hybrid mobilappar och mobilwebb.
bästa diskrensning för Windows 10
Varför Selendroid?
- Det är en öppen källkod (gratis att använda)
- Stöder selen som skriptspråk
- Stöder webbdrivrutinkompatibla språk som Java, C #, Perl
- Stöder alla Android-versioner
- Fungerar både på en emulator såväl som på den riktiga enheten
- Fungerar på en integrerad, hybrid och webbaserad applikation
- Effektivt vid körning av inbyggda applikationer och molnbaserade applikationer. eftersom det stöder selen
- Den stöder objektigenkänning med hjälp av objektegenskaper
- Lätt att implementera
- Hårdvaruenheter kan anslutas, kopplas bort från datorn under testutförandet utan att starta om eller stoppa testet. Selendroid kan känna igen de nya enheterna automatiskt. Den här funktionen kallas 'Hotplugging'
En enkel arkitektur av Selendroid
Selendroid-komponenter
Selendroid - klient
I grund och botten är det ett Java-klientbibliotek. Från denna komponent skickas HTTP & WebDriver-begäran med JSON till den fristående servern Selendroid.
Selendroid - fristående
Den här komponenten hanterar såväl olika enheter som .apk genom att installera Selendroid-servern och appen som testas. Http-förfrågan (som ska köras via verklig enhet / simulator) skickas från fristående Selendroid-server till enheten och apk under test.
Selendroid - Server
Denna server körs över enheten tillsammans med applikationen som testas. Det finns en tvåvägskommunikation mellan servern och applikationen som testas.
AndroidDriverApp
Det är en inbyggd Android-drivrutin samt en Web View-app för att testa mobilwebben.
En annan testram som heter APPI fungerar som en Selendroid.
Här är en liten jämförelse mellan båda.
Funktion | Selendroid | appium |
---|---|---|
Stöd för lägre Android-version (<4.1) | Ja | Låt bli |
Hot plugging | Ja | Låt bli |
Test av användaragent | Låt bli | Ja |
Stöd för iOS-baserad applikation | Låt bli | Ja |
Miljökrav | För Android - Mac, Linux, Windows (vilken version som helst) | För iOS - Mac OSX 107. För Android - Windows 7+, Linux, Mac OSX 107. |
Förutsättningar:
Till att börja med den avsedda publiken bör vara mycket väl medveten om att använda selen, alla IDE-verktyg som Eclipse etc. Grundläggande begrepp för programmering säger Java, C etc ... och måste vara medvetna om att använda Maven och andra TESTING-verktyg.
- Installera Intel x86 Emulator Accelerator (inte obligatoriskt) för att visa simulatorn från här
- Java SDK, JRE redan installerat i en testmiljö. Alternativt kan du ladda ner samma från här
Anteckna SDK-sökvägen när du installerar.
Ställ in miljövariablerna som finns över Min dator -> högerklicka på den -> Egenskaper -> Avancerad systeminställning
- Eclipse är redan installerat på din maskin. Om inte, kan du också ladda ner samma från här
- Selenburkfiler ska laddas ner. Du kan ladda ner detsamma härifrån också
- TestNG-burkar har redan laddats ner
- Android SDK för nedladdning och installation. Du kan också ladda ner samma från här
Anteckna Android SDK Path under installationen
När nedladdningen ANDROID_HOME bör ställas in i miljövariabler som finns över:
Min dator -> högerklicka på den -> Egenskaper -> Avancerad systeminställning
- Selendroid jar-filer ska laddas ner. Du kan också ladda ner samma från här
Kom ihåg för att ladda ner den fristående Jar-filen från Selendroid från ovanstående plats. Vanligtvis är namnet som selendroid-fristående-0.9.0-med-beroenden.jar. Hämta också en APK-fil exempel, säg selendroid-test-app-0.8.0.apk från ovanstående plats
Notera:
- Vi kan också använda maven förvar för att ge referens till alla burkar eller annars måste du ladda ner dem manuellt och bifoga det till byggvägen (Over Eclipse Project)
- Enheter / emulatorer - I Android har alla installerade applikationer .apk-tillägget. På andra sätt kan du ladda ner appar som APK Info som informerar dig om listan över applikationer installerade på din Android-enhet och dess faktiska namn, storlek etc ...
Miljöinställning
# 1) Håll APK som måste installeras på en korrekt plats
I mitt fall höll jag över det G: \ Burkar \ selendroid-test-app-0.8.0.apk
# 2) Håll sedan applikationen över projektmappen
I mitt fall är det 500: AppiumAutomation SelendroidFirst
# 3) Anslut den riktiga enheten till datorn
Se till att USB-felsökningsläget är aktiverat och att du tillåter att externa appar installeras via USB-anslutning.
Tips:
- Se USB-felsökningsinställningen som krävs för mobil, säg Redmi Note 3 från här
- Tillåt extern applikation installerad med USB säg Redmi note 3 från här
# 4) Öppna kommandotolken över Windows
Navigera till mappen där Selendroid fristående burk, liksom den nedladdade apk-filen finns.
Ange nu liknande kommando och tryck enter i kommandotolken
T.ex. java --jar selendroid-fristående-0.15.0-med-beroenden.jar -aut selendroid-test-app-0.8.0.apk
Eller java –jar selendroid-fristående-0.15.0-med-beroenden.jar
APK-fil: selendroid-test-app-0.8.0.apk
Notera: När ovanstående kommando körs, se till att APK är signerad och att den verkliga enheten är ansluten till datorn och felsökning är aktiverad över enheten.
(Notera: Klicka på bilden för en förstorad vy)
Kontrollera följande punkter över kommandotolken för att säkerställa att miljön är redo för automatisering:
- Verifiera för meddelandet 'Enhetsspecificerad med giltigt nummer'
- Verifiera för meddelandet 'servern startas i standardport säg (4444) ...'
- Verifiera för meddelandet 'Sessionen skapas ...'
Återigen kan vi alltid bekräfta om en server startas eller inte använder följande URL över någon av dina webbläsare.
t.ex. http: // localhost: 4444 / wd / hub / status
# 5) Inspektera APK-filerna
- Vi kan använda riktiga appar genom att ansluta riktiga mobila enheter
- Vi kan använda nedladdade offline APK-filer
Selendroid Inspector är användbar vid felsökning / inspektion av webbelementen i APK.
När enheten har identifierats och startats kan vi se APK (i virtuellt läge) och hitta referenser, vilket är användbart för att skriva skript, med hjälp av följande URL över någon av dina webbläsare.
T.ex: http: // localhost: 4444 / inspektör
anime tv helt gratis för dig
Här har vi skärmdumpen av applikationen som testas och vi har möjlighet att inspektera elementet också.
Eller så kan du alltid använda uiautomatorviewer för att hitta objekten från applikationen som testas.
Standardvägen för detta nämns nedan:
C: Användare admin android-sdks verktyg
C: Användare admin - Det här är platsen där jag har installerat Android SDK: er, men det kan vara annorlunda enligt den plats som specificerades under installationen.
Skriva första skript med APK-filer över riktiga enheter
Mål:
- Starta servern (på standardport säg 4444)
- Skapa en session
- Installera applikationen (.apk-fil) över den anslutna riktiga enheten
- Automatisera textfältet med lite data
- Klicka automatiskt 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); }
Slutsats
Selendroid är ett mycket kraftfullt ramverktyg för automatiseringstest som kan användas för att testa native, hybrid samt en webbapp på vilken Android-enhet som helst och en simulator.
Det stöder Hotplugging, vilket innebär att en användare kan testa flera enheter åt gången, varför parallell testkörning är möjlig över flera enheter. Den stöder olika typer av interaktioner som lång tryckning, pekåtgärder osv ...
Den enda komplexiteten med det är miljöuppsättningen, som också finns i andra ramar. När det väl är korrekt inställt kan vi få våra skript att köras utan problem.
Idel 2i denna Selendoid-handledning kommer vi att täcka - Hur man använder Selendroid-ramverk för att automatisera användarinteraktioner över en mobilapplikation.
I vår nästa artikel kommer vi att diskutera mer om pCloudy Hands-on Review Tutorial.
Rekommenderad läsning
- Fördjupade förklaringar om förmörkelser för nybörjare
- SeeTest Automation Tutorial: A Mobile Test Automation Tool Guide
- Java Collections Framework (JCF) Tutorial
- Java Reflection Tutorial med exempel
- Ranorex-handledning: Ett kraftfullt testverktyg för skrivbords-, webb- och mobilautomatisering
- Appium-handledning för testning av Android- och iOS-mobilappar
- Använda Selendroid för att automatisera användarinteraktioner över en mobilapp (del 2)
- Avancerad användning av SeeTest-automatisering i realtidsprojekt för mobil automatisering