Robotium bemutatója: az első Android Keretrendszer
Mi az a Robotium?
A Robotium egy androidos tesztelési keretrendszer a natív és hibrid alkalmazások teszteseteinek automatizálására. A Robotium használatával a fejlesztő erős automatikus GUI tesztelési esetet hozhat létre Android alkalmazások. Ezen kívül a fejlesztő írhatna egy funkcionális, rendszer- és elfogadási teszt forgatókönyvet, sokakat elterjesztve Android tevékenységek.
Robotium tesztelési keretrendszer
Standard Android tesztelési keretrendszernek van néhány korlátozása az alábbiak szerint
- Több tevékenységet nem tud kezelni
- A teszt végrehajtása lassú
- A tesztesetek összetettek és nehezen kivitelezhetők
Robotiumkeret a jobb választás a teszteléshez Android alkalmazás
A Robotium egy nyílt forráskódú keretrendszer, és a kiterjesztésének tekinthető Android teszt keretrendszer. A Robotium használatával a fejlesztő robusztus automatikus GUI teszteseteket hozhat létre Android alkalmazások. Ezenkívül a fejlesztő funkcionális, rendszer- és elfogadási teszt forgatókönyveket írhat, amelyek többre is kiterjednek Android tevékenységek.
Robotium teszteset osztályok
A Robotium osztályokat használ (com.jayway.android.robotium.solo) tesztelésre. Ez az osztály támogatja a több tevékenységre kiterjedő teszteseteket. A Solo integrálva van az ActivityInstrumentationTestCase2-vel.
A tesztelő teszteseteket írhat az alkalmazástervezés ismerete nélkül (fekete doboz tesztelés) a Robotium teszteset osztályok használatával. Ehhez képest kiemelkedő tulajdonság Android teszteset osztályok.
A Robotium használata
A Robotium használatához Android tesztprojektet, kövesse az alábbi lépéseket
Robotium használata a tesztek elvégzéséhez Android Alkalmazás. A minőség garantálása érdekében Android alkalmazása esetén kövesse az alábbi eljárást
- Tervezési teszt specifikáció
- Tesztprogram kidolgozása
- Végrehajt Teszt eset a cél eszközön
- Gyűjtse össze a teszt eredményét
1. LÉPÉS) Tervezési teszt specifikáció
- Ez az alkalmazás tesztelésének első lépése. Ebben a lépésben adja meg a tesztelendő célt. A tiédben Android alkalmazás, sok célpontot kell tesztelni, például felhasználói felületet, tevékenységet, összetevőket, szolgáltatásokat. Ha egyértelműen meghatározza a célt az alkalmazásban, akkor széles körű tesztlefedettséget érhet el.
- Tervezze meg a végrehajtandó teszttípusokat (egységteszt, funkcionális teszt, rendszerteszt).
- Tervezze meg a teszteseteket a maximális lefedettség érdekében, de minimalizálja a tesztesetek számát. Minél több kódot tesztelnek, annál nagyobb az esély a hiba korai felismerésére.
2. LÉPÉS) Írjon TESZT programot
Ez a rész eligazítja, hogyan írjon egy Android tesztprogram segítségével Android Junit Teszt és Robotium. Tegyük fel, hogy már kifejlesztett egy Android program neve HelloAndroid. Ez a program az alábbiakban ismertetett néhány funkcióval rendelkezik:
- Jelenítse meg a „Hello world!” szöveget! a képernyőn.
- Üzenet megjelenítése HelloAndroid amikor a felhasználó megnyomja a „Start” gombot
Rendszerkövetelmények
- Android platform előre integrált JUnit 3.0 keretrendszer.
- Az alkotás érdekében Android Tesztprojekt innen Eclipse, számítógépére telepíteni kell:
- Legújabb verzió Android Platform (jelenleg Android 8.1)
Tudod letöltés Eclipse IDE beépített ADT-vel (Android Fejlesztői eszközök). Ebben benne van a lényeges Android SDK-összetevők és a Eclipse IDE.
A Robotium tesztelési keretrendszerhez le kell töltenie a Robotium könyvtárat innen Robotium weboldal.
Teremt Android Tesztprojekt
- Kattintson a Fájl -> Új -> Egyéb elemre
- Választ: Android -> Android Tesztprojekt az alábbi ábra szerint -> Válassza a Tovább lehetőséget
Írja be a tesztprojekt nevét. Elnevezési konvencióként a tesztprojekt neve „HelloAndroidTeszt"
Válassza ki a tesztelés alatt álló célalkalmazást. Jelen esetben ez a HelloAndroid kattintson a Befejezés gombra
Hozzon létre tesztcsomagokat
A tesztspecifikáció alapján elkezdett tesztcsomagokat létrehozni a tesztprogramhoz. Különféle tesztelési kereteket választhat. Ebben az oktatóanyagban a szabványt választom Android tesztelési keretrendszer ActivityInstrumentationTestCase2. Hozzá kell adnia a Robotium könyvtár fájlt a projekt mappájában található libs könyvtárhoz, ha a Robotium keretrendszerrel szeretne tesztelni. (Létrehozol egy lib mappát a projekt mappájában).
A teszteset meghatározza a berendezést több teszt futtatásához. A teszteset meghatározásához az alábbi programstruktúrát kell követnie:
- Alosztályának megvalósítása
TestCase
. - Határozzon meg példányváltozókat, amelyek tárolják a fixture állapotát
- Inicializálja a fixture állapotát a setUp() felülbírálásával
- Tisztítás a teszt után a tearDown() felülbírálásával.
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); } }
Tesztesetek hozzáadása
- A TestSuite csomaggal azonos csomagban TestCase osztályokat hozunk létre
- Bizonyos tevékenységek teszteléséhez, pl. HelloAndroid, hozzon létre egy teszteset kiterjedését ActivityInstrumentationTestCase2Android>
- Ebben az osztályban a tesztelő tesztelési tevékenységet szerezhet a getActivity() metóduson keresztül.
- Szabadon létrehozhat tesztet egy tesztelési tevékenységhez a "teszt + eredeti módszer neve" nevű metódussal.
- A vizsgálati módszerben a tesztelő használhatja Android JUnit függvény a tényleges és a várható érték összehasonlításához. Ezeket a módszereket az alábbiakban mutatjuk be.
Ezek a fenti tesztcsomagok ellenőrizték, hogy az alkalmazás grafikus felületén meg kell jelennie a „Hello World!” szövegnek, és tartalmaznia kell egy „Start” gombnevet.
3. LÉPÉS) Futtassa le a tesztet
Miután befejezte a tesztprogram megírását, futtassa a tesztet az alábbi lépésekkel
- Csatlakozás Android eszközt a számítógéphez (vagy indítsa el az Emulátort, ha nem rendelkezik valódi eszközzel).
- Az IDE-ben kattintson jobb gombbal a Futtatás másként elemreAndroid Egységvizsgálat
A teszt futtatása IDE-n kívül parancssorban is futtatható. Ebben a tesztprogramban a tesztcsomag a com.example.helloandroid.test . In Linux terminál, a következő paranccsal futtathatja az összes tesztet ebben a csomagban:
$ adb shell am instrument -w -e csomag com.example.helloandroid.test
4. LÉPÉS) Szerezze meg a teszt eredményét
A teszt végrehajtása után megkapja a teszteredményeket.
Ebben a tesztprogramban 4 vizsgálati módszer kerül végrehajtásra. Ebben az esetben minden teszteset sikeres.
Abban az esetben, ha a teszteset sikertelen, a kimenet megjelenik, és megmutatja, melyik teszteset sikertelen
Példák a forráskódra
Ez a cikk néhány forráskód-példát tartalmaz, amelyek segítenek az oktatóanyag tisztább megértésében és a műszaki ismeretek gyors felzárkóztatásában.
- HellóAndroid: Alkalmazás tesztelés alatt .
- HellóAndroidTeszt: Tesztprogram segítségével Android Teszt keretrendszer