Robotium Tutorial: Din første Android Framework
Hvad er Robotium?
Robotium er en Android-testramme til at automatisere testcases til native og hybride applikationer. Ved hjælp af Robotium kan udvikleren skabe stærke automatiske GUI-testcase til Android applikationer. Derudover kunne udvikleren skrive et funktions-, system- og accepttestscenario, der spreder mange Android aktiviteter.
Robotium testramme
Standard Android testramme har nogle begrænsninger som nedenfor
- Ude af stand til at håndtere flere aktiviteter
- Ydeevnen for testudførelse er langsom
- Testcases er komplekse og svære at implementere
Robotiumrammer er det bedre valg at udføre test på Android ansøgning
Robotium er open source framework og betragtes som en udvidelse af Android testramme. Ved hjælp af Robotium kan udvikleren skabe robuste automatiske GUI-testcases til Android applikationer. Desuden kan udvikleren skrive funktions-, system- og accepttestscenarier, der spænder over flere Android aktiviteter.
.png)
Robotium Test Case Klasser
Robotium bruger sæt klasser (com.jayway.android.robotium.solo) til test. Denne klasse understøtter testcases, der spænder over flere aktiviteter. Solo er integreret med ActivityInstrumentationTestCase2.
Testeren kan skrive testcases uden kendskab til applikationsdesign (black box testing) ved at bruge Robotium testcase klasser. Det er en enestående funktion sammenlignet med Android testcase klasser.
Sådan bruger du Robotium
For at bruge Robotium i din Android testprojekt, skal du følge nedenstående trin
Bruger Robotium til at udføre test på Android Ansøgning. For at garantere kvaliteten af din Android ansøgning, skal du følge proceduren nedenfor
- Design test specifikation
- Udvikle testprogram
- Udfør Test sag på målenheden
- Indsaml testresultat
TRIN 1) Designtestspecifikation
- Dette er det første trin til at teste din applikation. I dette trin definerer du mål, der skal testes. I din Android applikation, er der mange mål, der skal testes, såsom brugergrænseflade, aktivitet, komponenter, tjenester. Klart at definere målet i din ansøgning vil hjælpe med at opnå bred testdækning.
- Planlæg, hvilke testtyper der skal udføres (enhedstest, funktionstest, systemtest).
- Design testcases for maksimal dækning, men minimer antallet af testcases. Jo mere kode der testes mere er chancerne for tidlig fejldetektion.
TRIN 2) Skriv TEST-program
Dette afsnit guider dig til, hvordan du skriver en Android testprogram vha Android Junit Test og Robotium. Antag, at du allerede har udviklet en Android programnavn HejAndroid. Dette program har nogle funktioner beskrevet nedenfor:
- Vis en tekst "Hej verden!" på skærmen.
- Vis en besked HejAndroid når brugeren trykker på "Start"-knappen
Systemkrav
- Android platform leveres med præ-integreret JUnit 3.0 ramme.
- For at skabe Android Testprojekt fra Eclipse, skal din computer have installeret:
- Nyeste version Android Platform (i øjeblikket Android 8.1)
Du kan downloade Eclipse IDE med indbygget ADT (Android Udvikler værktøjer). Det inkluderer det væsentlige Android SDK-komponenter og en version af Eclipse IDE .
Til Robotium-testrammerne skal du nedlade Robotium-biblioteket fra Robotiums hjemmeside.
Opret Android Testprojekt
- Klik på Filer -> Ny -> Andet
- Vælg: Android -> Android Testprojekt som vist nedenfor -> Vælg Næste
Skriv navnet på dit testprojekt. Som navngivningskonvention skal dit testprojekt hedde "HejAndroidPrøve"
Vælg målapplikation under test. I dette tilfælde er dette HejAndroid klik på Udfør
Opret testsuiter
Baseret på din testspecifikation begyndte du at oprette testsuiter til dit testprogram. Du kan vælge forskellige testrammer. I denne tutorial vælger jeg standard Android testramme AktivitetInstrumentationTestCase2. Du skal tilføje Robotium-biblioteksfilen til en libs-mappe i din projektmappe, hvis du vil teste med Robotium framework. (Du opretter lib-mappe i din projektmappe).
En testcase definerer fixturen 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 armaturets tilstand
- Initialiser fixturtilstanden ved at tilsidesætte setUp()
- Oprydning efter en test ved at tilsidesætte tearDown().
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
- I samme pakke med TestSuite opretter vi TestCase-klasser
- For at teste en bestemt aktivitet, dvs. HejAndroid, opret en testcase-omfang ActivityInstrumentationTestCase2Android>
- I denne klasse kan testeren opnå testaktivitet gennem metoden getActivity() .
- Du kan frit oprette test for en testaktivitet ved at oprette metode med navnet "test + original metodenavn"
- I testmetode kan testeren bruge Android JUnit funktion til at sammenligne den faktiske værdi og forventet værdi. Disse metoder er vist nedenfor.
Disse testpakker ovenfor bekræftede, at Application GUI skal vise teksten "Hello World!" og indeholder et knapnavn "Start".
TRIN 3) Kør test
Når du er færdig med at skrive dit testprogram, skal du køre testen ved at bruge nedenstående trin
- Tilslut Android enhed til din pc (eller start Emulator, hvis du ikke har en rigtig enhed).
- Højreklik på Kør som i din IDEAndroid Enhedstest
Udover at køre test på IDE, kan du køre test på kommandolinjen. I dette testprogram er testpakken com.example.helloandroid.test . I Linux terminal, kan du bruge følgende kommando til at køre alle test i denne pakke:
$ adb shell am instrument -w -e package com.example.helloandroid.test
TRIN 4) Få testresultat
Når testen er udført, får du testresultater.
I dette testprogram udføres 4 testmetoder. I dette tilfælde er alle testcases bestået.
Hvis testtilfælde mislykkes, vises outputtet og viser dig, hvilke testtilfælde der mislykkedes
Eksempler på kildekode
Disse artikler indeholder nogle kildekodeeksempler, som hjælper dig med at forstå selvstudiet mere klart og hurtigt indhente den tekniske viden
- HejAndroid: Ansøgning under test .
- HejAndroidTest: Test program vha Android Testramme