Selendroid Tutorial voor beginners met voorbeeld

Heeft u ooit een Android applicatie en deze publiceren op Google Play? Wat gaat u doen als u een gebruikersrecensie krijgt zoals:

Selendroid Tutorial

Wanneer u een app op Google Play publiceert, moet deze goed worden getest om mogelijke bugs te voorkomen. Er zijn een heleboel testscenario's die moeten worden uitgevoerd voordat een app wordt gepubliceerd. Om de 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 tijdens het testen de hardwareapparaten wijzigen (aansluiten en loskoppelen) zonder de test opnieuw te starten of te stoppen. 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 -> Mijn Advertenties -> 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 & navigeer naar de map Guru99 die in stap 1 is gemaakt.

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 apparaatgegevens te bekijken, kunt u de volgende URL in een browser openen: 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 het 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 automatisch de binaire bestandsbasis vinden op “C:\Guru99App.apk” om de informatie van de te testen applicatie te verkrijgen.

    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

    Het 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 onder testnaam Guru99App. De applicatie bevat een tekstveld en een knopnaam "Tekst weergeven".

DOWNLOAD DE APK HIER

Eerste proef met Selendroid

We moeten het volgende uitvoeren Testgeval gebruik Selendroid

Test Cases Conditie 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 op 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 pakket “com.guru.test” en voeg het Java-bestand “Guru99Test.java” toe, zoals hieronder

Klik met de rechtermuisknop op Guru99Test -> Nieuw -> Pakket

Eerste proef met Selendroid

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

Eerste proef met Selendroid

Het Eclipse zal dergelijke lijstmappen en submappen maken in de broncodestructuur

Eerste proef met Selendroid

Stap 4) Install TestNG voor betere 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 Guru99App.apk naar 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-bestandsnaam Guru99App.apk hebben. Volg de stap die in de vorige sectie is beschreven en voer de opdracht uit op 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 Guru99Test.java (in de voorbeeldcode) en wijzig 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 in het bestand Guru99Test.java door te dubbelklikken op regel 77 -> Er wordt een punt weergegeven zoals hieronder

Eerste proef met Selendroid

Start een testsessie door met de rechtermuisknop te klikken naar het 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 Guru" in
  2. Klik op de knop Tekst weergeven
  3. Wacht even
  4. Controleer of de app de tekst weergeeft terwijl de gebruiker een tekstveld invoert (bijvoorbeeld de tekst 'Hallo Guru' weergeven)
 /**
		     * 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 voltooit de test door de 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) Voer de testapp uit: klik met de rechtermuisknop op 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.