Robotium opetusohjelma: Android Testauskehys esimerkin avulla

โšก ร„lykรคs yhteenveto

Robotium on avoimen lรคhdekoodin Android Testausautomaatiokehys, joka ohjaa natiiveja ja hybridisovelluksia niiden kรคyttรถliittymรคn kautta, mahdollistaen testausskriptin toiminnallisuuden, jรคrjestelmรค- ja hyvรคksymisskenaariot, jotka kattavat useita Android toimintaa.

  • ๐Ÿ”˜ Ydinluokka: Solo paljastaa klikkaus-, haku-, vetรคminen- ja vahvistusmenetelmรคt, joita jokainen Robotium testitapauskutsuja.
  • โ˜‘๏ธ Mustalaatikkoystรคvรคllinen: Testit sitoutuvat kรคyttรถliittymรคkomponentteihin suorituksen aikana, joten sovelluksen lรคhdekoodin tuntemus on vรคhรคinen.
  • โœ… Neljรคn vaiheen prosessi: Suunnittele testispesifikaatio, kirjoita testiohjelma, suorita se laitteella ja kerรครค sitten tulokset.
  • ๐Ÿงช Toimiva esimerkki: Tรคydellinen HeiAndroidTestiluokka tarkistaa nรคkyvรคn tekstin, nykyisen aktiviteetin ja Kรคynnistรค-painikkeen.
  • ๐Ÿ› ๏ธ Kaksi ajotilaa: Kรคynnistรค testit IDE:stรค tai terminaalista komennolla adb shell am instrument.
  • โš™๏ธ Nykyinen tila: Robotium 5.6.3 on viimeisin julkaisu, joten uutta Android projektit yleensรค yhdistรคvรคt tai korvaavat sen Espresso.

Robotium oppitunti

Mikรค on Robotium?

Robotium On Android testauskehys, joka automatisoi testitapaukset natiiveille ja hybridi-sovelluksille. Kรคyttรคmรคllรค Robotium, kehittรคjรค voi luoda vankkoja automatisoituja graafisen kรคyttรถliittymรคn testitapauksia Android sovelluksia. Kehittรคjรค voi myรถs kirjoittaa toiminnallisia, jรคrjestelmรค- ja hyvรคksymistestiskenaarioita, jotka kattavat useita eri vaiheita. Android toimintaa.

Robotium Testauskehys

Standardi Android testauskehyksellรค on alla luetellut rajoitukset.

  • Ei pysty kรคsittelemรครคn useita toimintoja
  • Testin suoritus on hidasta
  • Testitapaukset ovat monimutkaisia โ€‹โ€‹ja vaikeita toteuttaa

Robotium kehys on parempi valinta testauksen suorittamiseen Android sovellus.

Robotium on avoimen lรคhdekoodin kehys ja sitรค pidetรครคn laajennuksena Android testikehys. Kรคyttรคmรคllรค Robotium, kehittรคjรค voi luoda vankkoja automatisoituja graafisen kรคyttรถliittymรคn testitapauksia Android sovelluksia. Lisรคksi kehittรคjรค voi kirjoittaa toiminnallisia, jรคrjestelmรค- ja hyvรคksymistestauksia, jotka kattavat useita eri vaiheita. Android toimintaa.

Alla olevassa taulukossa on yhteenveto edistyneistรค ominaisuuksista, jotka erottavat Robotium yksinkertaisesta instrumentointikehyksestรค.

Kehittyneet ominaisuudet Robotium verrattuna standardiin Android instrumentointikehys

Kehittyneet ominaisuudet Robotium

Robotium Testitapausluokat

Robotium toimittaa pienen joukon luokkia testausta varten, ja artikkelin esimerkki tuo vanhat com.jayway.android.robotium.solo paketti. Nรคmรค luokat tukevat testitapauksia, jotka kattavat useita aktiviteetteja, ja Solo on integroitu ActivityInstrumentationTestCase2.

Huomautus: nykyinen Robotium julkaisut paljastavat saman luokan lyhyemmรคn aikavรคlin aikana com.robotium.solo paketti, kun taas Maven-koordinaatti pysyi com.jayway.android.robotium:robotium-soloSรครคdรค tuonti vastaamaan projektiin lisรครคmรครคsi JAR-versiota.

Alla oleva kaavio nรคyttรครค, miten Solo-luokka sijoittuu instrumentointitestitapauksen pรครคlle.

Solo-luokka integroitu ActivityInstrumentationTestCase2:een Robotium testitapaus

Integrointi Robotium ja ActivityInstrumentationTestCase2

Testaaja voi kirjoittaa testitapauksia tuntematta sovellussuunnittelua, mikรค tekee lรคhestymistavasta erรครคnlaisen musta ruutu testausSe on huomattava etu verrattuna tavalliseen Android testitapausluokat.

Kuinka kรคyttรครค Robotium

Kรคyttรครค Robotium oman Android testiprojektissa sinun on noudatettava alla olevia ohjeita.

Lisรครคmiseen ja kรคyttรถรถn tarvittavat vaiheet Robotium sisรคllรค Android testiprojekti

Kuinka kรคyttรครค Robotium

Laadun takaamiseksi Android hakemuksen jรคttรคmistรค varten noudata alla olevaa nelivaiheista menettelyรค.

  • Suunnittele testispesifikaatio
  • Kehitรค testiohjelma
  • Suorita testitapaus kohdelaitteella
  • Kerรครค testitulos

Alla oleva vuokaavio asettaa nรคmรค neljรค vaihetta jรคrjestykseen.

Neljรคn vaiheen vuokaavio Android sovellusten testausmenettely

Android sovellusten testausmenettely

VAIHE 1) Suunnittelutestin erittely

Tรคmรค on sovelluksesi testaamisen ensimmรคinen vaihe. Tรคssรค vaiheessa mรครคrittelet testattavan kohteen. Android Sovelluksella on useita testattavia kohteita, kuten kรคyttรถliittymรค, toiminnot, komponentit ja palvelut. Tavoitteen selkeรค mรครคrittely auttaa saavuttamaan laajan testikattavuuden.

  • Suunnittele suoritettavat testityypit (yksikkรถtesti, toiminnallinen testi, jรคrjestelmรคtesti).
  • Suunnittele jokainen testitapaus maksimaalisen peiton saavuttamiseksi samallaping testitapausten mรครคrรค on pieni. Mitรค enemmรคn koodia testataan, sitรค suurempi on mahdollisuus virheiden havaitsemiseen varhaisessa vaiheessa.

VAIHE 2) Kirjoita testiohjelma

Tรคmรค osio opastaa sinua kirjoittamaan Android testiohjelmaa kรคyttรคen Android JUnit testit ja RobotiumOletetaan, ettรค olet jo kehittรคnyt Android ohjelma nimeltรค HeiAndroidTรคssรค ohjelmassa on alla kuvatut toiminnot.

  • Nรคytรค nรคytรถllรค teksti โ€Hello world!โ€.
  • Nรคytรค tervehdysAndroid viesti, kun kรคyttรคjรค painaa "Kรคynnistรค"-painiketta.

Alla oleva kuvakaappaus nรคyttรครค testattavan sovelluksen kรคynnissรค laitteella.

HeiAndroid testattava sovellus, jossa nรคkyy Hei maailma -teksti ja Kรคynnistรค-painike

HeiAndroid hakemus

Tekniset vaatimukset

  • Android alusta toimitetaan esi-integroidulla JUnit 3 viitekehys, joka on se, mitรค ActivityInstrumentationTestCase2 rakentuu.
  • Voit luoda Android testiprojekti Eclipse, koneesi tarvitsee toimivan Android SDK-asennus.
  • Asenna nykyinen Android alustan SDK:ta kiinnitetyn vanhemman julkaisun sijaan.

Tรคmรคn ohjeen kuvakaappaukset kรคyttรคvรคt Eclipse ADT-laajennuksella, joka oli esimerkin kirjoitushetkellรค vakiotyรถkaluketju. Eclipse ADT:tรค ei enรครค tueta, joten nykyaikaisella koneella download Android Studio sen sijaan ja kรคytรค samaa testikoodia uudelleen Gradle moduuli.

Varten Robotium testauskehys, lataa Robotium kirjastosta Robotium Hankkeen sivu.

Luo Android Testiprojekti

  • Napsauta Tiedosto -> Uusi -> Muu
  • Valita Android -> Android Testaa projekti alla olevan kuvan mukaisesti ja valitse sitten Seuraava

Eclipse Uusi projekti -avustaja Android Testiprojekti valittu

Luoda uusi Android testiprojekti

Kirjoita testiprojektisi nimi. Nimeรคmiskรคytรคnnรถn mukaisesti testiprojektin nimi tulisi olla โ€HeiAndroidTestata".

Eclipse dialogi testiprojektin nimeltรค Hello kanssaAndroidTestaa nimeรคmiskรคytรคntรถรค noudattaen

Lisรครค testiprojektin nimi nimeรคmiskรคytรคnnรถn mukaisesti

Valitse testattava kohdesovellus. Tรคssรค tapauksessa se on HelloAndroidja napsauta sitten Valmis.

Eclipse ohjatun toiminnon vaihe, jossa valitaan HeiAndroid testattavana kohdesovelluksena

Valitse testattava kohdesovellus

Luo testisviittejรค

Testispesifikaatioidesi perusteella luot nyt testipaketteja testiohjelmallesi. Voit valita useista eri vaihtoehdoista. ohjelmistojen testaus kehyksiรค. Tรคssรค opetusohjelmassa kรคytetรครคn standardia Android testauskehys ActivityInstrumentationTestCase2Testattavaksi Robotium, lisรครค Robotium kirjastotiedosto libs hakemisto projektikansiosi sisรคllรค.

Testitapaus mรครคrittelee useiden testien suorittamiseen kรคytettรคvรคn kiinnityksen. Testitapauksen mรครคrittรคmiseksi noudata alla olevaa ohjelmarakennetta.

  • Toteuta TestCase-luokan aliluokka.
  • Mรครคrittele instanssimuuttujat, jotka tallentavat kiinnittimen tilan.
  • Alusta kiinnityslaitteen tila ohittamalla setUp().
  • Siivoa testin jรคlkeinen osa ohittamalla tearDown().

Alla oleva kaavio yhdistรครค kyseisen rakenteen testiohjelmaan, jota olet aikeissa kirjoittaa.

Rakenne Robotium testiohjelma, joka nรคyttรครค asennuksen, testausmenetelmรคt ja purkamisen

Testiohjelman rakenne

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

	

}

Testitapausten lisรครคminen

  • Luo TestCase-luokat samaan pakettiin kuin testipaketti.
  • Testataksesi tietyn aktiviteetin, esimerkiksi HeiAndroid, luo testitapaus, joka laajentaa ActivityInstrumentationTestCase2:taAndroid>.
  • Kyseisen luokan sisรคllรค testaaja hakee testattavan aktiviteetin getActivity()-metodin avulla.
  • Luo aktiviteetille vapaasti testi lisรครคmรคllรค metodi nimeltรค โ€testi + alkuperรคisen metodin nimiโ€.
  • Testausmenetelmรคn sisรคllรค testaaja voi kรคyttรครค Android JUnit funktioita todellisen arvon vertaamiseksi odotettuun arvoon. Nรคmรค menetelmรคt on esitetty alla.

Alla olevassa taulukossa luetellaan kahdessa viitekehyksessรค useimmin kรคytetyt vรคittรคmis- ja vuorovaikutusmenetelmรคt.

Esimerkkimenetelmistรค Robotium Yksinopetusluokka ja Android testauskehys

Esimerkkimenetelmistรค Robotium ja Android testauskehys

Yllรค oleva testipaketti varmistaa, ettรค sovelluksen graafisessa kรคyttรถliittymรคssรค nรคkyy teksti โ€Hello World!โ€ ja ettรค siinรค on โ€Startโ€-painike.

VAIHE 3) Suorita testi

Kun olet kirjoittanut testiohjelmasi, suorita testi alla olevien ohjeiden mukaisesti.

  • Yhdistรค Android laite tietokoneeseesi tai kรคynnistรค emulaattori, jos oikeaa laitetta ei ole kรคytettรคvissรค.
  • Napsauta IDE-ympรคristรถssรคsi testiprojektia hiiren kakkospainikkeella ja valitse Suorita nimellรค โ†’ Android Yksikkรถtesti.

Alla olevassa kuvakaappauksessa nรคkyy testiajon kรคynnistรคminen IDE:stรค.

Kรคynnistรคminen Robotium testiohjelmaa Android Yksikkรถtestaus IDE:stรค

Testiohjelman suorittaminen

IDE:n lisรคksi voit suorittaa testin komentoriviltรค. Tรคssรค testiohjelmassa testipaketti on com.example.helloandroid.test. Kรคytรค Linux-pรครคteohjelmassa seuraavaa komentoa jokaisen paketin testin suorittamiseen.

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

VAIHE 4) Hanki testitulos

Testin suorittamisen jรคlkeen kerรครคt testitulokset.

Tรคssรค testiohjelmassa suoritetaan neljรค testimetodia. Alla olevassa ajossa kaikki testitapaukset lรคpรคisivรคt.

Testitulos, joka nรคyttรครค kaikki neljรค Robotium testitapausten lรคpรคisy

Testitulos tulostetaan, kun kaikki testitapaukset lรคpรคisevรคt

Jos testitapaus epรคonnistuu, tuloste nรคytetรครคn ja se nรคyttรครค, mitkรค testitapaukset epรคonnistuivat.

Testitulosten tulos, jossa luetellaan Robotium epรคonnistuneet testitapaukset

Testituloksen tulostus, kun testitapaus epรคonnistuu

Lรคhde Code Esimerkit

Tรคmรค artikkeli sisรคltรครค lรคhdekoodiesimerkkejรค, jotka auttavat sinua seuraamaan opetusohjelmaa selkeรคmmin ja omaksumaan tekniset yksityiskohdat nopeasti.

Jos haluat verrata Robotium muiden tรคssรค tilassa olevien vaihtoehtojen kanssa, katso mobiilisovellusten testaus opas, Appium oppitunti ja yhteenveto mobiilisovellusten testaustyรถkalut.

UKK

Robotium 5.6.3 on viimeisin julkaistu versio, ja aktiivinen kehitys on pรครคttynyt vuosia sitten. Kehys toimii edelleen, ja artefakti on edelleen Maven Centralissa, mutta uusi Android projektit yleensรค valitsevat Espresso, Joka Google yllรคpitรครค.

Robotium on musta laatikko -kehys, joka sitoutuu widgetteihin suorituksen aikana ja tarvitsee vain vรคhรคn tietoa lรคhdekoodista. Espresso is Googlen white-box-tyรถkalu, joka synkronoituu kรคyttรถliittymรคsรคikeen kanssa ja odottaa pรครคsyรค sovelluskoodiin.

Robotium ajaa yhtรค sovellusta kerrallaan, ei pysty kรคsittelemรครคn Flashia tai verkkosisรคltรถรค luotettavasti WebView'n ulkopuolella, ei tarjoa sisรครคnrakennettua tallennusta avoimen lรคhdekoodin JAR-tiedostoon, ja sen riippuvuus vanhentuneista instrumentointiluokista vaikeuttaa nykyaikaisia Gradle rakentaa.

Julistaa androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' moduulin rakennustiedostossa tai poista se robotium-solo JAR tulee libs ja viittaa siihen tiedostoriippuvuutena.

Kyllรค. Robotium Testit ovat tavallisia instrumentointitestejรค, joten sama APK toimii emulaattorilla tai fyysisellรค puhelimella. Oikeaa laitteistoa suositaan ele-, anturi- ja suorituskykytesteissรค, joissa emulaattorin ajoitus voi vaihdella.

Robotium sopii kรคyttรถliittymรคtason toiminnallisiin, jรคrjestelmรคllisiin ja kรคyttรคjien hyvรคksyntรคtilanteisiin. Se ei korvaa JVM:llรค nopeammin toimivia yksikkรถtestejรค eikรค laajempaa ohjelmistotestauksen tyypit julkaisua tarvitaan vielรค.

Koneoppimista kรคytetรครคn itsekorjautuviin paikantimiin, jotka selviรคvรคt asettelumuutoksista, visuaaliseen vertailuun, joka merkitsee renderรถinnin regressiot, ja epรคtasaisten testien tunnistukseen, joka luokittelee uusinnat. Tyรถkalut vรคhentรคvรคt yllรคpitoa, mutta ihminen pรครคttรครค silti, millรค toiminnalla on merkitystรค.

GitHub Copilot osaa rakentaa Solo-asennuksen, tearDownin ja assertion-metodit aktiviteettiluokasta. RevTarkastele ehdotusta huolellisesti, koska se saattaa tuottaa vanhan paketin tuonnin tai vรคitteitรค, joita sovellus ei koskaan tรคytรค.

Tiivistรค tรคmรค viesti seuraavasti: