Robotium Handledning: Android Testramverk med exempel
⚡ Smart sammanfattning
Robotium är en öppen källkod Android ramverk för testautomation som driver native och hybridappar genom sitt användargränssnitt, vilket låter ett testskript fungerande, system- och acceptansscenarier som spänner över flera Android aktiviteter.
Vad är Robotium?
Robotium är en Android testramverk som automatiserar testfall för native och hybridapplikationer. Användning Robotium, kan en utvecklare skapa robusta automatiserade GUI-testfall för Android applikationer. En utvecklare kan också skriva funktionella, system- och acceptanstestscenarier som sträcker sig över flera Android aktiviteter.
Robotium Testramverk
Standarden Android Testramverket har de begränsningar som anges nedan.
- Kan inte hantera flera aktiviteter
- Testkörningsprestandan är långsam
- Testfall är komplexa och svåra att implementera
Ocuco-landskapet Robotium ramverket är det bättre valet för att utföra tester på en Android ansökan.
Robotium är ett ramverk med öppen källkod och betraktas som en förlängning av Android testramverk. Använda Robotium, kan en utvecklare skapa robusta automatiserade GUI-testfall för Android applikationer. Dessutom kan en utvecklare skriva funktionella, system- och acceptanstestscenarier som spänner över flera Android aktiviteter.
Tabellen nedan sammanfattar de avancerade funktioner som skiljer Robotium från det vanliga instrumentramverket.
Avancerade funktioner i Robotium
Robotium Testfallsklasser
Robotium skickar en liten uppsättning klasser för testning, och artikelns exempel importerar de äldre com.jayway.android.robotium.solo paket. Dessa klasser stöder testfall som sträcker sig över flera aktiviteter, och Solo är integrerad med ActivityInstrumentationTestCase2.
Obs: ström Robotium utgåvor exponerar samma klass under den kortare com.robotium.solo paket, medan Maven-koordinaten stannade kvar com.jayway.android.robotium:robotium-soloJustera importen så att den matchar den JAR-version du faktiskt lägger till i projektet.
Diagrammet nedan visar hur Solo-klassen placeras ovanpå instrumenttestfallet.
Integration av Robotium och AktivitetsinstrumenteringTestfall2
En testare kan skriva testfall utan kunskap om applikationsdesignen, vilket gör metoden till en form av svartbox testningDet är en enastående fördel jämfört med slätten Android testfallsklasser.
Så här använder du Robotium
Att använda Robotium i din Android testprojektet måste du följa stegen nedan.
Mindergy på kontoret Robotium
För att garantera kvaliteten på din Android ansökan, följ proceduren i fyra steg nedan.
- Utforma testspecifikationen
- Utveckla testprogrammet
- Kör testfallet på målenheten
- Samla in testresultatet
Flödesschemat nedan placerar de fyra stegen i ordning.
Android applikationstestprocedur
STEG 1) Specifikation för designtest
Detta är det första steget i att testa din applikation. I det här steget definierar du målet som ska testas. Android Applikationen har många mål som behöver testas, såsom användargränssnitt, aktiviteter, komponenter och tjänster. Att tydligt definiera målet hjälper dig att uppnå bred testtäckning.
- Planera de testtyper som ska utföras (enhetstest, funktionstest, systemtest).
- Designa varje testfall för maximal täckning samtidigt somping antalet testfall är litet. Ju mer kod du testar, desto större är chansen att upptäcka fel tidigt.
STEG 2) Skriv testprogram
Det här avsnittet guidar dig genom att skriva en Android testprogram med hjälp av Android JUnit tester och RobotiumAnta att du redan har utvecklat en Android program som heter HallåAndroidDet här programmet har funktionerna som beskrivs nedan.
- Visa texten "Hej världen!" på skärmen.
- Visa ett hejAndroid meddelande när användaren trycker på "Start"-knappen.
Skärmdumpen nedan visar applikationen som körs på en enhet under test.
HejAndroid ansökan
Systemkrav
- Ocuco-landskapet Android plattformen levereras med en förintegrerad JUnit 3 ramverk, vilket är vad
ActivityInstrumentationTestCase2bygger vidare. - Att skapa en Android testprojekt från Eclipse, din maskin behöver en fungerande Android SDK-installation.
- Installera den nuvarande Android plattforms-SDK snarare än en fäst äldre version.
Skärmdumparna i den här genomgången använder Eclipse med ADT-pluginet, vilket var standardverktygskedjan när exemplet skrevs. Eclipse ADT stöds inte längre, så på en modern maskin skulle du ladda ner Android Studio istället och återanvända samma testkod inuti en Gradle modul.
För Robotium testramverket, ladda ner Robotium biblioteket från Robotium projektsida.
Skapa ett Android Testprojekt
- Klicka på Arkiv -> Nytt -> Annat
- Välja Android -> Android Testa projektet som visas i bilden nedan och välj sedan Nästa
Skapa en ny Android testprojekt
Skriv namnet på ditt testprojekt. Enligt namngivningskonventionen ska testprojektet heta "HejAndroidTesta".
Lägg till testprojektets namn baserat på namngivningskonventionen
Välj målapplikationen som testas. I det här fallet är det HelloAndroidoch klicka sedan på Slutför.
Välj målapplikationen som testas
Skapa testsviter
Baserat på din testspecifikation skapar du nu testsviter för ditt testprogram. Du kan välja mellan olika mjukvarutestning ramverk. Den här handledningen använder standarden Android ramverk för testning ActivityInstrumentationTestCase2Att testa med Robotium, Lägg till Robotium biblioteksfil till en libs katalogen i din projektmapp.
Ett testfall definierar den fixtur som används för att köra flera tester. För att definiera ett testfall, följ programstrukturen nedan.
- Implementera en underklass av TestCase.
- Definiera instansvariabler som lagrar fixturens tillstånd.
- Initiera fixturens tillstånd genom att åsidosätta setUp().
- Rensa upp efter ett test genom att åsidosätta tearDown().
Diagrammet nedan visar den strukturen i det testprogram du ska skriva.
Testprogrammets struktur
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
- Skapa TestCase-klasserna i samma paket som testsviten.
- För att testa en viss aktivitet, till exempel HejAndroid, skapa ett testfall som utökar ActivityInstrumentationTestCase2Android>.
- Inuti den klassen hämtar testaren aktiviteten som testas genom metoden getActivity().
- Skapa ett test för aktiviteten fritt genom att lägga till en metod med namnet "test + ursprungligt metodnamn".
- Inom testmetoden kan testaren använda Android JUnit funktioner för att jämföra det faktiska värdet med det förväntade värdet. Dessa metoder visas nedan.
Tabellen nedan listar de metoder för påstående och interaktion som oftast används i de två ramverken.
Exempelmetoder för Robotium och Android ramverk för testning
Testsviten ovan verifierar att programmets grafiska gränssnitt visar texten "Hej världen!" och innehåller en knapp med namnet "Start".
STEG 3) Kör test
När du har skrivit ditt testprogram kör du testet med hjälp av stegen nedan.
- Anslut en Android enheten till din dator, eller starta en emulator om ingen riktig enhet är tillgänglig.
- I din IDE högerklickar du på testprojektet och väljer Kör som → Android Enhetstest.
Skärmdumpen nedan visar testkörningen som startas från IDE:n.
Köra testprogrammet
Förutom att köra testet från IDE:n kan du köra det från kommandoraden. I det här testprogrammet är testpaketet com.example.helloandroid.testI en Linux-terminal, använd följande kommando för att köra varje test i det paketet.
$ adb shell am instrument -w -e package com.example.helloandroid.test
STEG 4) Få testresultat
När testet är kört samlar du in testresultaten.
I detta testprogram körs fyra testmetoder. I körningen nedan godkändes alla testfall.
Testresultat utmatas när alla testfall godkänns
Om ett testfall misslyckas visas utdata och visar vilka testfall som misslyckades.
Testresultat utmatning när ett testfall misslyckas
Källa Code Exempel
Den här artikeln innehåller exempel på källkod som hjälper dig att följa handledningen tydligare och snabbt lära dig de tekniska detaljerna.
- HejAndroid: applikationen som testas.
- HejAndroidTesta: testprogrammet med hjälp av Android testramverk.
Om du vill jämföra Robotium med de andra alternativen i detta utrymme, se test av mobilapplikationer guiden, den Appium handledning och sammanfattningen av testverktyg för mobilappar.

.png)
.png)
.png)



.png)

.png)
.png)

.png)
.png)