Wat is het Robotium?
Robotium is een Android-testraamwerk om testcases voor native en hybride applicaties te automatiseren. Met Robotium kan de ontwikkelaar een sterke automatische GUI-testcase maken voor Android-applicaties. Bovendien zou de ontwikkelaar een functioneel, systeem- en acceptatietestscenario kunnen schrijven, waarin veel Android-activiteiten worden verspreid.
In deze tutorial leer je-
- Testraamwerk van Robotium
- Hoe Robotium te gebruiken
- STAP 1) Ontwerptestspecificatie
- STAP 2) Schrijf het TEST-programma
- STAP 3) Test uitvoeren
- STAP 4) Verkrijg het testresultaat
Testraamwerk van Robotium
Standaard Android-testraamwerk heeft enkele beperkingen, zoals hieronder
- Kan niet meerdere activiteiten uitvoeren
- De prestaties van de test zijn traag
- Testcases zijn complex en moeilijk te implementeren
Robotium- framework is de betere keuze om testen uit te voeren op Android-applicaties
Robotium is een open source framework en wordt beschouwd als een uitbreiding van het Android-testframework. Met Robotium kan de ontwikkelaar robuuste automatische GUI-testcases maken voor Android-applicaties. Bovendien kan de ontwikkelaar functionele, systeem- en acceptatietestscenario's schrijven die meerdere Android-activiteiten omvatten.
Geavanceerde functies van Robotium
Robotium Test Case Klassen
Robotium gebruikt een reeks klassen ( com.jayway.android.robotium.solo ) om te testen . Deze klasse ondersteunt testcases die zich over meerdere activiteiten uitstrekken. Solo is geïntegreerd met de ActivityInstrumentationTestCase2.
Integratie Robotium en ActivityInstrumentationTestCase2
Tester kan testcases schrijven zonder kennis van applicatieontwerp (black box-testen) door gebruik te maken van Robotium-testcaseklassen. Het is een uitstekende functie in vergelijking met Android-testcaseklassen.
Hoe Robotium te gebruiken
Om Robotium te gebruiken in uw Android-testproject, moet u de onderstaande stappen volgenRobotium gebruiken om testen uit te voeren op een Android-applicatie. Om de kwaliteit van uw Android-applicatie te garanderen, dient u onderstaande procedure te volgen
- Ontwerp testspecificatie
- Ontwikkel een testprogramma
- Voer een testcase uit op het doelapparaat
- Verzamel testresultaat
Testprocedure voor Android-applicaties
STAP 1) Ontwerptestspecificatie
- Dit is de eerste stap om uw applicatie te testen. In deze stap definieert u het te testen doel. In uw Android-applicatie moeten veel doelen worden getest, zoals gebruikersinterface, activiteit, componenten en services. Als u het doel in uw toepassing duidelijk definieert, kunt u een brede testdekking bereiken.
- Plan de testtypen die moeten worden uitgevoerd (unit-test, functionele test, systeemtest).
- Ontwerp testcases voor maximale dekking maar minimaliseer het aantal testcases. Hoe meer code wordt getest, hoe groter de kans op vroege bugdetectie.
STAP 2) Schrijf het TEST-programma
In dit gedeelte wordt uitgelegd hoe u een Android-testprogramma schrijft met Android Junit Test en Robotium. Stel dat u al een Android-programmanaam HelloAndroid hebt ontwikkeld. Dit programma heeft een aantal functies die hieronder worden beschreven:
- Geef een tekst weer "Hallo wereld!" op het scherm.
- Toon een bericht HelloAndroid wanneer de gebruiker op de "Start" -knop drukt
HelloAndroid-applicatie
systeem vereisten
- Android-platform wordt geleverd met een vooraf geïntegreerd JUnit 3.0-framework.
- Om een Android-testproject van Eclipse te maken, moet uw computer het volgende hebben geïnstalleerd:
- Nieuwste versie Android-platform (momenteel Android 8.1)
U kunt Eclipse IDE downloaden met ingebouwde ADT (Android Developer Tools). Het bevat de essentiële Android SDK-componenten en een versie van de Eclipse IDE.
Voor het Robotium-testraamwerk moet u de Robotium-bibliotheek downloaden van de Robotium-webpagina.
Maak een Android-testproject
- Klik op Bestand -> Nieuw -> Andere
- Kies: Android -> Android-testproject zoals in onderstaande afbeelding -> Kies Volgende
Maak een nieuw Android-testproject
Schrijf de naam van uw testproject. Als naamgevingsconventie moet uw testproject de naam "HelloAndroidTest" hebben
Voeg een testprojectnaam toe op basis van naamgevingsconventie
Kies de doelapplicatie die wordt getest. In dit geval is dit HelloAndroid, klik op Voltooien
Kies de doelapplicatie die wordt getest
Maak testsuites
Op basis van uw testspecificatie bent u begonnen met het maken van testsuites voor uw testprogramma. U kunt verschillende testkaders kiezen. In deze tutorial kies ik voor het standaard Android-testraamwerk ActivityInstrumentationTestCase2 . U moet het Robotium-bibliotheekbestand toevoegen aan een libs-map in uw projectmap voor het geval u wilt testen met Robotium-framework. (U maakt de lib-map aan in uw projectmap).
Een testcase definieert de armatuur om meerdere tests uit te voeren. Om een testcase te definiëren, moet u de onderstaande programmastructuur volgen:
- Implementeer een subklasse van
TestCase
. - Definieer instantievariabelen die de status van de fixture opslaan
- Initialiseer de fixturestatus door setUp () te overschrijven
- Opruimen na een test door tearDown () op te heffen.
Test de structuur van het programma
pakket com.example.helloandroid.test;importeer com.example.helloandroid.HelloAndroid;importeer com.jayway.android.robotium.solo.Solo;importeer android.test.ActivityInstrumentationTestCase2;importeer android.widget.TextView;openbare klasse HelloAndroidTest breidt ActivityInstrumentationTestCase2 uit{privé HelloAndroid activiteit;privé TextView mView;private String resourceString;privé Solo solo;openbaar HelloAndroidTest () {// TODO Automatisch gegenereerde constructorstubsuper ("com.example.helloandroid", HelloAndroid.class);@Overrideprotected void setUp () gooit uitzondering {// TODO Automatisch gegenereerde methodestub// super.setUp ();mActivity = this.getActivity ();solo = nieuw Solo (getInstrumentation (), getActivity ());mView = (TextView) mActivity.findViewById (com.example.helloandroid.R.id.textview2);resourceString = mActivity.getString (com.example.helloandroid.R.string.hello_world);@Overridebeschermde ongeldige tearDown () gooit uitzondering {// TODO Automatisch gegenereerde methodestub//super.tearDown ();solo.finishOpenedActivities ();openbare ongeldige testPrecondition () {assertNotNull (mView);/ * test Target-applicatie bevat een tekstweergave "Hallo wereld!" * /openbare ongeldige testSearchText () {assertEquals (resourceString, (String) mView.getText ());/ * test HelloAndroid Activiteit op doeltoepassing bestaat * /public void testCurrentActivity () gooit uitzondering {solo.assertCurrentActivity ("verkeerde activiteit", HelloAndroid.class);/ * test applicatie UI bevat "Start" knop * // * stuur gebeurtenis-klikknop naar doelapplicatie * /public void testSearchButton () gooit uitzondering {boolean gevonden = solo.searchButton ("Start");solo.clickOnButton ("Start");assertTrue (gevonden);
Testcases toevoegen
- In hetzelfde pakket met TestSuite maken we TestCase-klassen
- Om een bepaalde activiteit te testen, bijvoorbeeld HelloAndroid, maakt u een testcase-omvang ActivityInstrumentationTestCase2
- In deze klasse kan de tester testactiviteit verkrijgen via de methode getActivity ().
- U kunt vrijelijk een test maken voor een testactiviteit door een methode aan te maken met de naam "test + originele methode naam"
- In de testmethode kan de tester de Android JUnit-functie gebruiken om de werkelijke waarde en de verwachte waarde te vergelijken. Deze methoden worden hieronder weergegeven.
Voorbeeldmethoden van Robotium en Android-testraamwerk
Deze testsuites hierboven hebben geverifieerd dat de toepassings-GUI de tekst "Hallo wereld!" Moet weergeven en een knopnaam "Start" moet bevatten.
STAP 3) Test uitvoeren
Nadat u klaar bent met het schrijven van uw testprogramma, voert u de test uit met behulp van de onderstaande stappen
- Verbind het Android-apparaat met uw pc (of start Emulator als u geen echt apparaat heeft).
- Klik in uw IDE met de rechtermuisknop op àAndroid Unit Test uitvoeren
Testprogramma uitvoeren
Naast het uitvoeren van een test op IDE, kunt u een test uitvoeren op de opdrachtregel. In dit testprogramma is het testpakket com.example.helloandroid.test. In de Linux- terminal kunt u de volgende opdracht gebruiken om alle tests in dit pakket uit te voeren:
$ adb shell am instrument -w -e pakket com.example.helloandroid.test
STAP 4) Verkrijg het testresultaat
Nadat de test is uitgevoerd, krijgt u testresultaten.
In dit testprogramma worden 4 testmethoden uitgevoerd. In dit geval zijn alle testcases geslaagd.
Testresultaatuitvoer voor het geval alle testgevallen zijn geslaagd
In het geval dat de testcase mislukt, wordt de uitvoer weergegeven en ziet u welke testcases zijn mislukt
Testresultaatuitvoer voor het geval alle testgevallen mislukken
Broncode voorbeelden
Dit artikel bevat enkele broncodevoorbeelden die u helpen de tutorial duidelijker te begrijpen en snel de technische kennis in te halen
- HelloAndroid: toepassing wordt getest.
- HelloAndroidTest: testprogramma met behulp van het Android-testframework