Calabash Android Tutorialul instrumentului de testare
⚡ Rezumat inteligent
Calabash este un cadru de testare a acceptării open-source care declanșează acțiuni reale în interfața utilizatorului Android și aplicații iOS, folosind limba engleză simplă Cucumber scenarii susținute de definiții de pași Ruby și un server de testare pe partea de dispozitiv.
Ce Este Calabash?
Calabash este o acceptare open-source Testarea framework care vă permite să scrieți și să executați teste pentru iOS și Android Aplicații.
Este un cadru de interfață utilizator automat care permite scrierea testelor în Ruby folosind Cucumber.
Calabash funcționează prin activarea interacțiunilor automate ale interfeței utilizator în cadrul unei aplicații mobile, cum ar fi apăsarea butoanelor, introducerea textului, validarea răspunsurilor etc. Poate fi configurat să ruleze pe diferite Android și dispozitivele iOS, care oferă feedback și validări în timp real.
⚠️ Notă privind versiunea: Microsoft și-a încheiat contribuțiile la Calabash după iOS 11 final și Android 8 lansări și depozit calabash-android se descrie acum ca un proiect care caută un responsabil de întreținere. Ghidul de mai jos este păstrat așa cum este scris, iar înlocuirile moderne sunt acoperite în ultima secțiune.
De ce Calabash Automatizare?
Înainte de a instala orice, este util să cântărești avantajele oferite de framework în raport cu costurile de întreținere.
| Avantaje | Dezavantaje |
| Ajută la creșterea producției/ productivității. | Este necesară competența pentru a scrie scripturile de testare de automatizare. |
| Calitate îmbunătățită sau predictibilitate crescută a calității | Depanarea scriptului de testare este o problemă majoră. |
| Robustețe (consistență) îmbunătățită a proceselor sau produselor. | Întreținerea testului este costisitoare în cazul metodelor de redare. |
| Consecvența sporită a producției și reducerea costurilor și cheltuielilor cu forța de muncă | Întreținerea fișierelor de date de testare este dificilă dacă scriptul de testare testează mai multe ecrane |
Calabash și BDD
- Calabash is Dezvoltare bazată pe comportament (BDD)Este la fel ca Dezvoltare bazată pe teste (TDD), dar în loc să se creeze teste pentru a descrie forma API-urilor, se specifică comportamentul aplicației.
- BDD este un proces în care mai mulți factori interesați intervin pentru a crea o înțelegere comună a ceea ce trebuie construit.
- BDD este util în construirea software-ului potrivit și proiectarea din perspectiva proprietarului afacerii.
Diagrama de mai jos arată cum o Calabash Suita este structurată pe mai multe niveluri, de la fișierul de funcții lizibil pentru afaceri din partea de sus în jos, până la interacțiunea cu dispozitivul din partea de jos.
Cum se instalează Calabash
Calabash on Windows necesită patru cerințe preliminare instalate în ordine. Finalizați fiecare parte în întregime înainte de a începe următoarea, deoarece gema calabash-android verifică Ruby și Android SDK-ul în timpul instalării.
Partea I) Instalare Java JDK – Consultați acest ghid – /install-java.html
Partea a II-a) Descărcați și instalați Ruby.
Pasul 1) Descărcați Ruby de pe URL https://rubyinstaller.org/downloads
Pasul 2) Deschideți fișierul .exe și urmați instrucțiunile de pe ecran. După finalizarea instalării, veți vedea următorul ecran. Faceți clic pe Finish.
Porniți promptul de comandă cu Ruby activat Windows 10 și tastați mai jos Comanda.
ruby -v
Consola afișează versiunea interpretorului instalată, așa cum se arată mai jos.
Partea III) Descărcați și instalați Android
Pasul 1) Descărcați Android Studio at https://developer.android.com/studio
Pasul 2) Deschideți fișierul .exe, urmați instrucțiunile de pe ecran și finalizați instalarea. Faceți clic pe butonul de finalizare după ce ați terminat.
Partea a IV-a) Instalare Calabash Android
Pasul 1) În consolă, tastați gem install calabash-android. Instalarea va începe și va dura ceva timp până se va finaliza.
Pasul 2) După finalizarea instalării, tastați calabash-android version
Lucrul cu Calabash
Odată ce gem-ul este instalat, următoarea sarcină este să localizați folderul framework-ului și să înțelegeți scheletul cu care este livrat.
Deschideți folderul „calabash-android-0.9.0”. Acesta se află pe calea C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Numele folderelor se vor schimba în sincron cu versiunea ruby/calabash pe care o instalați pe computer.
Deschideți folderul schelet al caracteristicilor. Atenție la acest cadru de bază.
- Fișierul *.feature conține scenarii pe care urmează să le automatizăm.
- Metoda folosită de fișierul de caracteristici este scrisă în fișierul *.rb în folderul „step_definitions”.
- Metodele obișnuite, configurarea mediului, instalarea aplicației și cârligele ar trebui să fie plasate în folderul „suport”.
Demisia și construiește aplicația
- Calabash-android demisionează *.apk
- Calabash-versiunea android *.apk
Demisia înlocuiește semnătura dezvoltatorului cu o cheie de depanare, astfel încât serverul de testare să poată instrumenta aplicația, iar pasul de construire produce acel server de testare, așa cum se arată în ieșirea consolei de mai jos.
Atașați dispozitivul la sistem / Deschideți emulatorul
Verificați dispozitivul atașat. Tastați comanda
adb devices
Ar trebui să fie afișată lista dispozitivelor conectate. Dacă dispozitivul lipsește, urmați pașii de depanare și asociere USB din Ghid de conectare ADB rezolvă majoritatea cazurilor.
Cum să găsiți elementul de localizare
- Deschide consola. Tastați comanda.
calabash-android console "APK Path" start_test_server_in_background
- Comanda de mai sus lansați aplicația pe dispozitiv. Pentru a găsi locatorul de elemente, utilizați următoarea comandă.
query "*"
Aceasta va afișa toți localizatorii de elemente pe ecranul curent. Testerii care preferă un inspector vizual pot verifica aceeași ierarhie cu uiautomatorviewer.
Calabash Structura proiectului și pași predefiniți
În loc să copieze manual folderul gem, framework-ul poate genera un proiect funcțional. Rularea generatorului în directorul proiectului creează standardul Cucumber aspectul pe care fiecare Calabash suita așteaptă.
calabash-android gen
Arborele generat separă cele trei aspecte ale unei suite BDD:
- Caracteristici/ — scenariile Gherkin, unul .feature fișier per călătorie de utilizator.
- caracteristici/definiții_pași/ — metodele Ruby care se potrivesc fiecărei linii Gherkin, inclusiv fișierul calabash_steps.rb inclus în pachet.
- caracteristici/suport/ — configurația mediului și hook-urile care instalează, lansează și opresc aplicația în fiecare scenariu.
Fișierul calabash_steps.rb inclus în pachet contează mai mult decât pare la prima vedere. Acesta oferă un set mare de pași englezești predefiniți, astfel încât un prim scenariu poate apăsa butoane, introduce text și face afirmații pe șiruri vizibile înainte de a fi scrisă o singură metodă personalizată. Pașii personalizați sunt necesari doar după ce o metodă depășește acele fraze predefinite.
Două setări la nivel de proiect merită să fie cunoscute din timp. Capturile de ecran ajung în directorul de lucru curent în mod implicit, iar variabila de mediu SCREENSHOT_PATH le redirecționează în altă parte, ceea ce menține artefactele de compilare ordonate pe o mașină partajată. Interacțiunea cu dialogurile de sistem sau cu o altă aplicație necesită backend-ul UIAutomator2, pornit cu start_test_server_in_background(with_uiautomator: true).
Crearea de noi scripturi
Deschideți fișierul caracteristic și următoarele linii
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"
Deschideți fișierul Step Definition & Definiți metoda în fișierul *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Executați proiectul de testare
Pentru a executa proiectul de testare, utilizați comanda de mai jos
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber afișează fiecare pas pe măsură ce se execută, iar o rulare reușită se termină cu scenariul și totalurile de pași afișate aici.
Comun Calabash Erori și cum să le remediați
Majoritatea erorilor la prima rulare provin din regulile de ambalare și permisiuni de care depinde serverul de testare, nu din scenariul în sine. Tabelul de mai jos mapează simptomele raportate cel mai des cu cauza lor documentată.
| Simptom | Cauza probabilă și remedierea |
| Aplicația se blochează în momentul în care începe un test | APK-ului îi lipsește android.permission.INTERNET, de care serverul de testare are nevoie pentru a accepta comenzi. Declarați permisiunea în AndroidManifest.xml și reconstruiți. |
| Butoanele și textul refuză să răspundă la atingeri | Nu este declarată nicio versiune targetSdkVersion. Adăugați o intrare uses-sdk care să denumească nivelul SDK pentru care a fost construită aplicația. |
| Serverul de testare nu se poate conecta la aplicație | Fișierul APK nu a fost resemnat cu cheia de depanare. Rulați comanda resign, apoi reconstruiți înainte de a rula. |
| Niciun dispozitiv nu este listat în timpul execuției | Depanarea USB este dezactivată sau driverul lipsește. Confirmați mai întâi că numărul de serie apare în ieșirea dispozitivelor adb. |
| Pașii eșuează cu o eroare de pas nedefinită | Formularea din Gherkin nu corespunde niciunei expresii regulate din step_definitions. Copiați fragmentul sugerat. Cucumber tipărește și implementează-l. |
Două intrări în manifest corectează primele două rânduri. Adăugați-le înainte de a renunța la APK.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Eșecurile de timeout sunt de obicei de mediu, mai degrabă decât funcționale. Un emulator lent, o pornire la rece a aplicației sau o sincronizare în fundal pot împinge un ecran dincolo de fereastra wait_for, așa că creșteți timeout-ul înainte de a rescrie un pas care a fost de fapt corect.
Is Calabash Încă întreținut? Alternative pentru testarea mobilă modernă
Calabash nu mai este dezvoltat activ. Microsoft a încetat să mai contribuie după ce a oferit suport pentru versiunea finală de iOS 11 și Android 8 versiuni, iar proiectul este acum o bază de cod open-source arhivată, fără un administrator. Suitele existente încă rulează pe dispozitive mai vechi, dar ar trebui să înceapă lucrări noi pe un framework suportat.
| Cadru | Platformă | Cel mai potrivit pentru |
| Appium | Android și iOS | Suite multiplatformă în Java, Python, Rubin sau JavaScript și cel mai apropiat înlocuitor pentru un Calabash echipă. |
| Espresso | Android | Teste rapide în proces scrise în Kotlin sau Java de către dezvoltatorii de aplicații înșiși. |
| Testul XCUIT | Numai iOS | Nativ Xcode suite, succesorul susținut al pensionarului Framework-ul de automatizare a interfețelor utilizator (UIAutomation). |
| Maestro și Detoxifiere | Android și iOS | Proiecte open-source mai noi care vizează rezistența la fulgi și aplicațiile React Native. |
Obiceiul BDD în sine se transferă curat. Fișierele de caracteristici Gherkin rămân exact așa cum sunt și se schimbă doar corpurile de definire a pașilor, deoarece Cucumber se află deasupra driverului, nu în interiorul acestuia. Echipele care migrează păstrează de obicei fișierele de caracteristici, rescriu pașii Ruby în funcție de Appiumși reutilizați același lucru testarea mobilă matricea dispozitivului și testarea automatizării conductă pe care o conduc deja.
















