Robotium tutorial: Android Testramme med eksempel
⚡ Smart opsummering
Robotium er en open source Android testautomatiseringsframework, der driver native og hybride apps gennem deres brugergrænseflade, hvilket giver en tester mulighed for at scripte funktionelle, system- og acceptscenarier, der spænder over flere Android aktiviteter.
Hvad er Robotium?
Robotium er en Android testframework, der automatiserer testcases for native og hybride applikationer. Brug Robotium, kan en udvikler oprette robuste automatiserede GUI-testcases til Android applikationer. En udvikler kan også skrive funktionelle, system- og accepttestscenarier, der spænder over flere Android aktiviteter.
Robotium Testramme
Standarden Android Testrammen har de begrænsninger, der er anført nedenfor.
- Ude af stand til at håndtere flere aktiviteter
- Ydeevnen for testudførelse er langsom
- Testcases er komplekse og svære at implementere
Robotium framework er det bedre valg til at udføre test på en Android ansøgning.
Robotium er et open source-framework og betragtes som en udvidelse af Android testramme. Brug af Robotium, kan en udvikler oprette robuste automatiserede GUI-testcases til Android applikationer. Derudover kan en udvikler skrive funktionelle, system- og accepttestscenarier, der spænder over flere Android aktiviteter.
Tabellen nedenfor opsummerer de avancerede funktioner, der adskiller Robotium fra den almindelige instrumenteringsramme.
Avancerede funktioner af Robotium
Robotium Test Case klasser
Robotium sender et lille sæt klasser til test, og artiklens eksempel importerer de ældre klasser com.jayway.android.robotium.solo pakke. Disse klasser understøtter testcases, der spænder over flere aktiviteter, og Solo er integreret med ActivityInstrumentationTestCase2.
Bemærk: strøm Robotium udgivelser eksponerer den samme klasse under den kortere com.robotium.solo pakke, mens Maven-koordinaten forblev com.jayway.android.robotium:robotium-soloJuster importen, så den matcher den JAR-version, du rent faktisk tilføjer til projektet.
Diagrammet nedenfor viser, hvordan Solo-klassen placeres oven på instrumentationstestcasen.
Integration af Robotium og AktivitetsInstrumentationTestCase2
En tester kan skrive testcases uden kendskab til applikationsdesignet, hvilket gør tilgangen til en form for sort kasse testDet er en enestående fordel sammenlignet med almindeligt Android testcase klasser.
Sådan bruges den: Robotium
At bruge Robotium i din Android testprojekt, skal du følge nedenstående trin.
Brugsvejledning Robotium
For at garantere kvaliteten af din Android ansøgningen, følg nedenstående firetrinsprocedure.
- Design testspecifikationen
- Udvikle testprogrammet
- Udfør testcasen på målenheden
- Indsaml testresultatet
Flowdiagrammet nedenfor placerer de fire faser i rækkefølge.
Android procedure for applikationstest
TRIN 1) Designtestspecifikation
Dette er det første trin i testningen af din applikation. I dette trin definerer du det mål, der skal testes. Android Applikationen har mange mål, der skal testes, såsom brugergrænsefladen, aktiviteter, komponenter og tjenester. En klar definition af målet hjælper dig med at opnå bred testdækning.
- Planlæg de testtyper, der skal udføres (enhedstest, funktionstest, systemtest).
- Design hver test sag for maksimal dækning, mens du holderping antallet af testcases er lille. Jo mere kode du tester, desto større er chancen for tidlig fejldetektion.
TRIN 2) Skriv testprogram
Dette afsnit guider dig gennem at skrive en Android testprogram vha Android JUnit test og RobotiumAntag, at du allerede har udviklet en Android program ved navn HejAndroidDette program har de funktioner, der er beskrevet nedenfor.
- Vis teksten "Hej verden!" på skærmen.
- Vis et hejAndroid besked, når brugeren trykker på knappen "Start".
Skærmbilledet nedenfor viser applikationen under test, der kører på en enhed.
HejAndroid ansøgning
Systemkrav
- Android platform leveres med en præintegreret JUnit 3 rammeværk, hvilket er hvad
ActivityInstrumentationTestCase2bygger på. - Sådan opretter du en Android testprojekt fra Eclipse, din maskine har brug for en fungerende Android SDK-installation.
- Installer den nuværende Android platform SDK i stedet for en fastlåst ældre udgivelse.
Skærmbillederne i denne gennemgang bruger Eclipse med ADT-pluginnet, som var standardværktøjskæden, da eksemplet blev skrevet. Eclipse ADT understøttes ikke længere, så på en moderne maskine ville du downloade Android Studio i stedet og genbruge den samme testkode inde i en Gradle modul.
For Robotium testramme, download den Robotium biblioteket fra Robotium projektsiden.
Opret en Android Testprojekt
- Klik på Filer -> Ny -> Andet
- Vælg Android -> Android Testprojekt som vist på figuren nedenfor, og vælg derefter Næste
Opret en ny Android testprojekt
Skriv navnet på dit testprojekt. Ifølge navngivningskonventionen skal testprojektet hedde "HejAndroidPrøve".
Tilføj testprojektets navn baseret på navngivningskonventionen
Vælg den målapplikation, der testes. I dette tilfælde er det HejAndroid, og klik derefter på Udfør.
Vælg den målapplikation, der testes
Opret testsuiter
Baseret på din testspecifikation opretter du nu testpakker til dit testprogram. Du kan vælge mellem forskellige software test rammer. Denne vejledning bruger standarden Android testramme ActivityInstrumentationTestCase2At teste med Robotium, tilføj Robotium biblioteksfil til en libs mappe i din projektmappe.
En testcase definerer den fixture, der bruges til at køre flere tests. For at definere en testcase skal du følge programstrukturen nedenfor.
- Implementer en underklasse af TestCase.
- Definer instansvariabler, der gemmer tilstanden af fixturen.
- Initialiser fixture-tilstanden ved at tilskrive setUp().
- Ryd op efter en test ved at tilsidesætte tearDown().
Diagrammet nedenfor afbilder den struktur på det testprogram, du er ved at skrive.
Testprogramstruktur
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); } }
Tilføjelse af testsager
- Opret TestCase-klasserne i den samme pakke som testsuiten.
- For at teste en bestemt aktivitet, for eksempel HejAndroid, opret en testcase, der udvider ActivityInstrumentationTestCase2Android>.
- Inde i den klasse henter testeren den aktivitet, der testes, via metoden getActivity().
- Opret frit en test til aktiviteten ved at tilføje en metode med navnet "test + originalt metodenavn".
- Inden for testmetoden kan testeren bruge Android JUnit funktioner til at sammenligne den faktiske værdi med den forventede værdi. Disse metoder er vist nedenfor.
Tabellen nedenfor viser de assertion- og interaktionsmetoder, der oftest anvendes i de to frameworks.
Eksempelmetoder til Robotium og Android testramme
Testpakken ovenfor verificerer, at applikationens GUI viser teksten "Hello World!" og indeholder en knap med navnet "Start".
TRIN 3) Kør test
Når du er færdig med at skrive dit testprogram, skal du køre testen ved hjælp af nedenstående trin.
- Tilslut en Android enhed til din pc, eller start en emulator, hvis der ikke er nogen rigtig enhed tilgængelig.
- I din IDE skal du højreklikke på testprojektet og vælge Kør som → Android Enhedstest.
Skærmbilledet nedenfor viser testkørslen, der startes fra IDE'en.
Kørsel af testprogrammet
Udover at køre testen fra IDE'en kan du køre den fra kommandolinjen. I dette testprogram er testpakken com.example.helloandroid.testI en Linux-terminal skal du bruge følgende kommando til at køre alle test i den pakke.
$ adb shell am instrument -w -e package com.example.helloandroid.test
TRIN 4) Få testresultatet
Når testen er udført, indsamler du testresultaterne.
I dette testprogram udføres fire testmetoder. I nedenstående kørsel bestod alle testcases.
Testresultat udlæses, når alle testtilfælde er bestået
Hvis en testcase mislykkes, vises outputtet og viser dig, hvilke testcases der mislykkedes.
Testresultatoutput, når en testcase fejler
Kilde Code Eksempler
Denne artikel indeholder eksempler på kildekode, der hjælper dig med at følge vejledningen mere tydeligt og hurtigt forstå de tekniske detaljer.
- HejAndroid: den applikation, der testes.
- HejAndroidTest: testprogrammet ved hjælp af Android testramme.
Hvis du vil sammenligne Robotium med de andre muligheder i dette område, se test af mobilapplikationer guiden, den Appium tutorial og opsamlingen af værktøjer til test af mobilapps.

.png)
.png)
.png)



.png)

.png)
.png)

.png)
.png)