Calabash Android Tutorial sugli strumenti di test
⚡ Riepilogo intelligente
Calabash è un framework di test di accettazione open-source che guida azioni reali dell'interfaccia utente su Android e applicazioni iOS, utilizzando un linguaggio semplice Cucumber scenari supportati da definizioni di passaggi Ruby e da un server di test lato dispositivo.

Cosa è Calabash?
Calabash è un'accettazione open-source Collaudo framework che ti consente di scrivere ed eseguire test per iOS e Android Apps.
Si tratta di un framework di interfaccia utente automatizzato che consente di scrivere test in Ruby utilizzando Cucumber.
Calabash Funziona abilitando interazioni automatiche dell'interfaccia utente all'interno di un'applicazione mobile, come la pressione di pulsanti, l'inserimento di testo, la convalida delle risposte, ecc. Può essere configurato per funzionare su diversi dispositivi. Android e dispositivi iOS, che forniscono feedback e convalide in tempo reale.
⚠️ Nota sulla versione: Microsoft ha concluso i suoi contributi a Calabash dopo la versione finale di iOS 11 e Android 8 uscite e il repository calabash-android Ora si descrive come un progetto in cerca di un manutentore. La procedura descritta di seguito è conservata così come è stata scritta, mentre le alternative moderne sono trattate nell'ultima sezione.
Perché Calabash Automazione?
Prima di installare qualsiasi cosa, è utile valutare i vantaggi offerti dal framework rispetto ai costi di manutenzione.
| Vantaggi | Svantaggi |
| Aiuta ad aumentare il throughput/produttività. | È richiesta competenza per scrivere gli script di test di automazione. |
| Qualità migliorata o maggiore prevedibilità della qualità | Il debug dello script di test è un grosso problema. |
| Maggiore robustezza (coerenza) di processi o prodotti. | La manutenzione del test è costosa in caso di metodi di riproduzione. |
| Maggiore coerenza della produzione e riduzione dei costi e delle spese di manodopera | La manutenzione dei file di dati di test risulta difficile se lo script di test testa più schermate |
Calabash e BDD
- Calabash is Sviluppo guidato dal comportamento (BDD)È uguale a Sviluppo guidato dai test (TDD)ma invece di creare test per descrivere la struttura delle API, viene specificato il comportamento dell'applicazione.
- BDD è un processo in cui più parti interessate contribuiscono a creare una comprensione comune di ciò che deve essere costruito.
- BDD è utile nella creazione del software giusto e nella progettazione dal punto di vista dell'imprenditore.
Il diagramma sottostante mostra come un Calabash La suite è strutturata a livelli, dal file delle funzionalità leggibile dal punto di vista aziendale in alto fino all'interazione con il dispositivo in basso.
Come installare Calabash
Calabash on Windows richiede l'installazione di quattro prerequisiti in ordine. Completa ogni parte completamente prima di iniziare la successiva, perché la gemma calabash-android controlla Ruby e il Android SDK durante l'installazione.
Parte I) Installazione Java JDK – Fare riferimento a questa guida – /install-java.html
Parte II) Scarica e installa Ruby.
Passaggio 1) Scarica Ruby da URL https://rubyinstaller.org/downloads
Passaggio 2) Apri il file .exe e segui le istruzioni visualizzate sullo schermo. Una volta completata l'installazione, vedrai la schermata seguente. Fai clic su Fine.
Avvia il prompt dei comandi con Ruby attivo Windows 10 e digita sotto Comando.
ruby -v
La console visualizza la versione dell'interprete installato, come mostrato di seguito.
Parte III) Scarica e installa Android
Passaggio 1) Scarica Android Studio at https://developer.android.com/studio
Passaggio 2) Apri il file .exe, segui le istruzioni visualizzate sullo schermo e completa l'installazione. Fai clic sul pulsante Fine al termine.
Parte IV) Installare Calabash Android
Passaggio 1) Nella console digita gem install calabash-android. L'installazione inizierà e richiederà del tempo per essere completata.
Passaggio 2) Una volta completata l'installazione, digitare calabash-android version
Lavorando con Calabash
Una volta installata la gemma, il compito successivo è individuare la cartella del framework e comprenderne la struttura di base.
Apri la cartella “calabash-android-0.9.0”. Si trova nel percorso C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. I nomi delle cartelle cambieranno in sincronia con la versione di ruby/calabash che installi sul tuo computer.
Aprire la cartella dello scheletro della funzionalità. Cerca questo quadro di base.
- Il file *.feature contiene gli scenari che automatizzeremo.
- Il metodo utilizzato dal file di funzionalità è scritto nel file *.rb all'interno della cartella “step_definitions”.
- I metodi comuni, la configurazione dell'ambiente, l'installazione dell'app e gli hook devono essere inseriti nella cartella "supporto".
Dimettersi e creare l'app
- Calabash-rilasciare Android *.apk
- Calabash- build Android *.apk
La rifirma sostituisce la firma dello sviluppatore con una chiave di debug, consentendo al server di test di strumentare l'applicazione, e la fase di compilazione produce tale server di test, come mostrato nell'output della console riportato di seguito.
Collega il dispositivo al sistema/Apri l'emulatore
Controllare il dispositivo collegato. Digita il comando
adb devices
Dovrebbe essere visualizzato l'elenco dei dispositivi collegati. Se il dispositivo non è presente, seguire i passaggi di debug e abbinamento USB in Guida alla connessione ADB Risolve la maggior parte dei casi.
Come trovare il localizzatore di elementi
- Apri la console. Digita il comando.
calabash-android console "APK Path" start_test_server_in_background
- Il comando soprastante avvia l'app sul dispositivo. Per trovare il localizzatore dell'elemento usa il seguente comando.
query "*"
Questo visualizzerà tutti i localizzatori degli elementi nella schermata corrente. I tester che preferiscono un ispettore visivo possono verificare la stessa gerarchia con uiautomatorviewer.
Calabash Struttura del progetto e fasi predefinite
Invece di copiare manualmente la cartella gem, il framework può generare un progetto funzionante per te. Eseguendo il generatore all'interno della directory del tuo progetto si crea lo standard Cucumber layout che ogni Calabash la suite si aspetta.
calabash-android gen
L'albero generato separa le tre problematiche di una suite BDD:
- Caratteristiche/ — gli scenari Gherkin, uno .caratteristica file per percorso utente.
- caratteristiche/definizioni_di_passo/ — i metodi Ruby che corrispondono a ciascuna riga di Gherkin, incluso il file calabash_steps.rb incluso.
- funzionalità/supporto/ — configurazione dell'ambiente e meccanismi di aggancio per installare, avviare e arrestare l'applicazione in ogni scenario.
Il file calabash_steps.rb incluso è più importante di quanto sembri a prima vista. Fornisce un ampio set di passaggi predefiniti in inglese, in modo che un primo scenario possa premere pulsanti, inserire testo ed effettuare asserzioni su stringhe visibili prima ancora di scrivere un singolo metodo personalizzato. I passaggi personalizzati sono necessari solo quando il percorso va oltre queste frasi predefinite.
Due impostazioni a livello di progetto è utile conoscere fin da subito. Gli screenshot vengono salvati per impostazione predefinita nella directory di lavoro corrente, mentre la variabile d'ambiente SCREENSHOT_PATH li reindirizza altrove, mantenendo così gli artefatti di compilazione in ordine su una macchina condivisa. L'interazione con le finestre di dialogo di sistema o con altre applicazioni richiede il backend UIAutomator2, avviato con start_test_server_in_background(with_uiautomator: true).
Creazione di nuovi script
Aprire il file delle funzionalità e le seguenti righe
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"
Aprire il file di definizione del passaggio e definire il metodo nel file *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Eseguire il progetto di prova
Per eseguire il progetto di test, utilizzare il comando seguente
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Il programma stampa ogni passaggio durante l'esecuzione e un'esecuzione corretta termina con lo scenario e i totali dei passaggi mostrati qui.
Uncommon Calabash Errori e come risolverli
La maggior parte degli errori al primo avvio deriva dalle regole di packaging e di autorizzazione da cui dipende il server di test, non dallo scenario in sé. La tabella seguente associa i sintomi segnalati più frequentemente alla loro causa documentata.
| Sintomo | Probabile causa e soluzione |
| L'applicazione si blocca non appena inizia un test. | L'APK non ha il permesso android.permission.INTERNET, necessario al server di test per accettare i comandi. Dichiara il permesso in AndroidManifest.xml e ricompila. |
| I pulsanti e il testo non rispondono ai tocchi | Non è stata dichiarata alcuna targetSdkVersion. Aggiungere una voce uses-sdk che specifichi il livello SDK con cui è stata compilata l'applicazione. |
| Il server di test non riesce a connettersi all'applicazione. | L'APK non è stato firmato nuovamente con la chiave di debug. Eseguire il comando di firma, quindi ricompilare prima di eseguire. |
| Al momento dell'esecuzione non viene visualizzato alcun dispositivo. | Il debug USB è disattivato oppure il driver è mancante. Verificare innanzitutto che il numero di serie compaia nell'output di adb devices. |
| I passaggi falliscono con un errore di passaggio non definito | La formulazione Gherkin non corrisponde ad alcuna espressione regolare in step_definitions. Copia il frammento suggerito Cucumber stampa e implementalo. |
Due voci nel file manifest correggono le prime due righe. Aggiungile prima di firmare nuovamente l'APK.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
I problemi di timeout sono generalmente dovuti a fattori ambientali piuttosto che funzionali. Un emulatore lento, l'avvio a freddo dell'applicazione o una sincronizzazione in background possono far sì che una schermata superi la finestra di attesa, quindi è consigliabile aumentare il timeout prima di riscrivere un passaggio che in realtà era corretto.
Is Calabash Ancora in fase di manutenzione? Alternative per il test di dispositivi mobili moderni
Calabash non è più attivamente sviluppato. Microsoft ha smesso di contribuire dopo aver supportato la versione finale di iOS 11 e Android Dopo 8 release, il progetto è ora un codice sorgente open-source archiviato e privo di un manutentore. Le suite esistenti funzionano ancora su dispositivi meno recenti, ma i nuovi sviluppi dovrebbero essere avviati su un framework supportato.
| Contesto | Piattaforma | più adatto a |
| Appium | Android e iOS | Suite multipiattaforma in Java, Python, Rubino o JavaScript e il sostituto più vicino per un Calabash squadra. |
| Espresso | Android esclusivamente | Test veloci in-process scritti in Kotlin o Java dagli sviluppatori dell'applicazione stessi. |
| XCUITest | solo iOS | Native Xcode suite, il successore supportato del ritirato Framework di automazione dell'interfaccia utente. |
| Maestro e Detox | Android e iOS | Progetti open-source più recenti volti a migliorare la resistenza ai bug e le applicazioni React Native. |
L'abitudine BDD stessa si trasferisce senza problemi. I file delle funzionalità Gherkin rimangono esattamente come sono e cambiano solo i corpi delle definizioni dei passaggi, perché Cucumber si trova sopra il driver piuttosto che al suo interno. I team che migrano di solito mantengono i file delle funzionalità, riscrivono i passaggi Ruby rispetto a Appiume riutilizzare lo stesso test mobile matrice del dispositivo e test di automazione pipeline che già gestiscono.
















