Robotium Tutorial: Din första Android Ramverk

Vad är Robotium?

Robotium är ett Android-testramverk för att automatisera testfall för inhemska och hybridapplikationer. Med hjälp av 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.

Ramverk för robottestning

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

En robotramverk ä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 testram. Med hjälp av Robotium kan utvecklare 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 i Robotium
Avancerade funktioner i Robotium

Robotium testfallsklasser

Robotium använder 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 ActivityInstrumentationTestCase2

Testaren kan skriva testfall utan kunskap om applikationsdesign (black box testing) genom att använda Robotiums testfallsklasser. Det är en enastående funktion jämfört med Android testfallsklasser.

Hur man använder Robotium

För att använda Robotium i din Android testprojekt måste du följa stegen nedan

Använd Robotium

Använder Robotium för att utfö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 Test och Robotium. Antag 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 måste du ta ner Robotium-biblioteket 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 ActivityInstrumentationTestCase2. Du måste lägga till Robotium-biblioteksfilen till en libs-katalog i din projektmapp om 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
Exempel på metoder 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

  • Kontakta 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

De här artiklarna innehåller några exempel på källkod som hjälper dig att förstå handledningen tydligare och snabbt fånga upp den tekniska kunskapen