Robotium Tutorial: Android Testframework met voorbeeld
โก Slimme samenvatting
Robotium is een open-source Android Een framework voor testautomatisering dat native en hybride apps aanstuurt via hun gebruikersinterface, waardoor een tester functionele, systeem- en acceptatietests kan scripten die meerdere testomgevingen bestrijken. Android activiteiten.
Wat is Robotium?
Robotium is een Android Testframework dat testcases automatiseert voor native en hybride applicaties. RobotiumEen ontwikkelaar kan robuuste, geautomatiseerde GUI-testcases maken voor Android Een ontwikkelaar kan ook functionele, systeem- en acceptatietestscenario's schrijven die meerdere applicaties omvatten. Android activiteiten.
Robotium Testraamwerk
De standaard Android Het testframework kent de onderstaande beperkingen.
- Kan niet meerdere activiteiten aan
- De prestaties van de testuitvoering zijn traag
- Testgevallen zijn complex en moeilijk te implementeren.
De Robotium framework is de betere keuze voor het uitvoeren van tests op een Android toepassing.
Robotium is een open-source framework en wordt beschouwd als een uitbreiding van de Android testframework. Gebruikmakend van RobotiumEen ontwikkelaar kan robuuste, geautomatiseerde GUI-testcases maken voor Android Bovendien kan een ontwikkelaar functionele, systeem- en acceptatietestscenario's schrijven die meerdere applicaties omvatten. Android activiteiten.
De onderstaande tabel geeft een overzicht van de geavanceerde functies die onderscheidend zijn. Robotium vanuit het eenvoudige instrumentatiekader.
Geavanceerde functies van Robotium
Robotium Testcase-klassen
Robotium Het pakket bevat een kleine set klassen voor testdoeleinden, en het voorbeeld in het artikel importeert de oude versie. com.jayway.android.robotium.solo pakket. Deze klassen ondersteunen testgevallen die meerdere activiteiten omvatten, en Solo is geรฏntegreerd met ActivityInstrumentationTestCase2.
Let op: actueel Robotium Uitgaven tonen dezelfde klasse aan onder de kortere com.robotium.solo pakket, terwijl de Maven-coรถrdinaat bleef com.jayway.android.robotium:robotium-soloPas de import aan zodat deze overeenkomt met de JAR-versie die je daadwerkelijk aan het project toevoegt.
Het onderstaande diagram laat zien hoe de Solo-klasse bovenop de instrumentatietestcase is geplaatst.
Integratie van Robotium en ActiviteitInstrumentatieTestcase2
Een tester kan testgevallen schrijven zonder kennis van het applicatieontwerp, waardoor deze aanpak een vorm van black box testenDat is een enorm voordeel ten opzichte van de gewone versie. Android testcase klassen.
Hoe te gebruiken Robotium
Te gebruiken Robotium in Android Om het project te testen, moet je de onderstaande stappen volgen.
Gebruiksaanwijzing Robotium
Om de kwaliteit van uw te garanderen Android Volg voor de aanvraag de onderstaande procedure in vier stappen.
- Ontwerp de testspecificatie
- Ontwikkel het testprogramma.
- Voer de testcase uit op het doelapparaat.
- Verzamel de testresultaten.
Het onderstaande stroomschema plaatst die vier fasen in de juiste volgorde.
Android applicatietestprocedure
STAP 1) Ontwerp testspecificatie
Dit is de eerste stap in het testen van je applicatie. In deze stap definieer je het te testen doel. Android Een applicatie heeft veel onderdelen die getest moeten worden, zoals de gebruikersinterface, activiteiten, componenten en services. Door de doelen duidelijk te definiรซren, bereik je een brede testdekking.
- Plan welke soorten tests uitgevoerd moeten worden (unit-test, functionele test, systeemtest).
- Ontwerp elk testcase voor maximale dekking terwijl uping Het aantal testgevallen moet klein zijn. Hoe meer code je test, hoe groter de kans op het vroegtijdig opsporen van bugs.
STAP 2) Schrijf een testprogramma
Deze sectie begeleidt u bij het schrijven van een Android testprogramma gebruiken Android JUnit tests en RobotiumStel dat u al een hebt ontwikkeld. Android programma genaamd HalloAndroidDit programma heeft de onderstaande functies.
- Toon de tekst "Hallo wereld!" op het scherm.
- Toon een 'Hallo'-berichtAndroid Dit bericht verschijnt wanneer de gebruiker op de knop "Start" drukt.
De onderstaande schermafbeelding toont de te testen applicatie die op een apparaat draait.
HalloAndroid toepassing
Systeem vereisten
- De Android platform wordt geleverd met een vooraf geรฏntegreerde JUnit 3 raamwerken, wat is wat
ActivityInstrumentationTestCase2bouwt voort. - Om een Android testproject van EclipseUw machine heeft een werkende machine nodig. Android SDK-installatie.
- Installeer de huidige Android platform-SDK in plaats van een vastgezette oudere release.
De schermafbeeldingen in deze handleiding maken gebruik van... Eclipse met de ADT-plugin, die de standaard toolchain was toen het voorbeeld werd geschreven. Eclipse ADT wordt niet langer ondersteund, dus op een moderne computer zou je... Download Android Studio in plaats daarvan dezelfde testcode hergebruiken binnen een Gradle module.
Voor de Robotium testframework, download het Robotium bibliotheek van de Robotium project pagina.
Maak een Android Testproject
- Klik op Bestand -> Nieuw -> Overige
- Kies Android -> Android Test het project zoals weergegeven in de onderstaande afbeelding en kies vervolgens Volgende.
Maak een nieuw Android testproject
Schrijf de naam van je testproject op. Volgens de naamgevingsconventie zou het testproject "Hallo" moeten heten.AndroidTest".
Voeg de naam van het testproject toe volgens de naamgevingsconventie.
Kies de te testen applicatie. In dit geval is dat Hello.Androiden klik vervolgens op Voltooien.
Selecteer de applicatie die u wilt testen.
Maak testsuites
Op basis van uw testspecificatie maakt u nu testsuites voor uw testprogramma. U kunt kiezen uit verschillende opties. software testen frameworks. Deze handleiding maakt gebruik van de standaard Android testkader ActivityInstrumentationTestCase2Om te testen met Robotium, voeg de toe Robotium bibliotheekbestand naar een libs map in je projectmap.
Een testcase definieert de testomgeving die wordt gebruikt om meerdere tests uit te voeren. Volg de onderstaande programmastructuur om een โโtestcase te definiรซren.
- Implementeer een subklasse van TestCase.
- Definieer instantievariabelen die de status van het testobject opslaan.
- Initialiseer de fixture-status door de methode setUp() te overschrijven.
- Ruim op na een test door de tearDown()-methode te overschrijven.
Het onderstaande diagram vertaalt die structuur naar het testprogramma dat u gaat schrijven.
Testprogrammastructuur
package com.example.helloandroid.test; import com.example.helloandroid.HelloAndroid; import com.jayway.android.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; import android.widget.TextView; public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> { private HelloAndroid mActivity; private TextView mView; private String resourceString; private Solo solo; public HelloAndroidTest () { // TODO Auto-generated constructor stub super("com.example.helloandroid",HelloAndroid.class); } @Override protected void setUp() throws Exception { // TODO Auto-generated method stub // super.setUp(); mActivity = this.getActivity(); solo = new Solo(getInstrumentation(),getActivity()); mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2); resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world); } @Override protected void tearDown() throws Exception { // TODO Auto-generated method stub //super.tearDown(); solo.finishOpenedActivities(); } public void testPrecondition() { assertNotNull(mView); } /* test Target application contains a text display "Hello World!"*/ public void testSearchText() { assertEquals(resourceString,(String) mView.getText()); } /* test HelloAndroid Activity on target application is exist*/ public void testCurrentActivity() throws Exception { solo.assertCurrentActivity("wrong activity", HelloAndroid.class); } /* test Application UI contains "Start" button */ /* send event click button to target application */ public void testSearchButton() throws Exception { boolean found = solo.searchButton("Start"); solo.clickOnButton("Start"); assertTrue(found); } }
Testgevallen toevoegen
- Maak in hetzelfde pakket als de testsuite de TestCase-klassen aan.
- Om een โโbepaalde activiteit te testen, bijvoorbeeld HalloAndroidMaak een testcase die ActivityInstrumentationTestCase2 uitbreidt.Android>.
- Binnen die klasse verkrijgt de tester de te testen activiteit via de getActivity()-methode.
- Maak vrijelijk een test voor de activiteit door een methode toe te voegen met de naam "test + oorspronkelijke methodenaam".
- Binnen de testmethode kan de tester gebruikmaken van Android JUnit Functies om de werkelijke waarde te vergelijken met de verwachte waarde. Deze methoden worden hieronder weergegeven.
De onderstaande tabel geeft een overzicht van de meest gebruikte bewering- en interactiemethoden in de twee frameworks.
Voorbeelden van methoden van Robotium en Android testkader
De bovenstaande testsuite verifieert dat de grafische gebruikersinterface van de applicatie de tekst "Hello World!" weergeeft en een knop met de naam "Start" bevat.
STAP 3) Voer de test uit
Nadat je je testprogramma hebt geschreven, voer je de test uit met behulp van de onderstaande stappen.
- Verbind een Android Sluit het apparaat aan op je pc, of start een emulator als er geen fysiek apparaat beschikbaar is.
- Klik in je IDE met de rechtermuisknop op het testproject en kies 'Uitvoeren als' โ Android Eenheidstest.
De onderstaande schermafbeelding toont het starten van de test vanuit de IDE.
Het testprogramma uitvoeren
Naast het uitvoeren van de test vanuit de IDE, kunt u deze ook uitvoeren vanaf de commandoregel. In dit testprogramma is het testpakket com.example.helloandroid.testGebruik in een Linux-terminal de volgende opdracht om alle tests in dat pakket uit te voeren.
$ adb shell am instrument -w -e package com.example.helloandroid.test
STAP 4) Testresultaat ophalen
Na de uitvoering van de test verzamel je de testresultaten.
In dit testprogramma worden vier testmethoden uitgevoerd. In de onderstaande run zijn alle testgevallen geslaagd.
Testresultaatweergave wanneer alle testgevallen slagen
Als een testgeval mislukt, wordt de uitvoer weergegeven en kunt u zien welke testgevallen zijn mislukt.
Testresultaatweergave wanneer een testgeval mislukt
Bron Code Voorbeelden
Dit artikel bevat voorbeelden van broncode die u helpen de handleiding beter te volgen en de technische details snel te begrijpen.
- HalloAndroid: de applicatie die getest wordt.
- HalloAndroidTest: het testprogramma dat gebruikmaakt van de Android testframework.
Als je wilt vergelijken Robotium Bekijk voor de andere opties in deze categorie de volgende testen van mobiele applicaties gids, de Appium zelfstudie en de samenvatting van testtools voor mobiele apps.

.png)
.png)
.png)



.png)

.png)
.png)

.png)
.png)