Calabash Android Tutoriel sur l'outil de test
⚡ Résumé intelligent
Calabash est un framework de tests d'acceptation open-source qui pilote de véritables actions d'interface utilisateur sur Android et des applications iOS, en utilisant un anglais simple Cucumber scénarios reposant sur des définitions d'étapes Ruby et un serveur de test côté périphérique.
Qu'est-ce que le Calabash?
Calabash est une acceptation open-source Tests framework qui vous permet d'écrire et d'exécuter des tests pour iOS et Android Applications.
Il s'agit d'un framework d'interface utilisateur automatisé qui permet d'écrire des tests en Ruby. Cucumber.
Calabash Il fonctionne en activant les interactions automatiques avec l'interface utilisateur d'une application mobile, telles que le clic sur des boutons, la saisie de texte, la validation de réponses, etc. Il peut être configuré pour s'exécuter sur différents appareils. Android et les appareils iOS, qui fournissent des commentaires et des validations en temps réel.
⚠️ Note de version : Microsoft a mis fin à ses contributions à Calabash après la version finale d'iOS 11 et Android 8 sorties, et les dépôt calabash-android Ce projet se présente désormais comme recherchant un responsable de la maintenance. La procédure détaillée ci-dessous est conservée telle quelle, et les solutions de remplacement modernes sont présentées dans la dernière section.
Pourquoi Calabash Automatisation?
Avant toute installation, il est utile de comparer les avantages du système aux coûts de maintenance.
| Avantages | Désavantages |
| Cela contribue à augmenter le débit/productivité. | Des compétences sont requises pour rédiger les scripts de tests d’automatisation. |
| Qualité améliorée ou prévisibilité accrue de la qualité | Le débogage du script de test est un problème majeur. |
| Robustesse (cohérence) améliorée des processus ou des produits. | La maintenance des tests est coûteuse dans le cas des méthodes de lecture. |
| Cohérence accrue de la production et réduction des coûts et dépenses de main-d’œuvre | La maintenance des fichiers de données de test est difficile si le script de test teste plus d'écrans |
Calabash et BDD
- Calabash is Développement axé sur le comportement (BDD)C'est la même chose que Développement piloté par les tests (TDD)mais au lieu de créer des tests pour décrire la structure des API, c'est le comportement de l'application qui est spécifié.
- Le BDD est un processus dans lequel plusieurs parties prenantes interviennent pour créer une compréhension commune de ce qui doit être construit.
- BDD est utile pour créer le bon logiciel et le concevoir du point de vue du propriétaire de l'entreprise.
Le schéma ci-dessous montre comment un Calabash La suite est structurée en couches, depuis le fichier de fonctionnalités lisible par les métiers en haut jusqu'à l'interaction avec l'appareil en bas.
Comment installer Calabash
Calabash on Windows Quatre prérequis doivent être installés dans l'ordre. Terminez chaque étape entièrement avant de passer à la suivante, car la gem calabash-android vérifie la présence de Ruby et de Android Kit de développement logiciel (SDK) lors de l'installation.
Partie I) Installation Java JDK – Reportez-vous à ce guide – /install-java.html
Partie II) Téléchargez et installez Ruby.
Étape 1) Téléchargez Ruby depuis le URL https://rubyinstaller.org/downloads
Étape 2) Ouvrez le fichier .exe et suivez les instructions à l'écran. Une fois l'installation terminée, l'écran suivant s'affichera. Cliquez sur Terminer.
Démarrer l'invite de commande avec Ruby activé Windows 10 et tapez ci-dessous Commande.
ruby -v
La console affiche la version de l'interpréteur installée, comme indiqué ci-dessous.
Partie III) Télécharger et installer Android
Étape 1) Téléchargez Android Studio at https://developer.android.com/studio
Étape 2) Ouvrez le fichier .exe, suivez les instructions à l'écran et terminez l'installation. Cliquez sur le bouton « Terminer » une fois l'installation terminée.
Partie IV) Installation Calabash Android
Étape 1) Dans la console, saisissez `gem install calabash-android`. L'installation démarrera et prendra un certain temps.
Étape 2) Une fois l'installation terminée, saisissez calabash-android version
Travailler avec Calabash
Une fois la gemme installée, la prochaine étape consiste à localiser le dossier du framework et à comprendre la structure de base avec laquelle il est fourni.
Ouvrez le dossier « calebasse-android-0.9.0 ». Il réside dans le chemin C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Les noms des dossiers changeront en synchronisation avec la version Ruby/Calebash que vous installez sur votre ordinateur.
Ouvrez le dossier du squelette de fonctionnalités. Recherchez ce cadre de base.
- Le fichier *.feature contient des scénarios que nous allons automatiser.
- La méthode utilisée par le fichier de fonctionnalités est écrite dans le fichier *.rb dans le dossier « step_definitions ».
- Les méthodes courantes, la configuration de l'environnement, l'installation de l'application et les hooks doivent être placés dans le dossier « support ».
Démissionnez et créez l'application
- Calabash-Android resign *.apk
- Calabash-version Android *.apk
La resignature remplace la signature du développeur par une clé de débogage afin que le serveur de test puisse instrumenter l'application, et l'étape de compilation produit ce serveur de test, comme le montre la sortie de la console ci-dessous.
Connectez l'appareil au système/Ouvrez l'émulateur
Vérifiez le périphérique connecté. Tapez la commande
adb devices
La liste des périphériques connectés devrait s'afficher. Si le périphérique est absent, suivez les étapes de débogage et d'appairage USB décrites dans la section correspondante. Guide de connexion ADB résoudre la plupart des cas.
Comment trouver le localisateur d'éléments
- Ouvrez la console. Tapez la commande.
calabash-android console "APK Path" start_test_server_in_background
- La commande ci-dessus lance l’application sur l’appareil. Pour trouver le localisateur d'éléments, utilisez la commande suivante.
query "*"
Ceci affichera tous les localisateurs d'éléments sur l'écran actuel. Les testeurs qui préfèrent un inspecteur visuel peuvent vérifier la même hiérarchie avec uiautomatorviewer.
Calabash Structure du projet et étapes prédéfinies
Plutôt que de copier manuellement le dossier gem, le framework peut générer un projet fonctionnel pour vous. L'exécution du générateur dans le répertoire de votre projet crée le fichier standard. Cucumber disposition que chaque Calabash la suite s'attend à.
calabash-android gen
L'arbre généré sépare les trois préoccupations d'une suite BDD :
- traits/ — les scénarios du Gherkin, un .fonctionnalité Un fichier par parcours utilisateur.
- fonctionnalités/définitions_étapes/ — les méthodes Ruby qui correspondent à chaque ligne Gherkin, y compris le fichier calabash_steps.rb inclus.
- fonctionnalités/assistance/ — la configuration de l'environnement et les hooks qui installent, lancent et arrêtent l'application dans chaque scénario.
Le fichier calabash_steps.rb inclus est plus important qu'il n'y paraît. Il contient un grand nombre d'étapes prédéfinies en anglais, permettant ainsi à un premier scénario d'appuyer sur des boutons, de saisir du texte et d'effectuer des assertions sur des chaînes de caractères visibles avant même d'écrire une seule méthode personnalisée. Les étapes personnalisées ne sont nécessaires que lorsque le parcours utilisateur dépasse le cadre de ces phrases prédéfinies.
Il est important de connaître rapidement deux paramètres de projet. Par défaut, les captures d'écran sont enregistrées dans le répertoire de travail courant. La variable d'environnement SCREENSHOT_PATH permet de les rediriger vers un autre emplacement, ce qui facilite la gestion des fichiers de compilation sur une machine partagée. L'interaction avec les boîtes de dialogue système ou une autre application nécessite le serveur UIAutomator2, démarré avec la commande `start_test_server_in_background(with_uiautomator: true)`.
Création de nouveaux scripts
Ouvrez le fichier de fonctionnalités et les lignes suivantes
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"
Ouvrez le fichier de définition d'étape et définissez la méthode dans le fichier *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Exécuter le projet de test
Pour exécuter le projet de test, utilisez la commande ci-dessous
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Le programme affiche chaque étape au fur et à mesure de son exécution, et une exécution réussie se termine par le scénario et le total des étapes affichés ici.
Commun Calabash Erreurs et comment les corriger
La plupart des échecs lors de la première exécution proviennent des règles d'empaquetage et d'autorisation dont dépend le serveur de test, et non du scénario lui-même. Le tableau ci-dessous associe les symptômes les plus fréquemment signalés à leurs causes documentées.
| Symptôme | Cause probable et solution |
| L'application plante dès le début d'un test. | L'APK ne contient pas l'autorisation android.permission.INTERNET, nécessaire au serveur de test pour accepter les commandes. Déclarez cette autorisation dans AndroidManifest.xml et reconstruisez. |
| Les boutons et le texte ne répondent pas aux pressions. | Aucune version cible du SDK n'est déclarée. Ajoutez une entrée uses-sdk indiquant le niveau du SDK utilisé pour la compilation de l'application. |
| Le serveur de test ne parvient pas à se connecter à l'application. | Le fichier APK n'a pas été resigné avec la clé de débogage. Exécutez la commande de resignature, puis compilez à nouveau avant de l'exécuter. |
| Aucun périphérique n'est répertorié lors de l'exécution. | Le débogage USB est désactivé ou le pilote est manquant. Vérifiez d'abord que le numéro de série apparaît bien dans la sortie de la commande `adb devices`. |
| Les étapes échouent avec une erreur d'étape non définie | La formulation Gherkin ne correspond à aucune expression régulière dans step_definitions. Copiez l'extrait suggéré. Cucumber imprime et met en œuvre. |
Deux entrées dans le manifeste corrigent les deux premières lignes. Ajoutez-les avant de resigner l'APK.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Les échecs de délai d'attente sont généralement dus à des facteurs environnementaux plutôt qu'à des problèmes fonctionnels. Un émulateur lent, un démarrage à froid de l'application ou une synchronisation en arrière-plan peuvent tous faire dépasser la fenêtre d'attente ; il est donc conseillé d'augmenter le délai d'attente avant de modifier une étape qui était en réalité correcte.
Is Calabash Toujours maintenu ? Alternatives pour les tests mobiles modernes
Calabash n'est plus activement développé. Microsoft a cessé de contribuer après avoir pris en charge la version finale d'iOS 11 et Android Après huit versions, le projet est désormais un code source ouvert archivé, sans responsable de maintenance. Les suites existantes fonctionnent encore sur les anciens appareils, mais les nouveaux développements devraient s'appuyer sur une plateforme prise en charge.
| FrameworkTA | Plateforme complète | Meilleur adapté à |
| Appium | Android et iOS | Suites multiplateformes dans Java, Python, Ruby ou JavaScript, et le remplacement le plus proche pour un Calabash Équipe. |
| Espresso | Android uniquement | Tests rapides en cours d'exécution écrits en Kotlin ou Java par les développeurs de l'application eux-mêmes. |
| Test XCUIT | iOS seulement | Originaire Xcode suites, le successeur pris en charge des retraités Cadre d'automatisation de l'interface utilisateur. |
| Maestro et Détox | Android et iOS | De nouveaux projets open source visant à améliorer la résistance aux artefacts et les applications React Native. |
L'habitude BDD se transpose sans problème. Les fichiers de fonctionnalités Gherkin restent inchangés, seuls les corps des définitions d'étapes changent, car Cucumber Il se situe au-dessus du pilote plutôt qu'à l'intérieur. Les équipes qui migrent conservent généralement les fichiers de fonctionnalités et réécrivent les étapes Ruby en conséquence. Appiumet réutiliser le même test mobile matrice de dispositifs et tests d'automatisation pipeline qu'ils exploitent déjà.
















