Robotium tutorial: Android Okvir za testiranje s primjerom

⚡ Pametni sažetak

Robotium je open source Android okvir za automatizaciju testiranja koji pokreće nativne i hibridne aplikacije putem njihovog korisničkog sučelja, omogućujući testerima da skriptiraju funkcionalne, sistemske i scenarije prihvaćanja koji obuhvaćaju nekoliko Android aktivnosti.

  • 🔘 Osnovni razred: Solo otkriva metode klika, pretraživanja, povlačenja i asertivnosti koje svaki Robotium pozivi testnih slučajeva.
  • ☑️ Prilagođeno crnoj kutiji: Testovi se vežu za UI komponente tijekom izvođenja, tako da je potrebno minimalno poznavanje izvornog koda aplikacije.
  • ✅ Postupak u četiri koraka: Osmislite specifikaciju testa, napišite program za testiranje, izvršite ga na uređaju, a zatim prikupite rezultat.
  • 🧪 Obrađeni primjer: Potpuni pozdravAndroidTestna klasa provjerava vidljivi tekst, trenutnu aktivnost i gumb Start.
  • 🛠️ Dva načina rada: Pokrenite testove iz IDE-a ili iz terminala pomoću naredbe adb shell am instrument.
  • ️ Trenutni status: Robotium 5.6.3 ostaje posljednje izdanje, dakle novo Android projekti ga obično uparuju ili zamjenjuju s Espresso.

Robotium Tutorijal

Što je Robotium?

Robotium je Android okvir za testiranje koji automatizira testne slučajeve za izvorne i hibridne aplikacije. Korištenje Robotium, programer može stvoriti robusne automatizirane GUI testne slučajeve za Android aplikacije. Programer također može pisati scenarije funkcionalnih, sistemskih i prihvatnih testova koji obuhvaćaju nekoliko Android aktivnosti.

Robotium Okvir za testiranje

Norma Android Okvir za testiranje nosi ograničenja navedena u nastavku.

  • Ne može se nositi s više aktivnosti
  • Izvedba testa je spora
  • Testni slučajevi su složeni i teško ih je implementirati

The Robotium Framework je bolji izbor za provođenje testiranja na Android prijava.

Robotium je okvir otvorenog koda i smatra se proširenjem Android testni okvir. Korištenje Robotium, programer može stvoriti robusne automatizirane GUI testne slučajeve za Android aplikacije. Štoviše, programer može napisati scenarije funkcionalnih, sistemskih i prihvatnih testova koji obuhvaćaju više Android aktivnosti.

Donja tablica sažima napredne značajke koje odvajaju Robotium iz okvira obične instrumentacije.

Napredne značajke Robotium u usporedbi sa standardom Android okvir instrumentacije

Napredne značajke Robotium

Robotium Klase testnih slučajeva

Robotium isporučuje mali skup klasa za testiranje, a primjer u članku uvozi naslijeđeni kod com.jayway.android.robotium.solo paket. Ove klase podržavaju testne slučajeve koji obuhvaćaju više aktivnosti i Solo je integriran s ActivityInstrumentationTestCase2.

Bilješka: struja Robotium izdanja izlažu istu klasu pod kraćim com.robotium.solo paket, dok je Maven koordinata ostala com.jayway.android.robotium:robotium-soloPrilagodite uvoz kako bi odgovarao JAR verziji koju zapravo dodajete u projekt.

Donji dijagram prikazuje kako se klasa Solo nalazi na vrhu testnog slučaja instrumentacije.

Solo klasa integrirana s ActivityInstrumentationTestCase2 u Robotium testni slučaj

Integracija Robotium i Instrumentacija aktivnostiTestCase2

Tester može pisati testne slučajeve bez poznavanja dizajna aplikacije, što ovaj pristup čini oblikom testiranje crne kutijeTo je izvanredna prednost u usporedbi s običnim Android klase testnih slučajeva.

Kako koristiti Robotium

Koristiti Robotium u vašoj Android testni projekt, morate slijediti dolje navedene korake.

Koraci potrebni za dodavanje i korištenje Robotium unutar an Android ispitni projekt

Kako koristiti Robotium

Kako bismo jamčili kvalitetu vašeg Android prijavu, slijedite dolje navedeni četverostupanjski postupak.

  • Dizajnirajte specifikaciju testa
  • Razviti program testiranja
  • Izvršite testni slučaj na ciljnom uređaju
  • Prikupite rezultat testa

Donji dijagram toka poredao je te četiri faze po redu.

Dijagram toka četverostupanjskog procesa Android postupak testiranja aplikacije

Android postupak testiranja aplikacije

KORAK 1) Specifikacija testa dizajna

Ovo je prvi korak u testiranju vaše aplikacije. U ovom koraku definirate cilj koji će se testirati. Android Aplikacija ima mnogo ciljeva koje je potrebno testirati, kao što su korisničko sučelje, aktivnosti, komponente i usluge. Jasno definiranje cilja pomaže vam u postizanju široke pokrivenosti testiranjem.

  • Planirajte vrste testova koje treba provesti (jedinični test, funkcionalni test, sistemski test).
  • Dizajnirajte svaki testni slučaj za maksimalnu pokrivenost uz održavanjeping broj testnih slučajeva mali. Što više koda testirate, veća je vjerojatnost ranog otkrivanja grešaka.

KORAK 2) Napišite testni program

Ovaj odjeljak vas vodi kroz pisanje Android korištenje testnog programa Android JUnit testovi i RobotiumPretpostavimo da ste već razvili Android program pod nazivom PozdravAndroidOvaj program ima funkcije opisane u nastavku.

  • Prikažite tekst „Pozdrav svijete!“ na ekranu.
  • Prikaži pozdravAndroid poruka kada korisnik pritisne gumb "Start".

Snimka zaslona u nastavku prikazuje testiranu aplikaciju koja se izvodi na uređaju.

BokAndroid aplikacija u testiranju koja prikazuje tekst Hello world i gumb Start

BokAndroid primjena

Zahtjevi sustava

  • The Android Platforma se isporučuje s unaprijed integriranim JUnit 3 okvira, što je ono što ActivityInstrumentationTestCase2 gradi dalje.
  • Da biste stvorili Android testni projekt iz Eclipse, vašem stroju je potreban ispravan Android Instalacija SDK-a.
  • Instalirajte struju Android SDK platforme, a ne prikvačeno starije izdanje.

Snimke zaslona u ovom vodiču koriste Eclipse s ADT dodatkom, koji je bio standardni alatni lanac kada je primjer napisan. Eclipse ADT više nije podržan, pa biste na modernom računalu preuzimanje Android Studio umjesto toga i ponovno upotrijebite isti testni kod unutar Gradle modul.

Za Robotium okvir za testiranje, preuzmite Robotium knjižnica iz Robotium Projekt stranica.

Napravite Android Testni projekt

  • Pritisnite File -> New -> Other
  • Odaberite Android -> Android Testirajte projekt kao što je prikazano na slici ispod, a zatim odaberite Dalje

Eclipse Čarobnjak za novi projekt s Android Odabran je testni projekt

Napravite novu Android ispitni projekt

Napišite naziv svog testnog projekta. Prema konvenciji imenovanja, testni projekt trebao bi se zvati „PozdravAndroidTest".

Eclipse dijalog s testnim projektom pod nazivom PozdravAndroidTestiranje prema konvenciji imenovanja

Dodajte naziv testnog projekta na temelju konvencije imenovanja

Odaberite ciljnu aplikaciju koja se testira. U ovom slučaju to je HelloAndroid, a zatim kliknite Završi.

Eclipse korak čarobnjaka odabir PozdravAndroid kao ciljna aplikacija koja se testira

Odaberite ciljnu aplikaciju koja se testira

Stvorite testne pakete

Na temelju vaše specifikacije testa, sada kreirate testne pakete za svoj testni program. Možete birati između različitih testiranje softvera okvire. Ovaj vodič koristi standard Android okvir za testiranje ActivityInstrumentationTestCase2Za testiranje s Robotium, dodajte Robotium datoteka knjižnice u libs direktorij unutar mape vašeg projekta.

Testni slučaj definira uređaj koji se koristi za izvođenje više testova. Za definiranje testnog slučaja slijedite strukturu programa u nastavku.

  • Implementirajte podklasu TestCase.
  • Definirajte varijable instance koje pohranjuju stanje uređaja.
  • Inicijalizirajte stanje uređaja prepisivanjem setUp().
  • Očistite nakon testa prepisivanjem tearDown().

Donji dijagram prikazuje tu strukturu na testnom programu koji ćete upravo napisati.

Struktura Robotium testni program koji prikazuje postavljanje, metode ispitivanja i rastavljanje

Struktura testnog programa

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);
    }

	

}

Dodavanje testnih slučajeva

  • U istom paketu kao i testni paket, kreirajte klase TestCase.
  • Za testiranje određene aktivnosti, na primjer PozdravAndroid, stvorite testni slučaj koji proširuje ActivityInstrumentationTestCase2Android>.
  • Unutar te klase, tester dobiva aktivnost koja se testira putem metode getActivity().
  • Slobodno kreirajte test za aktivnost dodavanjem metode pod nazivom „test + izvorni naziv metode“.
  • Unutar metode ispitivanja, ispitivač može koristiti Android JUnit funkcije za usporedbu stvarne vrijednosti s očekivanom vrijednošću. Ove metode su prikazane u nastavku.

U donjoj tablici navedene su metode tvrdnji i interakcija koje se najčešće koriste u dvama okvirima.

Primjeri metoda Robotium Solo klasa i Android okvir za testiranje

Primjeri metoda Robotium i Android okvir za testiranje

Gornji testni paket potvrđuje da grafičko korisničko sučelje aplikacije prikazuje tekst „Pozdrav svijete!“ i sadrži gumb pod nazivom „Start“.

KORAK 3) Pokrenite test

Nakon što završite s pisanjem testnog programa, pokrenite test slijedeći dolje navedene korake.

  • Spojite an Android uređaj na računalo ili pokrenite emulator ako nema dostupnog pravog uređaja.
  • U vašem IDE-u kliknite desnom tipkom miša na testni projekt i odaberite Pokreni kao → Android Jedinični test.

Snimka zaslona u nastavku prikazuje pokretanje testnog rada iz IDE-a.

Pokretanje Robotium testni program kao Android Jedinični test iz IDE-a

Pokretanje testnog programa

Osim pokretanja testa iz IDE-a, možete ga pokrenuti i iz naredbenog retka. U ovom testnom programu testni paket je com.example.helloandroid.testU Linux terminalu upotrijebite sljedeću naredbu za pokretanje svakog testa u tom paketu.

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

KORAK 4) Dobijte rezultat testa

Nakon što se test izvrši, prikupljate rezultate testa.

U ovom testnom programu izvršavaju se četiri metode testiranja. U donjem izvršavanju svi testni slučajevi su uspjeli.

Izlaz rezultata testa koji prikazuje sva četiri Robotium prolaz testnih slučajeva

Izlaz rezultata testa kada svi testni slučajevi prođu

Ako testni slučaj ne uspije, prikazuje se izlaz i pokazuje koji su testni slučajevi propali.

Izlaz rezultata testa s popisom Robotium testni slučajevi koji nisu uspjeli

Izlaz rezultata testa kada testni slučaj ne uspije

izvor Code Primjeri

Ovaj članak uključuje primjere izvornog koda koji vam pomažu da jasnije pratite vodič i brzo shvatite tehničke detalje.

Ako želite usporediti Robotium s ostalim opcijama u ovom prostoru, pogledajte testiranje mobilne aplikacije vodič, Appium udžbenik i sažetak alati za testiranje mobilnih aplikacija.

Pitanja i odgovori

Robotium 5.6.3 ostaje posljednje objavljeno izdanje, a aktivni razvoj je zaustavljen prije nekoliko godina. Okvir i dalje radi, a artefakt je i dalje na Maven Centralu, ali novi Android projekti obično biraju Espresso, Koji Google održava.

Robotium je okvir crne kutije koji se veže za widgete tijekom izvođenja i zahtijeva malo znanja o izvornom kodu. Espresso is Googlealat bijele kutije koji se sinkronizira s niti korisničkog sučelja i očekuje pristup kodu aplikacije.

Robotium pokreće jednu aplikaciju istovremeno, ne može pouzdano rukovati Flashom ili web sadržajem izvan WebViewa, ne nudi ugrađeno snimanje u JAR-u otvorenog koda, a oslanjanje na zastarjele klase instrumentacije komplicira moderne Gradle gradi.

Proglasiti androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' u datoteci za izgradnju modula ili ispustite robotium-solo JAR u libs i referencirajte ga kao ovisnost datoteke.

Da. Robotium Testovi su obični instrumentalni testovi, tako da se isti APK izvodi na emulatoru ili fizičkom uređaju. Pravi hardver je poželjniji za provjere gesti, senzora i performansi, gdje se vrijeme emulatora može razlikovati.

Robotium odgovara funkcionalnim, sistemskim i korisničkim scenarijima prihvaćanja na razini korisničkog sučelja. Nije zamjena za jedinične testove, koji se brže izvode na JVM-u, niti za širi vrste testiranja softvera još uvijek je potrebno izdanje.

Strojno učenje se koristi za lokatore s mogućnošću samoobnavljanja koji preživljavaju promjene rasporeda, vizualnu usporedbu koja označava regresije renderiranja i detekciju nestabilnih testova koja rangiraju ponovna pokretanja. Alati smanjuju održavanje, ali čovjek i dalje odlučuje koje je ponašanje važno.

GitHub kopilot može izraditi Solo setup, tearDown i metode assertacije iz klase aktivnosti. RevPažljivo pregledajte prijedlog jer može generirati uvoz naslijeđenog paketa ili tvrdnje koje aplikacija nikada ne zadovoljava.

Sažmite ovu objavu uz: