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.
The diagram below shows how the Solo class sits on top of the instrumentation test case.
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
- Develop the test program
- 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 frameworks. This tutorial uses the standard 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.
In this test program four test methods are executed. In the run below, all test cases passed.
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: the application under test.
- 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)