Robotium Tutorial: Din første Android Framework

Hvad er Robotium?

Robotium er en Android-testramme til at automatisere testcases til native og hybride applikationer. Ved hjælp af Robotium kan udvikleren skabe stærke automatiske GUI-testcase til Android applikationer. Derudover kunne udvikleren skrive et funktions-, system- og accepttestscenario, der spreder mange Android aktiviteter.

Robotium testramme

Standard Android testramme har nogle begrænsninger som nedenfor

  • Ude af stand til at håndtere flere aktiviteter
  • Ydeevnen for testudførelse er langsom
  • Testcases er komplekse og svære at implementere

Robotiumrammer er det bedre valg at udføre test på Android ansøgning

Robotium er open source framework og betragtes som en udvidelse af Android testramme. Ved hjælp af Robotium kan udvikleren skabe robuste automatiske GUI-testcases til Android applikationer. Desuden kan udvikleren skrive funktions-, system- og accepttestscenarier, der spænder over flere Android aktiviteter.

Avancerede funktioner i Robotium
Avancerede funktioner i Robotium

Robotium Test Case Klasser

Robotium bruger sæt klasser (com.jayway.android.robotium.solo) til test. Denne klasse understøtter testcases, der spænder over flere aktiviteter. Solo er integreret med ActivityInstrumentationTestCase2.

Robotium Test Case Klasser
Integration Robotium og ActivityInstrumentationTestCase2

Testeren kan skrive testcases uden kendskab til applikationsdesign (black box testing) ved at bruge Robotium testcase klasser. Det er en enestående funktion sammenlignet med Android testcase klasser.

Sådan bruger du Robotium

For at bruge Robotium i din Android testprojekt, skal du følge nedenstående trin

Brug Robotium

Bruger Robotium til at udføre test på Android Ansøgning. For at garantere kvaliteten af ​​din Android ansøgning, skal du følge proceduren nedenfor

  1. Design test specifikation
  2. Udvikle testprogram
  3. Udfør Test sag på målenheden
  4. Indsaml testresultat
Android ansøgning
Android Applikationstestprocedure Test procedure

TRIN 1) Designtestspecifikation

  • Dette er det første trin til at teste din applikation. I dette trin definerer du mål, der skal testes. I din Android applikation, er der mange mål, der skal testes, såsom brugergrænseflade, aktivitet, komponenter, tjenester. Klart at definere målet i din ansøgning vil hjælpe med at opnå bred testdækning.
  • Planlæg, hvilke testtyper der skal udføres (enhedstest, funktionstest, systemtest).
  • Design testcases for maksimal dækning, men minimer antallet af testcases. Jo mere kode der testes mere er chancerne for tidlig fejldetektion.

TRIN 2) Skriv TEST-program

Dette afsnit guider dig til, hvordan du skriver en Android testprogram vha Android Junit Test og Robotium. Antag, at du allerede har udviklet en Android programnavn HejAndroid. Dette program har nogle funktioner beskrevet nedenfor:

  • Vis en tekst "Hej verden!" på skærmen.
  • Vis en besked HejAndroid når brugeren trykker på "Start"-knappen
HejAndroid Anvendelse
HejAndroid Anvendelse

Systemkrav

  • Android platform leveres med præ-integreret JUnit 3.0 ramme.
  • For at skabe Android Testprojekt fra Eclipse, skal din computer have installeret:
  • Nyeste version Android Platform (i øjeblikket Android 8.1)

Du kan downloade Eclipse IDE med indbygget ADT (Android Udvikler værktøjer). Det inkluderer det væsentlige Android SDK-komponenter og en version af Eclipse IDE .

Til Robotium-testrammerne skal du nedlade Robotium-biblioteket fra Robotiums hjemmeside.

Opret Android Testprojekt

  • Klik på Filer -> Ny -> Andet
  • Vælg: Android -> Android Testprojekt som vist nedenfor -> Vælg Næste
Opret ny Android testprojekt
Opret ny Android Testprojekt

Skriv navnet på dit testprojekt. Som navngivningskonvention skal dit testprojekt hedde "HejAndroidPrøve"

Tilføj testprojektnavn baseret på navnekonvention
Tilføj testprojektnavnebase på navnekonvention

Vælg målapplikation under test. I dette tilfælde er dette HejAndroid klik på Udfør

Vælg Target Ansøgning under test
Vælg målapplikation under test

Opret testsuiter

Baseret på din testspecifikation begyndte du at oprette testsuiter til dit testprogram. Du kan vælge forskellige testrammer. I denne tutorial vælger jeg standard Android testramme AktivitetInstrumentationTestCase2. Du skal tilføje Robotium-biblioteksfilen til en libs-mappe i din projektmappe, hvis du vil teste med Robotium framework. (Du opretter lib-mappe i din projektmappe).

En testcase definerer fixturen til at køre flere tests. For at definere en testcase skal du følge programstrukturen nedenfor:

  • Implementer en underklasse af TestCase.
  • Definer instansvariabler, der gemmer armaturets tilstand
  • Initialiser fixturtilstanden ved at tilsidesætte setUp()
  • Oprydning efter en test ved at tilsidesætte tearDown().
Testprogrammets struktur
Test programmets 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);
    }

	

}

Tilføjelse af testsager

  • I samme pakke med TestSuite opretter vi TestCase-klasser
  • For at teste en bestemt aktivitet, dvs. HejAndroid, opret en testcase-omfang ActivityInstrumentationTestCase2Android>
  • I denne klasse kan testeren opnå testaktivitet gennem metoden getActivity() .
  • Du kan frit oprette test for en testaktivitet ved at oprette metode med navnet "test + original metodenavn"
  • I testmetode kan testeren bruge Android JUnit funktion til at sammenligne den faktiske værdi og forventet værdi. Disse metoder er vist nedenfor.
Eksempelmetoder til Robotium og Android Testramme
Eksempler på metoder til Robotium og Android Testramme

Disse testpakker ovenfor bekræftede, at Application GUI skal vise teksten "Hello World!" og indeholder et knapnavn "Start".

TRIN 3) Kør test

Når du er færdig med at skrive dit testprogram, skal du køre testen ved at bruge nedenstående trin

  • Tilslut Android enhed til din pc (eller start Emulator, hvis du ikke har en rigtig enhed).
  • Højreklik på Kør som i din IDEAndroid Enhedstest
Kører testprogram
Kører testprogram

Udover at køre test på IDE, kan du køre test på kommandolinjen. I dette testprogram er testpakken com.example.helloandroid.test . I Linux terminal, kan du bruge følgende kommando til at køre alle test i denne pakke:

$ adb shell am instrument -w -e package com.example.helloandroid.test

TRIN 4) Få testresultat

Når testen er udført, får du testresultater.

I dette testprogram udføres 4 testmetoder. I dette tilfælde er alle testcases bestået.

Testresultat Output i sag Alle testsager bestået
Testresultat output i tilfælde af at alle testcases bestået

Hvis testtilfælde mislykkes, vises outputtet og viser dig, hvilke testtilfælde der mislykkedes

Testresultatoutput i tilfælde Alle testtilfælde mislykkedes
Testresultatoutput i tilfælde af, at alle testsager mislykkedes

Eksempler på kildekode

Disse artikler indeholder nogle kildekodeeksempler, som hjælper dig med at forstå selvstudiet mere klart og hurtigt indhente den tekniske viden