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.
ล 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
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.
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.
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.
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 primjena
Zahtjevi sustava
- The Android Platforma se isporuฤuje s unaprijed integriranim JUnit 3 okvira, ลกto je ono ลกto
ActivityInstrumentationTestCase2gradi 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
Napravite novu Android ispitni projekt
Napiลกite naziv svog testnog projekta. Prema konvenciji imenovanja, testni projekt trebao bi se zvati โPozdravAndroidTest".
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.
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 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 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 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 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 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.
- BokAndroid: aplikacija koja se testira.
- BokAndroidtest: testni program koji koristi Android okvir za testiranje.
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.

.png)
.png)
.png)



.png)

.png)
.png)

.png)
.png)