Calabash Android Εκπαιδευτικό βοήθημα για το εργαλείο δοκιμών
⚡ Έξυπνη Σύνοψη
Calabash είναι ένα πλαίσιο δοκιμών αποδοχής ανοιχτού κώδικα που καθοδηγεί πραγματικές ενέργειες διεπαφής χρήστη σε Android και εφαρμογές iOS, χρησιμοποιώντας απλά αγγλικά Cucumber σενάρια που υποστηρίζονται από ορισμούς βημάτων Ruby και έναν διακομιστή δοκιμών από την πλευρά της συσκευής.
Τι είναι Calabash?
Calabash είναι μια αποδοχή ανοιχτού κώδικα Δοκιμές πλαίσιο που σας επιτρέπει να γράφετε και να εκτελείτε δοκιμές για iOS και Android Εφαρμογές.
Είναι ένα Αυτοματοποιημένο Πλαίσιο Διεπαφής Χρήστη που επιτρέπει τη σύνταξη δοκιμών σε Ruby χρησιμοποιώντας Cucumber.
Calabash Λειτουργεί ενεργοποιώντας αυτόματες αλληλεπιδράσεις UI μέσα σε μια εφαρμογή για κινητά, όπως το πάτημα κουμπιών, η εισαγωγή κειμένου, η επικύρωση απαντήσεων κ.λπ. Μπορεί να ρυθμιστεί ώστε να εκτελείται σε διαφορετικά Android και συσκευές iOS, οι οποίες παρέχουν σχόλια και επικυρώσεις σε πραγματικό χρόνο.
⚠️ Σημείωση έκδοσης: Microsoft τερμάτισε τις συνεισφορές του στο Calabash μετά την τελική έκδοση του iOS 11 και Android 8 κυκλοφορίες, και το αποθετήριο calabash-android τώρα αυτοπροσδιορίζεται ως ένα έργο που αναζητά συντηρητή. Η παρακάτω αναλυτική παρουσίαση διατηρείται όπως έχει γραφτεί και οι σύγχρονες αντικαταστάσεις καλύπτονται στην τελευταία ενότητα.
Γιατί Calabash Αυτοματοποίηση?
Πριν εγκαταστήσετε οτιδήποτε, είναι χρήσιμο να ζυγίσετε τι προσφέρει το πλαίσιο σε σχέση με το κόστος συντήρησης.
| Πλεονεκτήματα | Μειονεκτήματα |
| Βοηθά στην αύξηση της απόδοσης/παραγωγικότητας. | Απαιτείται επάρκεια για τη συγγραφή των σεναρίων δοκιμών αυτοματισμού. |
| Βελτιωμένη ποιότητα ή αυξημένη προβλεψιμότητα της ποιότητας | Ο εντοπισμός σφαλμάτων του δοκιμαστικού σεναρίου είναι ένα σημαντικό ζήτημα. |
| Βελτιωμένη ευρωστία (συνέπεια) διαδικασιών ή προϊόντων. | Η συντήρηση δοκιμής είναι δαπανηρή σε περίπτωση μεθόδων αναπαραγωγής. |
| Αυξημένη συνέπεια της παραγωγής και μείωση του κόστους και των εξόδων εργασίας | Η συντήρηση των αρχείων δεδομένων δοκιμής είναι δύσκολη εάν το δοκιμαστικό σενάριο ελέγχει περισσότερες οθόνες |
Calabash και ΔΔΑ
- Calabash is Ανάπτυξη με γνώμονα τη συμπεριφορά (BDD)Είναι το ίδιο με Δοκιμαστική Ανάπτυξη (TDD), αλλά αντί να δημιουργούνται δοκιμές για την περιγραφή του σχήματος των API, καθορίζεται η συμπεριφορά της εφαρμογής.
- Το BDD είναι μια διαδικασία κατά την οποία πολλοί ενδιαφερόμενοι σταθμίζουν για να δημιουργήσουν μια κοινή κατανόηση του τι πρέπει να χτιστεί.
- Το BDD είναι χρήσιμο για τη δημιουργία του σωστού λογισμικού και το σχεδιασμό από την οπτική γωνία του ιδιοκτήτη της επιχείρησης.
Το παρακάτω διάγραμμα δείχνει πώς ένα Calabash Η σουίτα είναι πολυεπίπεδη, από το αρχείο χαρακτηριστικών που είναι αναγνώσιμο από επιχειρήσεις στην κορυφή έως την αλληλεπίδραση της συσκευής στο κάτω μέρος.
Πως να εγκαταστήσετε Calabash
Calabash on Windows χρειάζεται να εγκατασταθούν τέσσερις προαπαιτούμενες προϋποθέσεις. Ολοκληρώστε κάθε μέρος πλήρως πριν ξεκινήσετε το επόμενο, επειδή το gem calabash-android ελέγχει για Ruby και το Android SDK κατά την εγκατάσταση.
Μέρος Ι) Εγκατάσταση Java JDK – Ανατρέξτε σε αυτόν τον οδηγό – /install-java.html
Μέρος II) Κατεβάστε και εγκαταστήστε το Ruby.
Βήμα 1) Κατεβάστε το Ruby από το URL https://rubyinstaller.org/downloads
Βήμα 2) Ανοίξτε το αρχείο exe και ακολουθήστε τις οδηγίες στην οθόνη. Μόλις ολοκληρωθεί η εγκατάσταση, θα δείτε την ακόλουθη οθόνη. Κάντε κλικ στο κουμπί Τέλος.
Ξεκινήστε τη γραμμή εντολών με ενεργοποιημένο το Ruby Windows 10 και πληκτρολογήστε παρακάτω Εντολή.
ruby -v
Η κονσόλα εκτυπώνει την εγκατεστημένη έκδοση του διερμηνέα, όπως φαίνεται παρακάτω.
Μέρος III) Λήψη και εγκατάσταση Android
Βήμα 1) Λήψη Android Studio at https://developer.android.com/studio
Βήμα 2) Ανοίξτε το αρχείο exe, ακολουθήστε τις οδηγίες στην οθόνη και ολοκληρώστε την εγκατάσταση. Κάντε κλικ στο κουμπί ολοκλήρωσης μόλις ολοκληρωθεί η εγκατάσταση.
Μέρος IV) Εγκατάσταση Calabash Android
Βήμα 1) Στην κονσόλα πληκτρολογήστε gem install calabash-android. Η εγκατάσταση θα ξεκινήσει και θα χρειαστεί λίγος χρόνος για να ολοκληρωθεί.
Βήμα 2) Μόλις ολοκληρωθεί η εγκατάσταση, πληκτρολογήστε calabash-android version
Εργασία με Calabash
Με την εγκατάσταση του gem, η επόμενη εργασία είναι να εντοπίσετε τον φάκελο framework και να κατανοήσετε τον σκελετό με τον οποίο παρέχεται.
Ανοίξτε το φάκελο "calabash-android-0.9.0". Βρίσκεται στη διαδρομή C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Τα ονόματα των φακέλων θα αλλάξουν σε συγχρονισμό με την έκδοση ruby/calabash που εγκαθιστάτε στο μηχάνημά σας.
Ανοίξτε το φάκελο του σκελετού δυνατοτήτων. Προσέξτε αυτό το βασικό πλαίσιο.
- Το αρχείο *.feature περιέχει σενάρια που πρόκειται να αυτοματοποιήσουμε.
- Η μέθοδος που χρησιμοποιείται από το αρχείο χαρακτηριστικών είναι γραμμένη σε αρχείο *.rb μέσα στο φάκελο "step_definitions".
- Οι κοινές μέθοδοι, η ρύθμιση περιβάλλοντος, η εγκατάσταση εφαρμογών και τα άγκιστρα θα πρέπει να τοποθετούνται μέσα στο φάκελο "υποστήριξη".
Παραιτηθείτε και δημιουργήστε την εφαρμογή
- Calabash-android παραιτηθεί *.apk
- Calabash-έκδοση android *.apk
Η παραίτηση αντικαθιστά την υπογραφή του προγραμματιστή με ένα κλειδί εντοπισμού σφαλμάτων, έτσι ώστε ο διακομιστής δοκιμών να μπορεί να ερμηνεύσει την εφαρμογή και το βήμα δημιουργίας να παράγει αυτόν τον διακομιστή δοκιμών, όπως φαίνεται στην παρακάτω έξοδο της κονσόλας.
Συνδέστε τη συσκευή στο σύστημα /Ανοίξτε τον εξομοιωτή
Ελέγξτε τη συνδεδεμένη συσκευή. Πληκτρολογήστε εντολή
adb devices
Θα πρέπει να εμφανιστεί η λίστα με τις συνδεδεμένες συσκευές. Εάν η συσκευή λείπει, τα βήματα εντοπισμού σφαλμάτων USB και σύζευξης στο Οδηγός σύνδεσης ADB επιλύσουν τις περισσότερες υποθέσεις.
Πώς να βρείτε τον εντοπιστή στοιχείων
- Ανοίξτε την κονσόλα. Πληκτρολογήστε την εντολή.
calabash-android console "APK Path" start_test_server_in_background
- Η παραπάνω εντολή εκκινήστε την εφαρμογή στη συσκευή. Για να βρείτε τον εντοπιστή στοιχείων χρησιμοποιήστε την ακόλουθη εντολή.
query "*"
Αυτό θα εμφανίσει όλους τους εντοπιστές στοιχείων στην τρέχουσα οθόνη. Οι δοκιμαστές που προτιμούν έναν οπτικό επιθεωρητή μπορούν να διασταυρώσουν την ίδια ιεραρχία με uiautomatorviewer.
Calabash Δομή Έργου και Προκαθορισμένα Βήματα
Αντί να αντιγράψετε τον φάκελο gem χειροκίνητα, το framework μπορεί να δημιουργήσει ένα λειτουργικό έργο για εσάς. Η εκτέλεση της γεννήτριας μέσα στον κατάλογο του έργου σας δημιουργεί το τυπικό Cucumber διάταξη που κάθε Calabash η σουίτα αναμένει.
calabash-android gen
Το δημιουργημένο δέντρο διαχωρίζει τα τρία ζητήματα μιας σουίτας BDD:
- χαρακτηριστικά/ — τα σενάρια Gherkin, ένα .χαρακτηριστικό αρχείο ανά διαδρομή χρήστη.
- χαρακτηριστικά/ορισμοί_βημάτων/ — οι μέθοδοι Ruby που ταιριάζουν με κάθε γραμμή Gherkin, συμπεριλαμβανομένου του πακέτου calabash_steps.rb.
- χαρακτηριστικά/υποστήριξη/ — διαμόρφωση περιβάλλοντος και τα hooks που εγκαθιστούν, εκκινούν και τερματίζουν την εφαρμογή σε κάθε σενάριο.
Το πακέτο calabash_steps.rb έχει μεγαλύτερη σημασία από ό,τι φαίνεται αρχικά. Παρέχει ένα μεγάλο σύνολο έτοιμων βημάτων στα Αγγλικά, έτσι ώστε ένα πρώτο σενάριο να μπορεί να πατήσει κουμπιά, να εισάγει κείμενο και να κάνει assert σε ορατές συμβολοσειρές πριν γραφτεί μια μεμονωμένη προσαρμοσμένη μέθοδος. Τα προσαρμοσμένα βήματα χρειάζονται μόνο όταν ένα ταξίδι ξεπεράσει αυτές τις έτοιμες φράσεις.
Δύο ρυθμίσεις σε επίπεδο έργου αξίζει να γνωρίζετε νωρίς. Τα στιγμιότυπα οθόνης εμφανίζονται στον τρέχοντα κατάλογο εργασίας από προεπιλογή και η μεταβλητή περιβάλλοντος SCREENSHOT_PATH τα ανακατευθύνει αλλού, γεγονός που διατηρεί τα τεχνουργήματα κατασκευής τακτοποιημένα σε έναν κοινόχρηστο υπολογιστή. Η αλληλεπίδραση με παράθυρα διαλόγου συστήματος ή άλλη εφαρμογή απαιτεί το backend UIAutomator2, το οποίο ξεκινά με start_test_server_in_background(with_uiautomator: true).
Δημιουργία νέων σεναρίων
Ανοίξτε το αρχείο χαρακτηριστικών και τις ακόλουθες γραμμές
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"
Ανοίξτε το αρχείο ορισμού βημάτων και ορίστε τη μέθοδο στο αρχείο *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Εκτελέστε το δοκιμαστικό έργο
Για να εκτελέσετε το δοκιμαστικό έργο, χρησιμοποιήστε την παρακάτω εντολή
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber εκτυπώνει κάθε βήμα καθώς εκτελείται και μια διαδρομή που περνάει ολοκληρώνεται με το σενάριο και τα σύνολα βημάτων που εμφανίζονται εδώ.
Κοινός Calabash Σφάλματα και πώς να τα διορθώσετε
Οι περισσότερες αποτυχίες πρώτης εκτέλεσης προέρχονται από τους κανόνες συσκευασίας και δικαιωμάτων από τους οποίους εξαρτάται ο διακομιστής δοκιμών και όχι από το ίδιο το σενάριο. Ο παρακάτω πίνακας αντιστοιχίζει τα συμπτώματα που αναφέρονται πιο συχνά με την τεκμηριωμένη αιτία τους.
| Σύμπτωμα | Πιθανή αιτία και διόρθωση |
| Η εφαρμογή καταρρέει αμέσως μόλις ξεκινήσει μια δοκιμή | Από το APK λείπει το android.permission.INTERNET, το οποίο ο διακομιστής δοκιμών χρειάζεται για να δέχεται εντολές. Δηλώστε την άδεια στο AndroidManifest.xml και αναδημιουργία. |
| Τα κουμπιά και το κείμενο αρνούνται να ανταποκριθούν στα πατήματα | Δεν έχει δηλωθεί targetSdkVersion. Προσθέστε μια καταχώρηση uses-sdk που να ονομάζει το επίπεδο SDK για το οποίο δημιουργήθηκε η εφαρμογή. |
| Ο διακομιστής δοκιμών δεν μπορεί να συνδεθεί με την εφαρμογή | Το APK δεν παραιτήθηκε με το κλειδί εντοπισμού σφαλμάτων. Εκτελέστε την εντολή παραίτησης και, στη συνέχεια, δημιουργήστε ξανά πριν την εκτέλεση. |
| Δεν εμφανίζονται συσκευές κατά τον χρόνο εκτέλεσης | Η λειτουργία εντοπισμού σφαλμάτων USB είναι απενεργοποιημένη ή λείπει το πρόγραμμα οδήγησης. Επιβεβαιώστε πρώτα ότι ο σειριακός αριθμός εμφανίζεται στην έξοδο των συσκευών adb. |
| Τα βήματα αποτυγχάνουν με ένα απροσδιόριστο σφάλμα βήματος | Η διατύπωση Gherkin δεν ταιριάζει με καμία κανονική έκφραση στο step_definitions. Αντιγράψτε το προτεινόμενο απόσπασμα. Cucumber εκτυπώσεις και να το εφαρμόσεις. |
Δύο καταχωρίσεις μανιφέστου διορθώνουν τις δύο πρώτες σειρές. Προσθέστε τις πριν από την ολοκλήρωση της διαδικασίας παραίτησης από το APK.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Τα σφάλματα χρονικού ορίου συνήθως είναι περιβαλλοντικά και όχι λειτουργικά. Ένας αργός εξομοιωτής, μια ψυχρή εκκίνηση εφαρμογής ή ένας συγχρονισμός στο παρασκήνιο μπορούν να ωθήσουν μια οθόνη πέρα από το παράθυρο wait_for, επομένως αυξήστε το χρονικό όριο πριν ξαναγράψετε ένα βήμα που ήταν στην πραγματικότητα σωστό.
Is Calabash Συντηρείται ακόμα; Εναλλακτικές λύσεις για τις σύγχρονες δοκιμές σε κινητές συσκευές
Calabash δεν αναπτύσσεται πλέον ενεργά. Microsoft σταμάτησε να συνεισφέρει μετά την υποστήριξη της τελικής έκδοσης iOS 11 και Android 8 κυκλοφορίες και το έργο είναι πλέον μια αρχειοθετημένη βάση κώδικα ανοιχτού κώδικα χωρίς διαχειριστή. Οι υπάρχουσες σουίτες εξακολουθούν να εκτελούνται σε παλαιότερες συσκευές, αλλά η νέα εργασία θα πρέπει να ξεκινήσει σε ένα υποστηριζόμενο πλαίσιο.
| Πλαίσιο | Πλατφόρμα | κατάλληλο για |
| Appium | Android και iOS | Σουίτες πολλαπλών πλατφορμών σε Java, Python, Ρούμπι ή JavaΣκριπτ και η πλησιέστερη αντικατάσταση για ένα Calabash ομάδα. |
| Espresso | Android αποκλειστικά | Γρήγορες δοκιμές κατά τη διάρκεια της διαδικασίας γραμμένες σε Kotlin ή Java από τους ίδιους τους προγραμματιστές εφαρμογών. |
| XCUITest | Μόνο για iOS | Native Xcode σουίτες, ο υποστηριζόμενος διάδοχος του συνταξιούχου Πλαίσιο UIIutomation. |
| Maestro και Detox | Android και iOS | Νεότερα έργα ανοιχτού κώδικα που στοχεύουν στην αντοχή σε flake και εφαρμογές React Native. |
Η ίδια η συνήθεια BDD μεταφέρεται ομαλά. Τα αρχεία χαρακτηριστικών Gherkin παραμένουν ακριβώς όπως είναι και μόνο τα σώματα ορισμού βημάτων αλλάζουν, επειδή Cucumber βρίσκεται πάνω από το πρόγραμμα οδήγησης και όχι μέσα σε αυτό. Οι ομάδες που μετεγκαθίστανται συνήθως διατηρούν τα αρχεία χαρακτηριστικών, ξαναγράφουν τα βήματα της Ruby σε σχέση με Appiumκαι επαναχρησιμοποιήστε το ίδιο δοκιμές για κινητά πίνακας συσκευών και δοκιμές αυτοματισμού αγωγό που ήδη λειτουργούν.
















