Calabash Android Tesztelőeszköz oktatóanyag
⚡ Okos összefoglaló
Calabash egy nyílt forráskódú elfogadási tesztelési keretrendszer, amely valós felhasználói felületi műveleteket vezérel. Android és iOS-alkalmazások, egyszerű angol nyelven Cucumber Ruby lépésdefiníciókkal és egy eszközoldali tesztszerverrel támogatott forgatókönyvek.

Mi a Calabash?
Calabash egy nyílt forráskódú elfogadóhely Tesztelés keretrendszer, amely lehetővé teszi tesztek írását és végrehajtását iOS és Android Alkalmazások.
Ez egy automatizált felhasználói felület keretrendszer, amely lehetővé teszi a tesztek Ruby-ban történő írását Cucumber.
Calabash úgy működik, hogy lehetővé teszi az automatikus felhasználói felület interakcióit egy mobilalkalmazáson belül, például gombok megnyomását, szövegbevitelt, válaszok validálását stb. Különböző eszközökön futtatható. Android és iOS-eszközökön, amely valós idejű visszajelzést és érvényesítést biztosít.
⚠️ Verzió megjegyzés: Microsoft befejezte hozzájárulásait Calabash az utolsó iOS 11 után és Android 8 kiadás, és a calabash-android adattár most egy karbantartót kereső projektként írja le magát. Az alábbi útmutató írásos formában megmarad, a modern helyettesítőket pedig az utolsó szakasz tárgyalja.
Miért Calabash Automatizálás?
Mielőtt bármit is telepítenénk, érdemes mérlegelni, hogy mit ad vissza a keretrendszer, illetve hogy mennyibe kerül a fenntartása.
| Előnyök | Hátrányok |
| Segít növelni a teljesítményt/termelékenységet. | Az automatizálási teszt szkriptek írásához jártasság szükséges. |
| Javított minőség vagy a minőség előreláthatóságának növelése | A tesztszkript hibakeresése komoly probléma. |
| Folyamatok vagy termékek jobb robusztussága (konzisztenciája). | A tesztkarbantartás költséges lejátszási módok esetén. |
| Fokozott összhang a kibocsátás és csökkenti a munkaerő-költségeket és kiadásokat | A tesztadatfájlok karbantartása nehézkes, ha a tesztszkript több képernyőt tesztel |
Calabash és BDD
- Calabash is Viselkedésvezérelt fejlesztés (BDD)Ugyanaz, mint Tesztvezérelt fejlesztés (TDD), de az API-k alakját leíró tesztek létrehozása helyett az alkalmazás viselkedését specifikálják.
- A BDD egy olyan folyamat, amelyben több érdekelt fél mérlegeli, hogy közös értelmezést alkosson arról, hogy mit kell építeni.
- A BDD segít a megfelelő szoftver felépítésében és a cégtulajdonos szemszögéből történő tervezésben.
Az alábbi ábra azt mutatja, hogyan Calabash A csomag rétegzett, a felül található üzletileg olvasható funkciófájltól az alján található eszközinterakcióig.
Hogyan kell telepíteni Calabash
Calabash on Windows négy előfeltétel telepítése szükséges egymás után. A következő rész megkezdése előtt minden részt teljesen teljesíts, mert a calabash-android gem Ruby-t és a Android SDK telepítés közben.
I. rész) Telepítés Java JDK – Lásd ezt az útmutatót – /install-java.html
II. rész) Töltse le és telepítse a Rubyt.
1. lépés) Töltsd le a Rubyt a következő helyről: URL https://rubyinstaller.org/downloads
2. lépés) Nyissa meg az exe fájlt, és kövesse a képernyőn megjelenő utasításokat. A telepítés befejezése után a következő képernyő jelenik meg. Kattintson a Befejezés gombra.
Indítsa el a Parancssort a Ruby bekapcsolásával Windows 10 és írja be a Parancs alá.
ruby -v
A konzol kinyomtatja a telepített interpreter verzióját, az alábbiak szerint.
III. rész) Töltse le és telepítse Android
1. lépés) Letöltés Android Studio at https://developer.android.com/studio
2. lépés) Nyissa meg az exe fájlt, kövesse a képernyőn megjelenő utasításokat, és fejezze be a telepítést. Ha kész, kattintson a Befejezés gombra.
IV. rész) Telepítés Calabash Android
1. lépés) A konzolba írd be: gem install calabash-android. A telepítés elindul, és eltart egy ideig, amíg befejeződik.
2. lépés) A telepítés befejezése után írja be: calabash-android version
Munka Calabash
A gem telepítése után a következő feladat a keretrendszer mappájának megkeresése és a hozzá tartozó csontváz megértése.
Nyissa meg a „calabash-android-0.9.0” mappát. A C útvonalon található:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. A mappanevek a gépére telepített ruby/calabash verzióval szinkronban változnak.
Nyissa meg a szolgáltatás csontváz mappáját. Ügyeljen erre az alapvető keretre.
- A *.feature fájl olyan forgatókönyveket tartalmaz, amelyeket automatizálni fogunk.
- A szolgáltatásfájl által használt módszer a „step_definitions” mappában található *.rb fájlba van írva.
- Az általános módszereket, a környezetbeállítást, az alkalmazástelepítést és a hook-okat a „support” mappában kell elhelyezni.
Mondjon le és építse meg az alkalmazást
- Calabash-android lemond *.apk
- Calabash-android build *.apk
A lemondás a fejlesztői aláírást egy hibakereső kulccsal cseréli le, így a tesztkiszolgáló eszközölheti az alkalmazást, és a build lépés létrehozza ezt a tesztkiszolgálót, ahogy az az alábbi konzolkimeneten is látható.
Csatlakoztassa az eszközt a rendszerhez / Nyissa meg az emulátort
Ellenőrizze a csatlakoztatott eszközt. Írja be a parancsot
adb devices
Megjelenik a csatlakoztatott eszközök listája. Ha az eszköz hiányzik, akkor az USB hibakeresési és párosítási lépések a ADB csatlakozási útmutató a legtöbb esetet megoldja.
Hogyan lehet megtalálni az elemkeresőt
- Nyissa ki a konzolt. Írja be a parancsot.
calabash-android console "APK Path" start_test_server_in_background
- A parancs felett indítsa el az alkalmazást az eszközön. Az elemkereső megtalálásához használja a következő parancsot.
query "*"
Ez az összes elemkeresőt megjeleníti az aktuális képernyőn. A vizuális ellenőrzést előnyben részesítő tesztelők ugyanazt a hierarchiát ellenőrizhetik a következővel: uiautomatorviewer.
Calabash Projektstruktúra és előre meghatározott lépések
A gem mappa kézi másolása helyett a keretrendszer képes egy működő projektet generálni. A generátor projektkönyvtáron belüli futtatása létrehozza a szabványos Cucumber elrendezés, amely minden Calabash a lakosztály elvárja.
calabash-android gen
A generált fa elválasztja a BDD-csomag három aspektusát:
- jellemzők/ — az Uborka-forgatókönyvek, az egyik .funkció fájl felhasználói útvonalonként.
- jellemzők/lépésdefiníciók/ — a Ruby metódusok, amelyek illeszkednek az egyes Gherkin sorokhoz, beleértve a mellékelt calabash_steps.rb fájlt is.
- funkciók/támogatás/ — környezeti konfiguráció és a hookok, amelyek minden forgatókönyv esetén telepítik, elindítják és leállítják az alkalmazást.
A csomagban található calabash_steps.rb fájl fontosabb, mint amilyennek elsőre látszik. Nagyszámú, előre elkészített angol nyelvű lépést tartalmaz, így egy első forgatókönyvben gombokat lehet megnyomni, szöveget beírni és látható karakterláncokon érvényesíteni az igényeket, mielőtt egyetlen egyéni metódus megírásra kerülne. Egyéni lépésekre csak akkor van szükség, ha egy folyamat kinövi ezeket a begyakorolt kifejezéseket.
Két projektszintű beállítást érdemes már a kezdeti szakaszban ismerni. A képernyőképek alapértelmezés szerint az aktuális munkakönyvtárba kerülnek, a SCREENSHOT_PATH környezeti változó pedig máshová irányítja át őket, ami rendben tartja a build artefaktusokat a megosztott gépen. A rendszerpárbeszédablakokkal vagy más alkalmazásokkal való interakcióhoz az UIAutomator2 backend szükséges, amelyet a start_test_server_in_background(with_uiautomator: true) paranccsal kell elindítani.
Új szkriptek létrehozása
Nyissa meg a szolgáltatásfájlt és a következő sorokat
Feature: Login feature Scenario: As a valid user I can log into my app When I press "Login" And I enter my username And I enter my password Then I see "Welcome to coolest app ever"
Nyissa meg a Step Definition fájlt, és adja meg a metódust *.rb fájlba.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Végezze el a tesztprojektet
A tesztprojekt végrehajtásához használja az alábbi parancsot
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Kinyomtatja az egyes lépéseket végrehajtás közben, és egy sikeres futtatás az itt látható forgatókönyvvel és lépésszámmal zárul.
Közös Calabash Hibák és hogyan javítsuk ki őket
Az első futtatásból adódó hibák többsége a tesztszerver által használt csomagolási és engedélyezési szabályokból ered, nem magából a forgatókönyvből. Az alábbi táblázat a leggyakrabban jelentett tüneteket a dokumentált okukhoz rendeli.
| Tünet | Valószínű ok és megoldás |
| Az alkalmazás a teszt megkezdésekor azonnal összeomlik | Az APK-ból hiányzik az android.permission.INTERNET fájl, amelyre a tesztszervernek szüksége van a parancsok elfogadásához. Deklaráld az engedélyt a következőben: AndroidManifest.xml fájl és újjáépítés. |
| A gombok és a szöveg nem reagál a koppintásra | Nincs deklarálva targetSdkVersion. Adjon hozzá egy uses-sdk bejegyzést, amely megnevezi az alkalmazás által használt SDK szintjét. |
| A tesztszerver nem tud csatlakozni az alkalmazáshoz | Az APK nem lett újraprogramozva a debug kulccsal. Futtassa a resign parancsot, majd a futtatás előtt fordítsa le újra. |
| Futásidőben nincsenek listázva eszközök | Az USB-hibakeresés ki van kapcsolva, vagy hiányzik az illesztőprogram. Először ellenőrizze, hogy a sorozatszám megjelenik-e az ADB-eszközök kimenetében. |
| A lépések meghatározatlan lépéshibával hiúsulnak meg | A Gherkin szóhasználat nem egyezik egyetlen reguláris kifejezéssel sem a step_definitions-ben. Másolja ki a javasolt kódrészletet. Cucumber kinyomtatja és megvalósítja. |
Két manifest bejegyzés javítja az első két sort. Add hozzá őket az APK újraindítása előtt.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Az időtúllépési hibák általában környezeti, nem pedig funkcionális eredetűek. Egy lassú emulátor, egy hideg alkalmazásindítás vagy egy háttérszinkronizálás mind a wait_for ablakon túlra tolhatja a képernyőt, ezért növelje az időtúllépést, mielőtt újraírna egy olyan lépést, amely valójában helyes volt.
Is Calabash Még mindig karbantartják? Alternatívák a modern mobil teszteléshez
Calabash már nem fejlesztik aktívan. Microsoft miután támogatta az iOS 11 végleges verzióját, abbahagyta a közreműködést. Android 8 kiadás, és a projekt mára egy archivált, nyílt forráskódú kódbázis karbantartó nélkül. A meglévő csomagok továbbra is futnak régebbi eszközökön, de az új munkák egy támogatott keretrendszeren kezdődnek.
| Keretrendszer | Emelvény | A legalkalmasabb |
| Appium | Android és iOS | Többplatformos csomagok Java, Python, Ruby vagy JavaSzkript, és a legközelebbi helyettesítője a Calabash csapat. |
| Espresso | Android csak | Gyors, folyamat közbeni tesztek Kotlinban vagy más nyelven írva Java maguk az alkalmazásfejlesztők által. |
| XCUITeszt | csak iOS esetén | Bennszülött Xcode lakosztályok, a nyugdíjba vonult támogatott utódja UIAutomation keretrendszer. |
| Maestro és méregtelenítő | Android és iOS | Újabb nyílt forráskódú projektek, amelyek a pehelyállóságot és a React Native alkalmazásokat célozzák. |
Maga a BDD szokás tisztán átkerül. Az uborka jellemzőfájlok pontosan úgy maradnak, ahogy vannak, és csak a lépésdefiníciós törzsek változnak, mert Cucumber a meghajtó felett helyezkedik el, nem pedig benne. A migráló csapatok általában megtartják a funkciófájlokat, és átírják a Ruby lépéseket a Appium, és ugyanazt használja újra mobil tesztelés eszközmátrix és automatizálási tesztelés már üzemeltetett csővezetéket.
















