Selendroid-zelfstudie voor beginners met voorbeeld

Inhoudsopgave:

Anonim

Heeft u ooit een Android-applicatie ontwikkeld en deze op Google Play gepubliceerd? Wat gaat u doen als u een gebruikersrecensie krijgt zoals -

Wanneer u een app publiceert op Google Play, 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 testinspanning te besparen, hebt u een testtool nodig. Een van de beste testtools voor de Android-app is Selendroid.

  • Wat is Selendroid?
  • Waarom hebben we Selendroid nodig?
  • Selendroid-architectuur
  • Aan de slag met Selendroid
  • Een Selendroid-omgeving opzetten
  • Hoe Selendroid te starten
  • Selendroid basisopdracht
  • Start uw eerste test met Selendroid

Wat is Selendroid?

Selendroid is een testautomatiseringsraamwerk voor meerdere soorten mobiele applicaties: native en hybride Android-app en mobiel internet.

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

Selendroid is een krachtige testtool. Het kan worden gebruikt op emulators en echte apparaten

Waarom hebben we Selendroid nodig?

Selendroid is een geweldige testtool. Maar u kunt nog steeds twijfelen aan het nut ervan.

In dit gedeelte worden de belangrijke functies van Selendroid geïntroduceerd om de vraag te beantwoorden waarom u Selendroid nodig heeft.

  • U kunt de te testen applicatie testen met Selendroid zonder enige wijziging van de app. U hoeft alleen het binaire bestand (APK) op de computer te installeren. Om het binaire bestand op het apparaat te installeren, moeten de test-app en de mobiele app zijn ondertekend met dezelfde tekensleutel
  • De Selendroid-test-app kan tegelijkertijd communiceren met meerdere apparaten of simulatoren. Het is een groot voordeel van Selendroid. U kunt uw app dus met verschillende Android-apparaten testen om de compatibiliteit te controleren.
  • Selendroid kan acties van menselijke gebruikers op een app simuleren, zoals aanraken, vegen, slepen en neerzetten op apparaten
  • U kunt de hardwareapparaten (aansluiten en loskoppelen) tijdens het testen wijzigen zonder de test opnieuw te starten of te stoppen. Selendroid herkent de nieuwe apparaten automatisch
  • Overeenkomstig met de Android API-versie hoger, ondersteunt Selendroid ook de nieuwe Android API (van API 10 tot API 19)
  • Selendroid heeft ook een ingebouwde inspectietool om u te helpen het UI-element van een te testen applicatie te identificeren. Bijvoorbeeld de ID-knop, tekstveld, tekstweergave ...

Selendroid-architectuur

Selendroid is gebaseerd op het Android-instrumentatiekader. Selendroid-tests zijn geschreven op basis van de Selenium Web-driverclient-API, dus het ondersteunt volledige integratie met de huidige Selenium-frameworks.

De volgende afbeelding beschrijft de architectuur van Selendroid

Selendroid bevat 4 hoofdcomponenten:

  • Web Driver Client - De Java-clientbibliotheek op basis van Selenium. Deze bibliotheek moet op de computer worden geïnstalleerd (die wordt gebruikt om de testcases te ontwikkelen)
  • Selendroid-Server - De server die wordt uitgevoerd, bevindt zich in de app die wordt getest op een Android-apparaat of simulator. Dit zijn de belangrijkste componenten van een Selendroid-architectuur
  • Android Driver-App - Een ingebouwde Android-driver, Web View-app om het mobiele web te testen.
  • Selendroid-Standalone - Dit onderdeel wordt gebruikt om de Selendroid-server en de te testen applicatie (AUT) te installeren

Aan de slag met Selendroid

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

Er zijn 3 stappen die moeten worden uitgevoerd vóór de eerste test met Selendroid

Een Selendroid-omgeving opzetten

Selendroid kan werken op Windows, Linux en Mac OS. In deze tutorial zullen we Selendroid instellen in Windows OS.

Voordat u Selendroid gebruikt, moet u eerst het volgende pakket installeren

  • Java SDK (minimaal 1.6)

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

    Download en installeer de Java SDK als normale software

  • Nieuwste versie van Android SDK
  • Uw computer moet ten minste één Android Virtual Device (AVD) hebben, of een echt Android-apparaat dat op de pc is aangesloten.
  • Selendroid Standalone met afhankelijkheden, Selendroid Client en Selenium Client
  • Eclipse-software
  • Stel de JAVA_HOME en ANDROID_HOME

    Stap 1) Klik in het venster met de rechtermuisknop op Computer -> Eigenschappen -> Geavanceerde systeeminstellingen

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

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

    De variabele waarde is het pad naar android-sdks dat je al hebt geïnstalleerd.

    Zoek de systeemvariabele Pad -> Bewerken -> Voeg de volgende regel toe na de huidige regel

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

    De waarde is het pad naar uw Java JDK-installatie

    Stap 4) Start uw pc opnieuw op -> Gereed

Hoe Selendroid te starten

Stap 1) Een applicatie laten testen

U kunt de bestaande Selendroid-testapp gebruiken om te controleren hoe Selendroid werkt (link naar voorbeeldapplicatie die wordt getest)

Zodra een download is voltooid, kopieert u deze APK en het bovenstaande Selendroid Standalone jar-bestand naar een map met de naam " Guru99"

Stap 2) Start de Selendroid

Open de terminal op Windows en navigeer naar de map Guru99 gemaakt in stap 1.

Voer de volgende opdracht uit

De uitvoer wordt als volgt weergegeven

Na het uitvoeren van deze opdracht, start de Selendroid-standalone HTTP-server! Het standaardpoortnummer van deze server is 4444. Alle hardwareapparaten, evenals het virtuele Android-apparaat, worden gescand en automatisch herkend. Selendroid identificeert de Android-doelversie en de schermgrootte van het apparaat.

Om de Android-doelversie en de apparaatinformatie te controleren, kunt u de volgende URL in een browser openen:

http: // localhost: 4444 / wd / hub / status.

Selendroid basisopdracht

In deze sectie wordt een aantal eenvoudige Selendroid-Standalone-opdrachtregels geïntroduceerd. U kunt ze gebruiken om de Selendroid-testomgeving op te zetten

  1. Port van Selendroid instellen

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

    Parameter: -port [poortnummer]

    Bijvoorbeeld:

    In het bovenstaande commando is 5555 de nieuwe poort.

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

  1. Specificeer de locatie van de te testen applicatie (binair APK-bestand). Selendroid had vaak het absolute pad voor dit bestand nodig

    Parameter: -app [bestandspad]

    Bijvoorbeeld:

    In het bovenstaande commando vindt de Selendroid automatisch de binaire bestandsbasis op de "C: \ Guru99App.apk" om de informatie van de te testen applicatie op te halen.

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

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

    Parameter: -selendroidServerPort [poortnummer]

    Voorbeeld

    De poort is nu gewijzigd in 9000

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

    Parameter: -timeoutEmulatorStart

    Standaard wacht Selendroid 300.000 milliseconden totdat de emulator start. U kunt met een commando overschakelen naar een nieuwe time-out (200.000 ms)

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

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

    Parameter: -logLevel [type logboek]

    De waarden op logniveau zijn ERROR, WARNING, INFO, DEBUG en VERBOSE. Standaard: ERROR.

    Stel Selendroid bijvoorbeeld in om alleen het WAARSCHUWING-logboek af te drukken, u kunt deze opdracht gebruiken

    De Selendroid drukt alleen het WAARSCHUWING-logboek af

Start uw eerste test met Selendroid

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

Stel dat we een Android-applicatie hebben onder de testnaam Guru99App. De applicatie bevat een tekstveld en een knopnaam "Show Text".

DOWNLOAD DE APK HIER

We moeten de volgende testcase uitvoeren met Selendroid

Testgevallen

Staat

Verwachte resultaten:

  1. Start de applicatie
  2. Voer een tekst " Guru99 Test " in het tekstveld in
  3. Druk op de knop "Tekst weergeven"

Het binaire bestand van de te testen applicatie is beschikbaar

Er is een apparaat op de pc aangesloten

De tekst "Text Show here" wordt gewijzigd in de tekst

welke gebruiker invoert in een tekstveld

Stap 1) Maak een Java-project in Eclipse

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

Klik met de rechtermuisknop op Guru99Test Project -> Build Path -> Add External Archives

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 standalone serverbibliotheek
  • selenium-java-2.40.0.jar: Selenium Web Driver-bibliotheek

Alles selecteren -> Kies Openen om een ​​jar-bestand aan het project toe te voegen

Stap 3) na het toevoegen van de bovenstaande bibliotheek, worden die 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

Typ com.guru.test in het veld Naam in het dialoogvenster Nieuw Java-pakket à Voltooien

De Eclipse maakt op deze manier lijstmappen en submappen in de broncodestructuur

Stap 4) Installeer TestNG voor Eclipse

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

  • Naam: TestNG
  • Locatie: http://selendroid.io/

Druk op OK -> Volgende om de TestNG te installeren

Stap 5) Kopieer de Guru99App.apk naar de map Test App

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 is beschreven in de vorige sectie, voer de opdracht uit op de terminal

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"

Stap 7) Open het bestand Guru99Test.java (in de voorbeeldcode) en verander het als volgt

Om een ​​nieuwe testsessie met Selendroid te maken, moet u de app-ID opgeven in het formaat: com.guru99app: 1.0. Deze app-id kan worden geïdentificeerd in stap 6. Als u de app-id niet instelt die overeenkomt met het Android-apparaat, zal de testsessie een fout genereren en niet starten.

Na het initialiseren van het gevonden apparaat, creëert Selendroid 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 met succes is geïnitialiseerd, wordt de testopdracht op een apparaat uitgevoerd. (Zoals tekst invoeren, druk op de knop

​ 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 in stap 6

Nadat de Selendroid-server is gestart, opent u het voorbeeldtestproject Guru99test op Eclipse, stelt u een breekpunt in op regel 77 in het bestand Guru99Test.java door te dubbelklikken naar regel 77 -> Er wordt een punt weergegeven zoals hieronder

Start een testsessie door met de rechtermuisknop te klikken op het Guru99Test-project -> Foutopsporing als -> Testtest.

Een testsessie begint zoals hieronder

Stap 9) Haal het ID van het GUI-element van een te testen applicatie op

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

U zult zien dat de te testen applicatie wordt gelanceerd zoals hieronder

Gebruik de muisaanwijzer op elk UI-element van AUT (Button, TextField, Text Label), de ID van elk element wordt gemarkeerd in het rechterdeelvenster

Na deze stap kunt u de ID van elk bovenstaand UI-element ophalen

  • Knop Tekst-ID weergeven: " btnShow "
  • Tekstveld-ID: " edtText "
  • Labeltekst- ID: " txtView "

Die ID's zullen in de volgende stap worden gebruikt

Stap 10) Voer het testprogramma in zoals hieronder

Een testprogramma met Selendroid omvat 3 secties

Insteltest:

Hieronder volgt de code voor de setup-test, het zal de voorwaarde voor een testsessie instellen. In het geval van een fout zal de Selendroid de uitzondering genereren en zal de test-app stoppen.

De code bevat de opmerkingen om elk van de beweringen uit te leggen.

pakket com.guru.test;importeer io.selendroid.SelendroidCapabilities;importeer io.selendroid.SelendroidConfiguration;importeer io.selendroid.SelendroidDriver;importeer io.selendroid.SelendroidLauncher;importeer io.selendroid.device.DeviceTargetPlatform;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.WebElement;importeer org.testng.Assert;importeer org.testng.annotations.AfterSuite;importeer org.testng.annotations.BeforeSuite;importeer org.testng.annotations.Test;​* @author Guru99 Test-app met Selendroid* Applicatie wordt getest: Guru99App​​openbaarklasse Guru99Test {// Declareer webstuurprogrammavariabeleprivé WebDriver-stuurprogramma;​* Stel de omgeving in voordat u gaat testen* @throws Uitzondering​@BeforeSuiteopenbaarvoid setUp () gooit uitzondering {// Start selendroid-standalone tijdens de testSelendroidConfiguration config = nieuwe SelendroidConfiguration ();// Voeg de selendroid-test-app toe aan de zelfstandige serverconfig.addSupportedApp ("Guru99App.apk");// start de zelfstandige serverSelendroidLauncher selendroidServer = nieuwe SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Creëer de selendroid-mogelijkhedenSelendroidCapabilities capa = nieuwe SelendroidCapabilities ();// Specificeer om de test-app van selendroid te gebruikencapa.setAut ("com.guru99app: 1.0");// Specificeer om de Android-apparaat-API 19 te gebruikencapa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Vraag geen simulator aan, gebruik een echt apparaatcapa.setEmulator (false);//capa.wait(10000000);// Maak een exemplaar van Selendroid Driverdriver = nieuwe SelendroidDriver (capa);​

Voer de test uit

Hieronder staat de code om een ​​test uit te voeren. De code bevat de commentaren

Hier zijn weer de teststappen

  1. Voer de tekst "Hallo goeroe" in
  2. Klik op Tekstknop weergeven
  3. Wacht even
  4. Controleer of de app de tekst weergeeft die de gebruiker invoert in een tekstveld (bijv. De tekst 'Hallo goeroe' weergeven)
 ​* Start het uitvoeren van de testcase* 01. Voer de tekst "Selendroid" in het tekstveld in* 02. Druk op de OK-knop* @throws Uitzondering​@Testopenbaarvoid selendroidTest () gooit uitzondering {// Druk het logboek afSystem.out.print ("Start met uitvoeren van test");// Zoek het invoertekstveld op het scherm// De id van dit tekstveld is opgehaald uit stap 9WebElement inputField = driver.findElement (By.id ("edtText"));// Controleer of het tekstveld is ingeschakeld, zodat de gebruiker tekst kan invoerenAssert.assertEquals ("true", inputField.getAttribute ("enabled"));// Voer een tekst-naar-tekstveld ininputField.sendKeys ("Hallo goeroe");// klik op de knop Tekst weergeven// De id van deze knop is get vanaf stap 9WebElement-knop = driver.findElement (By.id ("btnShow"));knop.click ();// Vertragingstijd om van kracht te wordenThread.sleep (5000);// Zoek het label "Text Show Here" op het scherm// De id van dit label is get vanaf stap 9WebElement txtView = driver.findElement (By.id ("txtView"));// Haal de tekstweergave op het schermString verwacht = txtView.getText ();// Controleer of de tekst die de gebruiker in het tekstveld invoert, hetzelfde is als de tekstweergave op het schermAssert.assertEquals (verwacht, inputField.getText ());​

Voltooi de test

De volgende code voltooit de test door de Selendroid-driver te stoppen.

 ​* Stop de Selendroid-driver​​@AfterSuiteopenbaarleegte tearDown () {driver.quit ();​

U kunt de details bekijken in de voorbeeldcode die in dit artikel is opgenomen.

Stap 10) Verbind het Android-apparaat met de pc via een USB-kabel. Aandachtspunten -

  • Zorg ervoor dat het apparaat geen schermvergrendeling heeft geconfigureerd.
  • Apparaten moeten via USB zijn aangesloten op de computer waarop de zelfstandige selendroid-component wordt uitgevoerd.
  • Het apparaat moet ten minste Android Target Version API 10 installeren

Stap 11) Start de test-app: klik met de rechtermuisknop op Guru99test -> Uitvoeren als -> TestNG-test

Stap 10) De start van het script wordt als volgt uitgevoerd

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

Goed gedaan, je bent nu klaar met de test.

Overzicht

Overzicht

  • Selendroid is een zeer krachtige tool voor het testen van de native Android-app, zowel de hybride app als de webapp.
  • Het kan zowel op echte apparaten als op de simulator worden gebruikt.
  • Het stelt u ook in staat om tests parallel uit te voeren door een test uit te voeren op meerdere apparaten.
  • De volledige Selendroid-suite bestaat uit vier componenten:
    • Webstuurprogramma-client,
    • Selendroid-server,
    • Android-stuurprogramma-app
    • Selendroid-stand-alone
  • Om Selendroid te gebruiken, moet u Java JDK, Android SDK en Eclipse hebben geïnstalleerd.