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.

Avancerade funktioner hos Robotium
Avancerade funktioner hos Robotium

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.

Robotium Testfallsklasser
Integration Robotium och AktivitetsinstrumenteringTestfall2

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

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

  1. Designtestspecifikation
  2. Utveckla testprogram
  3. Utförande Testfall på målenheten
  4. Samla testresultat
Android ansökan
Android Applikationstestningsprocedur Testning förfaranden

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
HejAndroid Ansökan
HejAndroid Ansökan

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
Skapa ny Android testprojekt
Skapa ny Android Testprojekt

Skriv namnet på ditt testprojekt. Som namnkonvention bör ditt testprojekt heta "HejAndroidTesta"

Lägg till testprojektnamn baserat på namnkonvention
Lägg till testprojektnamnbas på namnkonvention

Välj målapplikation som testas. I det här fallet är det här HejAndroid klicka på Slutför

Välja Target Applikation under test
Välj målapplikation som testas

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().
Testprogrammets struktur
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

  • 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.
Exempelmetoder för Robotium och Android Testramverk
Exempelmetoder för Robotium och Android Testramverk

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
Kör testprogram
Kör testprogram

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.

Testresultat Utdata i fall Alla testfall godkända
Testresultat utdata om alla testfall godkändes

Om testfall misslyckas visas utgången och visar vilka testfall som misslyckades

Testresultat Utdata i fall Alla testfall misslyckades
Testresultat utdata om alla testfall misslyckades

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

Sammanfatta detta inlägg med: