Robotium Handledning: Din första Android Ramverk
Vad är det Robotium?
Robotium är ett Android-testramverk för att automatisera testfall för native och hybridapplikationer. Robotium, kan utvecklaren skapa starka automatiska GUI-testfall för Android applikationer. Dessutom kan utvecklaren skriva ett funktions-, system- och acceptanstestscenario, vilket sprider många Android aktiviteter.
Robotium ramverk för testning
Standard Android testramverket har vissa begränsningar enligt nedan
- Kan inte hantera flera aktiviteter
- Testkörningsprestandan är långsam
- Testfall är komplexa och svåra att implementera
Robotiumramverk är det bättre valet att utföra tester på Android ansökan
Robotium är ett ramverk med öppen källkod och anses vara en förlängning av Android testramverk. Använda Robotium, utvecklare kan skapa robusta automatiska GUI-testfall för Android applikationer. Dessutom kan utvecklare skriva funktions-, system- och acceptanstestscenarier som spänner över flera Android aktiviteter.
.png)
Robotium Testfallsklasser
Robotium använder en uppsättning klasser (com.jayway.android.robotium.solo) för provning. Den här klassen stöder testfall som sträcker sig över flera aktiviteter. Solo är integrerat med ActivityInstrumentationTestCase2.
.png)
Testare kan skriva testfall utan kunskap om applikationsdesign (black box-testning) genom att använda Robotium testfallsklasser. Det är en enastående funktion jämfört med Android testfallsklasser.
Mindergy på kontoret Robotium
Att använda Robotium i din Android testprojekt måste du följa stegen nedan
Använda Robotium att genomföra tester på Android Ansökan. För att garantera kvaliteten på din Android ansökan ska du följa proceduren nedan
- Designtestspecifikation
- Utveckla testprogram
- Utförande Testfall på målenheten
- Samla testresultat

STEG 1) Designtestspecifikation
- Detta är det första steget för att testa din applikation. I detta steg definierar du mål som ska testas. I din Android applikation, det finns många mål som måste testas såsom UI, aktivitet, komponenter, tjänster. Att tydligt definiera målet i din ansökan hjälper till att uppnå bred testtäckning.
- Planera vilka testtyper som ska utföras (enhetstest, funktionstest, systemtest).
- Designa testfall för maximal täckning men minimera antalet testfall. Ju mer kod som testas mer är chansen till tidig buggupptäckt.
STEG 2) Skriv TEST-programmet
Det här avsnittet guidar dig hur du skriver en Android testprogram med hjälp av Android junit Testa och RobotiumAnta att du redan har utvecklat en Android programnamn HejAndroid. Detta program har några funktioner som beskrivs nedan:
- Visa texten "Hej värld!" på skärm.
- Visa ett meddelande HejAndroid när användaren trycker på "Start"-knappen

Systemkrav
- Android plattformen levereras med förintegrerad JUnit 3.0 ramverk.
- För att skapa Android Testprojekt från Eclipse, måste din dator ha installerat:
- Senaste versionen Android Plattform (för närvarande Android 8.1)
Du kan ladda ner Eclipse IDE med inbyggd ADT (Android Utvecklarverktyg). Det inkluderar det väsentliga Android SDK-komponenter och en version av Eclipse IDE .
För Robotium testramverket, du måste ner Robotium bibliotek från Robotium webbsida.
Skapa Android Testprojekt
- Klicka på Arkiv -> Nytt -> Annat
- Välj: Android -> Android Testa projekt enligt bilden nedan -> Välj Nästa

Skriv namnet på ditt testprojekt. Som namnkonvention bör ditt testprojekt heta "HejAndroidTesta"
.png)
Välj målapplikation som testas. I det här fallet är det här HejAndroid klicka på Slutför

Skapa testsviter
Baserat på din testspecifikation började du skapa testsviter för ditt testprogram. Du kan välja olika testramverk. I den här handledningen väljer jag standard Android ramverk för testning ActivityInstrumentationTestCase2Du måste lägga till Robotium biblioteksfilen till en libs-katalog i din projektmapp ifall du vill testa med Robotium ramverket. (Du skapar lib-mappen i din projektmapp).
Ett testfall definierar fixturen för att köra flera tester. För att definiera ett testfall måste du följa programstrukturen nedan:
- Implementera en underklass av
TestCase. - Definiera instansvariabler som lagrar fixturens tillstånd
- Initiera fixturtillståndet genom att åsidosätta setUp()
- Rensa efter ett test genom att åsidosätta tearDown().
.png)
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);
}
}
Lägger till testfall
- I samma paket med TestSuite skapar vi TestCase-klasser
- För att testa viss aktivitet dvs HejAndroid, skapa ett testfall omfattning ActivityInstrumentationTestCase2Android>
- I den här klassen kan testaren få testaktivitet genom metoden getActivity() .
- Du kan fritt skapa test för en testaktivitet genom att skapa metod med namnet "test + originalmetodnamn"
- I testmetod kan testaren använda Android JUnit funktion för att jämföra verkligt värde och förväntat värde. Dessa metoder visas nedan.
.png)
Dessa testsviter ovan verifierade att Application GUI måste visa texten "Hello World!", och innehåller ett knappnamn "Start".
STEG 3) Kör test
När du har skrivit klart ditt testprogram kör du testet med hjälp av stegen nedan
- Kontakt Android enheten till din PC (eller starta Emulator om du inte har en riktig enhet).
- Högerklicka på Kör som i din IDEAndroid Enhetstest

Förutom att köra test på IDE, kan du köra test på kommandoraden. I det här testprogrammet är testpaketet com.example.helloandroid.test . I Linux terminal, kan du använda följande kommando för att köra alla tester i detta paket:
$ adb shell am instrument -w -e package com.example.helloandroid.test
STEG 4) Få testresultat
När testet har körts får du testresultat.
I detta testprogram exekveras 4 testmetoder. I detta fall är alla testfall godkända.
.png)
Om testfall misslyckas visas utgången och visar vilka testfall som misslyckades
.png)
Exempel på källkod
Den här artikeln innehåller några källor Code exempel som hjälper dig att förstå handledningen tydligare och snabbt komma ikapp med teknisk kunskap
- HejAndroid: Applikation under test .
- HejAndroidTesta: Testprogram med hjälp av Android Testramverk

.png)