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)