Vodič za Robotium: Vaš prvi Android Okvir
Što je Robotium?
Robotium je android okvir za testiranje za automatizaciju testnih slučajeva za izvorne i hibridne aplikacije. Koristeći Robotium, razvojni programer može stvoriti snažan slučaj za automatsko testiranje GUI-ja Android aplikacije. Osim toga, programer bi mogao napisati funkcionalni, sustavni i prihvatljivi scenarij testa, šireći mnoge Android aktivnosti.
Robotium okvir za testiranje
Servo Android okvir za testiranje ima neka ograničenja kao 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
Robotiumokvir je bolji izbor za provođenje testiranja Android primjena
Robotium je okvir otvorenog koda i smatra se njegovim proširenjem Android ispitni okvir. Koristeći Robotium, razvojni programer može stvoriti robusne automatske GUI testne slučajeve za Android aplikacije. Štoviše, razvojni programer može napisati funkcionalne scenarije, scenarije sustava i testa prihvaćanja koji obuhvaćaju višestruke scenarije Android aktivnosti.
Robotium ispitne klase
Robotium koristi skup klasa (com.jayway.android.robotium.solo) za testiranje. Ova klasa podržava testne slučajeve koji obuhvaćaju višestruke aktivnosti. Solo je integriran s ActivityInstrumentationTestCase2.
Ispitivač može pisati test slučajeve bez znanja o dizajnu aplikacije (testiranje crne kutije) koristeći Robotium klase test slučaja. To je izvanredna značajka u usporedbi s Android klase testnih slučajeva.
Kako koristiti Robotium
Da biste koristili Robotium u svom Android testni projekt, trebate slijediti korake u nastavku
Korištenje Robotiuma za provođenje testiranja Android primjena. Kako bismo zajamčili kvalitetu vašeg Android prijave, trebali biste slijediti postupak u nastavku
- Specifikacija ispitivanja dizajna
- Razviti program testiranja
- Izvršiti Testni slučaj na ciljanom uređaju
- Prikupite rezultate testa
KORAK 1) Specifikacija ispitivanja dizajna
- Ovo je prvi korak za testiranje vaše aplikacije. U ovom koraku definirate cilj za testiranje. U vašem Android aplikacije, postoje mnogi ciljevi koje treba testirati kao što su korisničko sučelje, aktivnost, komponente, usluge. Jasno definiranje cilja u vašoj aplikaciji pomoći će u postizanju široke pokrivenosti testom.
- Planirajte vrste testova koje treba provesti (test jedinice, funkcionalni test, test sustava).
- Dizajnirajte testne slučajeve za maksimalnu pokrivenost, ali smanjite broj testnih slučajeva. Što se više koda testira, veće su šanse za rano otkrivanje bugova.
KORAK 2) Napišite TEST program
Ovaj odjeljak vas vodi kako napisati Android korištenje testnog programa Android Junit Test i Robotium. Pretpostavimo da ste već razvili Android naziv programa PozdravAndroid. Ovaj program ima neke funkcije opisane u nastavku:
- Prikaži tekst "Hello world!" na zaslonu.
- Prikaz poruke PozdravAndroid kada korisnik pritisne gumb "Start".
Zahtjevi sustava
- Android platforma dolazi s unaprijed integriranim JUnit 3.0 okvir.
- Da bi se stvorilo Android Testni projekt od Eclipse, vaše računalo mora imati instalirano:
- Najnovija verzija Android Platforma (trenutno Android 8.1)
You Can preuzimanje Eclipse IDE s ugrađenim ADT-om (Android Razvojni alati). Uključuje bitno Android SDK komponente i verzija Eclipse IDE .
Za okvir za testiranje Robotium, trebate spustiti biblioteku Robotium Robotium web stranica.
stvoriti Android Testni projekt
- Pritisnite File -> New -> Other
- Odaberite: Android -> Android Testirajte projekt prema donjoj slici -> Odaberite Dalje
Napišite naziv svog testnog projekta. Prema konvenciji imenovanja, vaš bi se testni projekt trebao zvati “HelloAndroidTest"
Odaberite ciljnu aplikaciju koja se testira. U ovom slučaju, ovo je HelloAndroid kliknite Završi
Stvorite testne pakete
Na temelju svoje specifikacije testa, počeli ste stvarati pakete testova za svoj testni program. Možete odabrati različite okvire za testiranje. U ovom vodiču biram standardno Android okvir za testiranje ActivityInstrumentationTestCase2. Morate dodati datoteku biblioteke Robotium u direktorij libs u mapi vašeg projekta u slučaju da želite testirati s okvirom Robotium. (Mapu lib stvarate u mapi svog projekta).
Testni slučaj definira učvršćenje za izvođenje više testova. Da biste definirali testni slučaj, morate slijediti donju strukturu programa:
- Implementirajte podklasu od
TestCase
. - Definirajte varijable instance koje pohranjuju stanje uređaja
- Inicijalizirajte stanje fixture nadjačavanjem setUp()
- Čišćenje nakon testa nadjačavanjem tearDown().
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 s TestSuiteom stvaramo TestCase klase
- Za testiranje određene aktivnosti tj. PozdravAndroid, kreirajte opseg testnog slučaja ActivityInstrumentationTestCase2Android>
- U ovoj klasi, ispitivač može dobiti aktivnost testiranja putem getActivity() metode.
- Možete slobodno izraditi test za aktivnost testiranja kreiranjem metode s nazivom "test + originalni naziv metode"
- U metodi ispitivanja, ispitivač može koristiti Android JUnit funkcija za usporedbu stvarne i očekivane vrijednosti. Ove metode su prikazane u nastavku.
Ovi testni paketi iznad potvrdili su da GUI aplikacije mora prikazati tekst "Hello World!", i sadržavati naziv gumba "Start".
KORAK 3) Pokrenite test
Nakon što završite s pisanjem testnog programa, pokrenite test prema dolje navedenim koracima
- Connect Android uređaj na računalo (ili pokrenite Emulator u slučaju da nemate pravi uređaj).
- U vašem IDE desnom tipkom miša kliknite àRun asàAndroid Test jedinice
Osim pokretanja testa na IDE-u, možete pokrenuti test na naredbenom retku. U ovom testnom programu, testni paket je com.example.helloandroid.test. U Linux terminalu, možete koristiti sljedeću naredbu za pokretanje svih testova u ovom paketu:
$ adb shell am instrument -w -e paket com.example.helloandroid.test
KORAK 4) Dobijte rezultat testa
Nakon što se test izvrši, dobivate rezultate testa.
U ovom ispitnom programu izvode se 4 metode ispitivanja. U ovom slučaju, svi testni slučajevi su prošli.
U slučaju da testni slučaj ne uspije, izlaz se prikazuje i prikazuje vam koji testni slučajevi nisu uspjeli
Primjeri izvornog koda
Ovi članci uključuju neke primjere izvornog koda koji vam pomažu da jasnije razumijete vodič i brzo nadoknadite tehničko znanje
- BokAndroid: Aplikacija pod testom.
- BokAndroidtest: Testiranje programa pomoću Android Testni okvir