Selendroid Tutorial voor beginners met voorbeeld

Heeft u ooit een Android applicatie en publiceer deze naar Google Spelen? Wat doe je als je een gebruikersrecensie krijgt zoals โ€“

Selendroid Tutorial

Wanneer je een app publiceert naar Google Een app moet grondig getest worden om potentiรซle bugs te voorkomen. Er zijn talloze testscenario's die uitgevoerd moeten worden voordat een app gepubliceerd wordt. Om dat te voorkomen, Testen inspanning, heb je een testtool nodig. Een van de beste testtools voor Android app is Selendroid.

Wat is Selendroid?

Selendroid is een testautomatiseringsframework voor meerdere soorten mobiele applicaties: inheemse en hybride Android app en mobiel web.

Wat is Selendroid

U kunt de tests schrijven met behulp van de Selenium 2 client-API's. Omdat Selendroid nog steeds hergebruik van het bestaande Selenium infrastructuur voor het internet

Selendroid is een krachtig testinstrument. Het kan worden gebruikt op emulators en echt apparaten

Wat is Selendroid

Waarom hebben we nodig Selendroid?

Selendroid is een geweldig testinstrument. Maar misschien twijfel je nog steeds aan het nut ervan.

Waarom hebben we nodig Selendroid

In dit gedeelte worden de belangrijkste kenmerken van de Selendroid om de vraag te beantwoorden waarom je dat nodig hebt Selendroid.

Waarom hebben we nodig Selendroid

  • U kunt de te testen toepassing testen met behulp van Selendroid zonder enige wijziging van de app. Je hebt alleen het binaire bestand nodig (APK) op de computer geรฏnstalleerd. Om het binaire bestand op het apparaat te installeren, moeten de testapp en de mobiele app met dezelfde tekensleutel worden ondertekend
  • Selendroid test-app kan tegelijkertijd met meerdere apparaten of simulatoren communiceren. Het is een groot voordeel van Selendroid. U kunt uw app dus met verschillende testen Android apparaten om de compatibiliteit te controleren.
  • Selendroid kan menselijke gebruikersacties op een app simuleren, zoals aanraken, vegen, slepen en neerzetten op apparaten
  • U kunt de hardwareapparaten tijdens het testen wijzigen (aansluiten en loskoppelen) zonder de computer opnieuw op te starten of te stoppen.ping de test. Selendroid herkent de nieuwe apparaten automatisch
  • overeenkomend met de Android API-versie omhoog, Selendroid ondersteunt ook het nieuwe Android API (van API 10 tot API 19)
  • Selendroid heeft ook een ingebouwde inspecteurtool waarmee u het UI-element van een te testen applicatie kunt identificeren. Bijvoorbeeld de ID-knop, het tekstveld, de tekstweergaveโ€ฆ

Selendroid Architectuur

Selendroid is gebaseerd op de Android instrumentatie raamwerk. Selendroid tests zijn geschreven op basis van de Selenium Web driver client API, dus het ondersteunt volledige integratie met current Selenium kaders.

De volgende afbeelding beschrijft de architectuur van Selendroid

Selendroid Architectuur

Selendroid bevat 4 belangrijke componenten:

Selendroid Architectuur

  • Web Driver-client โ€“ โ€‹โ€‹De Java clientbibliotheek gebaseerd op Selenium. Deze bibliotheek moet op de computer worden geรฏnstalleerd (die wordt gebruikt om de testgevallen te ontwikkelen)
  • Selendroid-Server โ€“ De server waarop de app draait, wordt getest Android apparaat of simulator. Dit zijn de belangrijkste componenten van a Selendroid architectuur
  • Android Driver-app โ€“ Een ingebouwd Android driver, Web View-app om het mobiele internet te testen.
  • Selendroid-Standalone โ€“ Dit onderdeel wordt gebruikt om de Selendroid server en de geteste applicatie (AUT)

Beginnen met Selendroid

Je kent al het belang van de Selendroid. Laten we nu onze handen vuil maken Selendroid.

Er moeten 3 stappen worden uitgevoerd vรณรณr de eerste test Selendroid

Beginnen met Selendroid

Een instellen Selendroid omgeving houden

Selendroid kan werken op Venster, Linux en MacOS. In deze zelfstudie gaan we instellen Selendroid in Windows-besturingssysteem.

Voor het gebruik van Selendroid, u moet eerst het volgende pakket installeren

  • Java SDK (minimaal 1.6)

    U moet de licentieovereenkomst accepteren en het Java-installatieprogramma downloaden (kies x64- of x86-basis op uw besturingssysteem)

    Een instellen Selendroid Milieu

    Download en installeer de Java SDK als normale software

  • Nieuwste versie van Android SDK
  • Uw computer moet er minimaal รฉรฉn hebben Android Virtueel apparaat (AVD), of een echt apparaat Android apparaat aangesloten op de pc.
  • Selendroid Standalone met afhankelijkheden, Selendroid Bedrijfen Selenium Bedrijf
  • Eclipse software
  • JAVA_HOME en ANDROID_HOME instellen

    Stap 1) Klik in Windows met de rechtermuisknop op Computer -> Aanbod -> Geavanceerde systeeminstellingen

    Een instellen Selendroid Milieu

    Stap 2) Venster Systeemeigenschappen, selecteer het tabblad Geavanceerd -> Omgevingsvariabelen

    Een instellen Selendroid Milieu

    Stap 3) Klik in het venster Omgeving op Nieuw -> Voer een variabele ANDROID_HOME in als volgt

    Een instellen Selendroid Milieu

    De variabelewaarde is het pad naar android-sdks dat u al hebt geรฏnstalleerd.

    Zoek de systeemvariabele Path -> Edit -> Voeg de volgende regel toe na de huidige regel

    Een instellen Selendroid Milieu

    Een instellen Selendroid Milieu

    Vergelijkbaar met ANDROID_HOME, voeg een nieuwe variabele JAVA_HOME toe met de waarde zoals hieronder

    Een instellen Selendroid Milieu

    De waarde is het pad naar jouw Java JDK-installatie

    Stap 4) Start uw pc opnieuw op -> Klaar

Hoe te starten Selendroid

Stap 1) Een applicatie laten testen

Je kunt bestaande gebruiken Selendroid test-app om te controleren hoe Selendroid werkt (Link naar voorbeeldtoepassing die wordt getest)

Zodra een download is voltooid, kopieert u deze APK en het bovenstaande Selendroid Op zichzelf staande pot bestand naar een map met de naam โ€œGuru99 "

Stap 2) Start het Selendroid

Open de terminal aan Windows en navigeer naar de map Guru99 aangemaakt in stap 1.

Voer de volgende opdracht uit

Lancering Selendroid

De uitvoer wordt als volgt weergegeven

Lancering Selendroid

Na het uitvoeren van deze opdracht, Selendroid-zelfstandige HTTP-server start! Het standaardpoortnummer van deze server is 4444. Alle hardwareapparaten, evenals Android Virtueel apparaat wordt automatisch gescand en herkend. Selendroid zal identificeren Android doelversie en schermgrootte van het apparaat.

Om het te controleren Android Om de doelversie en de apparaatinformatie te verkrijgen, kunt u het volgende uitvoeren: URL in een browser: http://localhost:4444/wd/hub/status.

Lancering Selendroid

Selendroid basis commando

In dit gedeelte worden enkele basisprincipes geรฏntroduceerd Selendroid-Zelfstandige opdrachtregel. U kunt ze gebruiken om de Selendroid testomgeving

  1. Haven instellen van Selendroid

    De standaardpoort van Selendroid is 4444. Maar u kunt naar een andere poort overschakelen door een parameter toe te voegen aan de opdracht om te starten Selendroid

    Parameter: -poort [poortnummer]

    Bijvoorbeeld:

    Selendroid Basiscommando

    In bovenstaande opdracht is 5555 de nieuwe poort.

Dus de URL om de te controleren Android doelversie is gewijzigd in: http://localhost:5555/wd/hub/status

  1. Geef de locatie op van de te testen applicatie (binair APK-bestand). Selendroid vaak het absolute pad voor dit bestand vereist

    Parameter: -app [bestandspad]

    Bijvoorbeeld:

    Selendroid Basiscommando

    In het bovenstaande commando wordt de Selendroid Zoek automatisch het binaire bestand op basis van "C:\"GuruGebruik "99App.apk" om informatie te krijgen over de te testen applicatie.

    Controleer de URL http://localhost:4444/wd/hub/status, ziet u deze informatie

    Selendroid Basiscommando

  2. Wijzig de poort de Selendroid gebruikt om te communiceren met de instrumentatieserver. Selendroid gebruikt standaard poort 8080

    Parameter: -selendroidServerPort [poortnummer]

    Voorbeeld

    Selendroid Basiscommando

    De poort is nu gewijzigd in 9000

  3. Wijzig de time-out om emulators te starten. De eenheid is milliseconden.

    Parameter: -timeoutEmulatorStart

    Standaard Selendroid wacht 300,000 milliseconden totdat de emulator start. U kunt via een opdracht overschakelen naar een nieuwe time-out (200,000 ms).

    Selendroid Basiscommando

    Na deze tijd is onze verlopen, als de emulator niet kan starten, de Selendroid zal de uitzonderingsfout genereren (er is een fout opgetreden tijdens het zoeken naar apparaten/emulators.) en vervolgens stoppen met werken

  4. Wanneer u het Selendroid opdracht op terminal, ziet u een log afgedrukt op het scherm. U kunt het type log dat u ziet wijzigen door de volgende parameter toe te voegen

    Parameter: -logLevel [type logboek]

    De logniveauwaarden zijn ERROR, WAARSCHUWING, INFO, DEBUG en VERBOSE. Standaard: FOUT.

    Instellen bijvoorbeeld Selendroid Als u alleen het WAARSCHUWINGslogboek wilt afdrukken, kunt u deze opdracht gebruiken

    Selendroid Basiscommando

    De Selendroid druk alleen het WAARSCHUWINGslogboek af

Begin uw eerste test met Selendroid

Dit gedeelte is een stapsgewijze handleiding voor het maken van uw eerste testscript met behulp van Selendroid

Stel dat we een Android applicatie die getest wordt Guru99App. De applicatie bevat een tekstveld en een knop met de naam "Tekst weergeven".

DOWNLOAD DE APK HIER

Eerste proef met Selendroid

We moeten het volgende uitvoeren Testgeval gebruik Selendroid

Test Cases Staat van het product Verwachte resultaten
  1. Start de applicatie
  2. Voer een tekst in โ€œGuru99-testโ€ naar het tekstveld
  3. Druk op de knop โ€œTekst weergevenโ€.
Het binaire bestand van de geteste applicatie is beschikbaar

Er is een apparaat aangesloten op de pc

De tekst โ€œTekst Toon hierโ€ wordt gewijzigd in de tekst

welke gebruiker in een tekstveld invoert

Stap 1) Maak een Java project in Eclipse

Stap 2) Voeg selenium toe en Selendroid jar-bestand in Eclipse-omgevingen

Klik met de rechtermuisknop Guru99Test Project -> Pad bouwen -> Extern toevoegen Archives

Eerste proef met Selendroid

Navigeer naar de map waarin de jar-bestanden zijn opgeslagen

Er moeten 3 jar-bestanden worden toegevoegd

  • selendroid-client-0.10.0.jar : Selendroid Java-clientbibliotheek
  • selendroid-standalone-0.11.0-met-afhankelijkheden : Selendroid zelfstandige serverbibliotheek
  • selenium-java-2.40.0.jar : Selenium Web Driver-bibliotheek

Selecteer alle -> Kies Openen om een โ€‹โ€‹jar-bestand aan het project toe te voegen

Eerste proef met Selendroid

Stap 3) na het toevoegen van de bovenstaande bibliotheek, worden deze bibliotheken toegevoegd aan de referentiebibliotheken van het testproject. Een tester kan de APIโ€™s van die bibliotheken gebruiken om het testprogramma te ontwikkelen

Maak het pakket โ€œcom.guru.testโ€ aan en voeg het Java-bestand โ€œGuru99Test.javaโ€ zoals hieronder

Right Click Guru99Testen -> Nieuwe -> Pakket

Eerste proef met Selendroid

Typ com.guru.test in het veld Naam onder Nieuw Java Pakketdialoog ร  Voltooien

Eerste proef met Selendroid

De Eclipse zal dergelijke lijstmappen en submappen maken in de broncodestructuur

Eerste proef met Selendroid

Stap 4) Install TestNG besteld, Eclipse

In Eclipse, Help -> Nieuwe software installeren, klik in het installatiedialoogvenster op Toevoegen en voer het volgende in

druk op OK -> Naast het installeren van de TestNG

Eerste proef met Selendroid

Stap 5) Kopieer de GuruPlaats 99App.apk in de map Test App.

Eerste proef met Selendroid

Stap 6) Haal de ID op van een applicatie die wordt getest.

Stel dat we een APK-bestand hebben met de naam Guru99App.apk. Volg de stappen die in de vorige sectie zijn beschreven en voer het commando uit in de terminal.

Eerste proef met Selendroid

Open de volgende link in een browser: http://localhost:4444/wd/hub/status.

De informatie van het apparaat wordt weergegeven, kopieer de appId-waarde "com.guru99app:1.0"

Eerste proef met Selendroid

Stap 7) Open het bestand GuruWijzig 99Test.java (in de voorbeeldcode) als volgt.

Eerste proef met Selendroid

Om een โ€‹โ€‹nieuwe testsessie aan te maken met Selendroid, moet u de app-ID opgeven in de indeling: com.guru99app:1.0. Deze app-ID kan worden geรฏdentificeerd in stap 6. Als u de app-ID niet instelt die overeenkomt met de Android apparaat, zal de testsessie een foutmelding geven en niet starten.

Na het initialiseren van het gevonden apparaat, Selendroid maakt een aangepaste selendroid-server en installeert de Selendroid server erop

Selendroid installeert ook de te testen applicatie en start de selendroid-server op het apparaat

Nadat de testsessie succesvol is geรฏnitialiseerd, wordt de testopdracht op een apparaat uitgevoerd. (Zoals tekst invoeren, op de knop drukkenโ€ฆ). Als de test de testsessie toevoegt, stopt de emulator automatisch

Stap 8) Start de nieuwe testsessie

Start de Selendroid server met behulp van de volgende opdracht op de terminal zoals stap 6

Eerste proef met Selendroid

Na het Selendroid Server gestart, open het voorbeeldtestproject Guru99test op Eclipse, stel een breekpunt in op regel 77 van het bestand Guru99Test.java door dubbel te klikken op regel 77 -> Er wordt een punt weergegeven zoals hieronder

Eerste proef met Selendroid

Start een testsessie door met de rechtermuisknop te klikken. Guru99Test-project -> Foutopsporing als -> Testen Test.

Er start een testsessie zoals hieronder

Eerste proef met Selendroid

Stap 9) Haal de ID van het GUI-element op van een applicatie die wordt getest

Nadat de testsessie succesvol is gestart, opent u de browser en navigeert u naar de URL http://localhost:4444/inspector

U zult zien dat de applicatie die wordt getest, wordt gestart, zoals hieronder

Eerste proef met Selendroid

Beweeg de muis naar elk UI-element van AUT (Button, TextField, Text Label). De ID van elk element wordt gemarkeerd in het rechterdeelvenster

Eerste proef met Selendroid

Na deze stap kunt u de ID van elk hierboven UI-element verkrijgen

  • Knop Tekst-ID weergeven: โ€œbtnToon"
  • Tekstveld-ID: โ€œedtTekst"
  • Labeltekst-ID: โ€œtxtBekijk"

Deze ID's worden in de volgende stap gebruikt

Stap 10) Voer het testprogramma in zoals hieronder

Een testprogramma met Selendroid omvat 3 secties

Opstellingstest:

Hieronder staat de code voor het instellen van een test. Hiermee worden de voorwaarden voor een testsessie ingesteld. In geval van een fout wordt de Selendroid zal de uitzondering genereren en de test-app zal stoppen.

De code bevat de opmerkingen om elke verklaring uit te leggen.

package com.guru.test;
		
 import io.selendroid.SelendroidCapabilities;
		import io.selendroid.SelendroidConfiguration;
		import io.selendroid.SelendroidDriver;
		import io.selendroid.SelendroidLauncher;
		import io.selendroid.device.DeviceTargetPlatform;
		
		import 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;
		
 /**
		 * @author Guru99 Test App using Selendroid
			 * Application under test: Guru99App
		 *
		 */
		public
				class Guru99Test {
				
				     //Declare web driver variable
		    private WebDriver driver;
					   
   
		    /**
		     * Setup the environment before testing
		     * @throws Exception
			     */
		    @BeforeSuite
		    public
					void setUp() throws Exception {
							
        //Start selendroid-standalone during test
		        SelendroidConfiguration config = new SelendroidConfiguration();
			        
		      // Add the selendroid-test-app to the standalone server
		        config.addSupportedApp("Guru99App.apk");
			        
                 
		        //start the standalone server
		        SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
			        selendroidServer.launchSelendroid();
		        
		       // Create the selendroid capabilities
		        SelendroidCapabilities capa = new SelendroidCapabilities();
			        
        
		       // Specify to use selendroid's test app
		        capa.setAut("com.guru99app:1.0");
			       
		       // Specify to use the Android device API 19
		        capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
			        
		        // Don't request simulator, use real device
		        capa.setEmulator(false);
			        
         
		        //capa.wait(10000000);
		        
		        // Create instance of Selendroid Driver
		        driver = new SelendroidDriver(capa);
					       
		    }
		

Test uitvoeren

Hieronder vindt u de code om een โ€‹โ€‹test uit te voeren. De code bevat het commentaar

Hier zijn nogmaals de teststappen

  1. Voer de tekst "Hallo" in. Guru"
  2. Klik op de knop Tekst weergeven
  3. Wacht even
  4. Controleer of de app de tekst correct weergeeft wanneer de gebruiker deze in een tekstveld invoert (bijv. toon de tekst "Hallo"). Guru")
 /**
		     * Start execute the test case
		     * 01. Enter the text "Selendroid" to the textfield
		     * 02. Press OK button
		     * @throws Exception
			     */
		    @Test
		    public
					void selendroidTest() throws Exception {
							        
		        // Print the log 
		        System.out.print("Start executing test");
					        
		        // Find the input text field on screen
        // The id of this text field was get from step 9
		        WebElement inputField = driver.findElement(By.id("edtText"));
					        
		        // Verify that the text field enabled so user can enter text
		        Assert.assertEquals("true", inputField.getAttribute("enabled"));
					        
		        // Enter a text to text field
		        inputField.sendKeys("Hello Guru");        
			
         // click Show Text button
        // The id of this button was get from step 9
		        WebElement button = driver.findElement(By.id("btnShow"));
					        button.click();
		        
		        // Delay time to take effect
		        Thread.sleep(5000);
		        
		        //Find the label "Text Show Here" on screen
        // The id of this label was get from step 9
		        WebElement txtView = driver.findElement(By.id("txtView"));
					        
		        //Get the text display on screen
		        String expected = txtView.getText();
		        
		// Verify that the text which user enter on text field is same as text display on screen
		        Assert.assertEquals(expected, inputField.getText());        
		
     }

Test voltooien

De volgende code zal de test voltooien door te stoppen.ping the Selendroid bestuurder.

 /**
		     * Stop the Selendroid driver
		     * 
		     */
		    @AfterSuite
		    public
					void tearDown() {
					        driver.quit();
			    }

U kunt de details bekijken in de voorbeeldcode in dit artikel.

Stap 10) Connect Android apparaat via een USB-kabel op de pc. Waar u op moet letten โ€“

  • Zorg ervoor dat er op het apparaat geen schermvergrendeling is geconfigureerd.
  • Apparaten moeten via USB worden aangesloten op de computer waarop het selendroid-standalone-onderdeel wordt uitgevoerd.
  • Het apparaat zou op zijn minst moeten worden geรฏnstalleerd Android Target Versie-API 10

Stap 11) Start de test-app: Klik met de rechtermuisknop Guru99test -> Rennen als -> TestNG proef

Eerste proef met Selendroid

Stap 10) Het script start als volgt uitgevoerd

Eerste proef met Selendroid

Stap 12) Nadat de uitvoering van de test is voltooid, TestNG genereert automatisch het testrapport als volgt

Eerste proef met Selendroid

Eerste proef met Selendroid

Goed gedaan, je bent nu klaar met de test.

Samenvatting

  • Selendroid is een zeer krachtig hulpmiddel om te testen Android native app, zowel de hybride app als de webapp.
  • Het kan zowel op echte apparaten als op de simulator worden gebruikt.
  • Hiermee kunt u ook parallel tests uitvoeren door een test op meerdere apparaten uit te voeren.
  • De hele Selendroid suite bestaat uit vier componenten:
    • Web Driver-client,
    • Selendroid-Server,
    • Android Bestuurders-app
    • Selendroid- alleen staan
  • Te gebruiken Selendroid je nodig hebt Java JDK, Android SDK en Eclipse geรฏnstalleerd.

Vat dit bericht samen met: