Calabash Android Tutorial zum Testtool
โก Intelligente Zusammenfassung
Calabash ist ein Open-Source-Akzeptanztest-Framework, das echte Benutzeroberflรคchenaktionen auslรถst. Android und iOS-Anwendungen, in einfacher Sprache Cucumber Szenarien, die durch Ruby-Schrittdefinitionen und einen gerรคteseitigen Testserver unterstรผtzt werden.
Was ist Calabash?
Calabash ist eine Open-Source-Akzeptanz Tests Framework, mit dem Sie Tests fรผr iOS schreiben und ausfรผhren kรถnnen Android Apps.
Es handelt sich um ein automatisiertes Benutzeroberflรคchen-Framework, das es ermรถglicht, Tests in Ruby zu schreiben. Cucumber.
Calabash Es ermรถglicht automatische UI-Interaktionen innerhalb einer mobilen Anwendung, wie z. B. das Drรผcken von Schaltflรคchen, die Texteingabe, die Validierung von Antworten usw. Es kann fรผr die Ausfรผhrung auf verschiedenen Systemen konfiguriert werden. Android und iOS-Gerรคte, die Echtzeit-Feedback und -Validierungen bieten.
โ ๏ธ Versionshinweis: Microsoft beendete seine Beitrรคge zu Calabash nach der endgรผltigen iOS 11 und Android 8 Verรถffentlichungen und die calabash-android Repository Das Projekt wird nun als solches beschrieben, das einen Betreuer sucht. Die unten stehende Anleitung bleibt unverรคndert, die modernen Alternativen werden im letzten Abschnitt erlรคutert.
Warum Calabash Automatisierung?
Vor der Installation von irgendetwas ist es hilfreich, abzuwรคgen, welchen Nutzen das System bringt und welche Wartungskosten anfallen.
| Vorteile | Nachteile |
| Es hilft, den Durchsatz/die Produktivitรคt zu steigern. | Zum Schreiben der Automatisierungstestskripte sind Kenntnisse erforderlich. |
| Verbesserte Qualitรคt oder erhรถhte Vorhersagbarkeit der Qualitรคt | Das Debuggen des Testskripts ist ein groรes Problem. |
| Verbesserte Robustheit (Konsistenz) von Prozessen oder Produkten. | Bei Wiedergabemethoden ist die Testwartung kostspielig. |
| Erhรถhte Konstanz der Produktion und Reduzierung der Arbeitskosten und -ausgaben | Die Pflege von Testdatendateien ist schwierig, wenn das Testskript mehr Bildschirme testet |
Calabash und BDD
- Calabash is Verhaltensgesteuerte Entwicklung (BDD)Es ist dasselbe wie Testgetriebene Entwicklung (TDD)Anstatt jedoch Tests zu erstellen, die die Struktur von APIs beschreiben, wird das Anwendungsverhalten spezifiziert.
- BDD ist ein Prozess, bei dem mehrere Interessengruppen zusammenwirken, um ein gemeinsames Verstรคndnis darรผber zu schaffen, was aufgebaut werden muss.
- BDD ist hilfreich beim Erstellen der richtigen Software und beim Entwerfen aus der Sicht des Geschรคftsinhabers.
Das untenstehende Diagramm zeigt, wie ein Calabash Die Suite ist geschichtet, von der fรผr Geschรคftsanwender lesbaren Funktionsdatei ganz oben bis hin zur Gerรคteinteraktion ganz unten.
Wie installiert man Calabash
Calabash on Windows Es werden vier Voraussetzungen benรถtigt, die in der vorgegebenen Reihenfolge installiert werden mรผssen. Schlieรen Sie jeden Schritt vollstรคndig ab, bevor Sie mit dem nรคchsten beginnen, da das Calabash-Android-Gem Ruby und die Android-Bibliothek รผberprรผft. Android SDK wรคhrend der Installation.
Teil I) Installation Java JDK โ Lesen Sie diese Anleitung โ /install-java.html
Teil II) Laden Sie Ruby herunter und installieren Sie es.
Schritt 1) โโLaden Sie Ruby von der URL https://rubyinstaller.org/downloads
Schritt 2) รffnen Sie die .exe-Datei und folgen Sie den Anweisungen auf dem Bildschirm. Nach Abschluss der Installation wird der folgende Bildschirm angezeigt. Klicken Sie auf โFertigstellenโ.
Starten Sie die Eingabeaufforderung mit aktiviertem Ruby Windows 10 & geben Sie unten den Befehl ein.
ruby -v
Die Konsole gibt die installierte Interpreterversion aus, wie unten dargestellt.
Teil III) Herunterladen und installieren Android
Schritt 1) โโHerunterladen Android Studio at https://developer.android.com/studio
Schritt 2) รffnen Sie die EXE-Datei, folgen Sie den Anweisungen auf dem Bildschirm und schlieรen Sie die Installation ab. Klicken Sie anschlieรend auf die Schaltflรคche โFertigstellenโ.
Teil IV) Installieren Calabash Android
Schritt 1) โโGeben Sie in der Konsole โgem install calabash-androidโ ein. Die Installation wird gestartet und kann einige Zeit dauern.
Schritt 2) Nach Abschluss der Installation geben Sie calabash-android version ein
In Zusammenarbeit mit Calabash
Nach der Installation des Gems besteht die nรคchste Aufgabe darin, den Framework-Ordner zu finden und das darin enthaltene Grundgerรผst zu verstehen.
รffnen Sie den Ordner โcalabash-android-0.9.0โ. Er befindet sich unter dem Pfad C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Die Ordnernamen รคndern sich synchron mit der Ruby-/Calabash-Version, die Sie auf Ihrem Computer installieren.
รffnen Sie den Feature-Gerรผstordner. Achten Sie auf dieses Grundgerรผst.
- Die *.feature-Datei enthรคlt Szenarien, die wir automatisieren werden.
- Die von der Feature-Datei verwendete Methode wird in die *.rb-Datei im Ordner โstep_definitionsโ geschrieben.
- Gรคngige Methoden, Umgebungseinrichtung, App-Installation und Hooks sollten im Ordner โsupportโ abgelegt werden.
Zurรผcktreten und die App erstellen
- Calabash-android resign *.apk
- Calabash-android build *.apk
Durch das erneute Signieren wird die Entwicklersignatur durch einen Debug-Schlรผssel ersetzt, damit der Testserver die Anwendung instrumentieren kann. Der Build-Schritt erzeugt dann diesen Testserver, wie die untenstehende Konsolenausgabe zeigt.
Schlieรen Sie das Gerรคt an das System an / รffnen Sie den Emulator
รberprรผfen Sie das angeschlossene Gerรคt. Geben Sie den Befehl ein
adb devices
Die Liste der angeschlossenen Gerรคte sollte angezeigt werden. Falls das Gerรคt fehlt, fรผhren Sie die Schritte zum USB-Debugging und zur Kopplung durch. ADB-Verbindungsanleitung Die meisten Fรคlle werden gelรถst.
So finden Sie den Element-Locator
- รffnen Sie die Konsole. Geben Sie den Befehl ein.
calabash-android console "APK Path" start_test_server_in_background
- Der obige Befehl startet die App auf dem Gerรคt. Um den Element-Locator zu finden, verwenden Sie den folgenden Befehl.
query "*"
Dadurch werden alle Element-Locators auf dem aktuellen Bildschirm angezeigt. Tester, die einen visuellen Inspektor bevorzugen, kรถnnen dieselbe Hierarchie mit folgenden Tools รผberprรผfen: uiautomatorviewer.
Calabash Projektstruktur und vordefinierte Schritte
Anstatt den Gem-Ordner manuell zu kopieren, kann das Framework ein funktionierendes Projekt fรผr Sie generieren. Durch Ausfรผhren des Generators in Ihrem Projektverzeichnis wird der Standard erstellt. Cucumber Layout, das jedes Calabash Suite erwartet.
calabash-android gen
Der generierte Baum trennt die drei Belange einer BDD-Suite:
- Eigenschaften/ โ die Gherkin-Szenarien, eines .Besonderheit Datei pro Benutzerreise.
- features/step_definitions/ โ die Ruby-Methoden, die zu jeder Gherkin-Zeile passen, einschlieรlich der mitgelieferten calabash_steps.rb.
- Funktionen/Unterstรผtzung/ โ Umgebungskonfiguration und die Hooks, die die Anwendung in jedem Szenario installieren, starten und beenden.
Die mitgelieferte Datei calabash_steps.rb ist wichtiger als man zunรคchst vermuten wรผrde. Sie enthรคlt eine Vielzahl vorgefertigter englischer Schritte, sodass in einem ersten Szenario bereits Schaltflรคchen gedrรผckt, Text eingegeben und sichtbare Zeichenketten รผberprรผft werden kรถnnen, bevor auch nur eine einzige eigene Methode geschrieben werden muss. Eigene Schritte sind erst dann erforderlich, wenn ein Ablauf รผber diese vorgefertigten Phrasen hinausgeht.
Zwei Projekteinstellungen sind besonders wichtig. Screenshots werden standardmรครig im aktuellen Arbeitsverzeichnis gespeichert. Die Umgebungsvariable `SCREENSHOT_PATH` leitet sie jedoch an einen anderen Ort um, wodurch die Build-Artefakte auf einem gemeinsam genutzten Rechner รผbersichtlich bleiben. Fรผr die Interaktion mit Systemdialogen oder anderen Anwendungen ist das UIAutomator2-Backend erforderlich, das mit `start_test_server_in_background(with_uiautomator: true)` gestartet wird.
Neue Skripte erstellen
รffnen Sie die Feature-Datei und die folgenden Zeilen
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"
รffnen Sie die Schrittdefinitionsdatei und definieren Sie die Methode in der *.rb-Datei.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Fรผhren Sie das Testprojekt aus
Um das Testprojekt auszufรผhren, verwenden Sie den folgenden Befehl
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Gibt jeden Schritt wรคhrend der Ausfรผhrung aus, und ein erfolgreicher Durchlauf endet mit dem hier angezeigten Szenario und der Gesamtzahl der Schritte.
gemeinsam Calabash Fehler und wie man sie behebt
Die meisten Fehler beim ersten Start sind auf die Paketierungs- und Berechtigungsregeln zurรผckzufรผhren, von denen der Testserver abhรคngt, nicht auf das Szenario selbst. Die folgende Tabelle ordnet die am hรคufigsten gemeldeten Symptome ihren dokumentierten Ursachen zu.
| Symptom | Wahrscheinliche Ursache und Lรถsung |
| Die Anwendung stรผrzt ab, sobald ein Test startet. | Die APK-Datei enthรคlt nicht die Berechtigung android.permission.INTERNET, die der Testserver benรถtigt, um Befehle entgegenzunehmen. Deklarieren Sie die Berechtigung in der Datei. AndroidManifest.xml und neu erstellen. |
| Schaltflรคchen und Text reagieren nicht auf Berรผhrungen. | Es wurde keine targetSdkVersion angegeben. Fรผgen Sie einen uses-sdk-Eintrag hinzu, der die SDK-Version angibt, fรผr die die Anwendung erstellt wurde. |
| Der Testserver kann keine Verbindung zur Anwendung herstellen. | Die APK-Datei wurde nicht mit dem Debug-Schlรผssel neu signiert. Fรผhren Sie den Befehl zum Neusignieren aus und erstellen Sie die Datei anschlieรend erneut, bevor Sie sie ausfรผhren. |
| Zur Laufzeit sind keine Gerรคte aufgelistet. | USB-Debugging ist deaktiviert oder der Treiber fehlt. Prรผfen Sie zuerst, ob die Seriennummer in der Ausgabe von โadb devicesโ angezeigt wird. |
| Schritte schlagen mit einem undefinierten Schrittfehler fehl | Der Gherkin-Formulierungscode stimmt mit keinem regulรคren Ausdruck in step_definitions รผberein. Kopieren Sie den vorgeschlagenen Codeausschnitt. Cucumber druckt es aus und setzt es um. |
Zwei Manifesteintrรคge korrigieren die ersten beiden Zeilen. Fรผgen Sie diese vor dem erneuten Signieren der APK hinzu.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Timeout-Fehler sind meist umweltbedingt und nicht funktional bedingt. Ein langsamer Emulator, ein Kaltstart der Anwendung oder eine Hintergrundsynchronisierung kรถnnen dazu fรผhren, dass ein Bildschirm das Wartezeitfenster รผberschreitet. Erhรถhen Sie daher das Timeout, bevor Sie einen eigentlich korrekten Schritt wiederholen.
Is Calabash Noch gepflegt? Alternativen fรผr moderne mobile Tests
Calabash wird nicht mehr aktiv weiterentwickelt. Microsoft Die Mitarbeit wurde nach der Unterstรผtzung der letzten iOS 11-Version eingestellt. Android Nach acht Releases ist das Projekt nun eine archivierte Open-Source-Codebasis ohne Betreuer. Bestehende Testversionen laufen zwar noch auf รคlteren Gerรคten, die Weiterentwicklung sollte aber auf einem unterstรผtzten Framework beginnen.
| Unser Ansatz | Plattform | am besten geeignet fรผr |
| Appium | Android und iOS | Plattformรผbergreifende Suiten in Java, Python, Ruby oder JavaSkript und der nรคchstliegende Ersatz fรผr ein Calabash Team. |
| Espresso | Android einzige | Schnelle In-Process-Tests, geschrieben in Kotlin oder Java von den Anwendungsentwicklern selbst. |
| XCUITest | Nur fรผr iOS | Ureinwohner Xcode Suiten, der unterstรผtzte Nachfolger des ausgemusterten UIAutomation-Framework. |
| Maestro und Detox | Android und iOS | Neuere Open-Source-Projekte mit dem Ziel, Ausfallsicherheit und React Native-Anwendungen zu gewรคhrleisten. |
Die BDD-Gewohnheit selbst lรคsst sich problemlos รผbertragen. Gherkin-Feature-Dateien bleiben exakt unverรคndert, und nur die Schrittdefinitionen รคndern sich, weil Cucumber Es befindet sich oberhalb des Treibers, nicht darin. Teams, die migrieren, behalten normalerweise die Feature-Dateien bei und schreiben die Ruby-Schritte entsprechend um. Appiumund wiederverwenden mobile Tests Gerรคtematrix und Automatisierungstests Die Pipeline betreiben sie bereits.
















