Τι είναι Cucumber Ορισμός αρχείου δυνατοτήτων και βημάτων; (Παράδειγμα)
⚡ Έξυπνη Σύνοψη
Cucumber Τα αρχεία χαρακτηριστικών περιγράφουν τη συμπεριφορά σε απλή γλώσσα Gherkin, ενώ οι ορισμοί βημάτων περιέχουν τον κώδικα που εκτελεί κάθε γραμμή. Κάθε Cucumber Το έργο χρειάζεται και τα δύο, αποθηκευμένα σε μια σταθερή διάταξη φακέλου κάτω από έναν κατάλογο features.
Για κάθε έργο cucumber υπάρχει ένας μόνο κατάλογος στη ρίζα του έργου με το όνομα «features». Εκεί θα βρίσκονται όλα τα features του cucumber. Σε αυτόν τον κατάλογο θα βρείτε επιπλέον καταλόγους, οι οποίοι είναι οι κατάλογοι step_definition και support.
Αυτή η διάταξη έχει σημασία, επειδή Cucumber ανακαλύπτει τα αρχεία σας με σύμβαση και όχι με διαμόρφωση. Ένα αρχείο χαρακτηριστικών που βρίσκεται εκτός του καταλόγου χαρακτηριστικών απλώς δεν διαβάζεται ποτέ.
Τι είναι το "Feature File";
Το αρχείο χαρακτηριστικών περιέχει περιγραφή υψηλού επιπέδου του Σενάριο δοκιμής σε απλή γλώσσα. Είναι γνωστό ως ΑγγουράκιΗ Gherkin είναι μια απλή αγγλική γλώσσα κειμένου.
Cucumber Το αρχείο χαρακτηριστικών αποτελείται από τα ακόλουθα στοιχεία —
- Χαρακτηριστικό: Ένα χαρακτηριστικό θα περιγράφει το τρέχον σενάριο δοκιμής που πρέπει να εκτελεστεί.
- σενάριο: Το σενάριο περιγράφει τα βήματα και το αναμενόμενο αποτέλεσμα για μια συγκεκριμένη περίπτωση δοκιμής.
- Περίγραμμα Σεναρίου: Το ίδιο σενάριο μπορεί να εκτελεστεί για πολλαπλά σύνολα δεδομένων χρησιμοποιώντας περίγραμμα σεναρίου. Τα δεδομένα παρέχονται από μια δομή πίνακα που χωρίζεται με (II).
- Δεδομένου: Καθορίζει το πλαίσιο του κειμένου που θα εκτελεστεί. Χρησιμοποιώντας πίνακες δεδομένων "Δεδομένα", το βήμα μπορεί επίσης να παραμετροποιηθεί.
- Κατά τη: Το "When" καθορίζει την ενέργεια δοκιμής που πρέπει να εκτελεστεί.
- ΤότεΤο αναμενόμενο αποτέλεσμα της δοκιμής μπορεί να αναπαρασταθεί με το "Τότε".
Ένα αρχείο περιέχει ένα χαρακτηριστικό. Τα σενάρια που βρίσκονται από κάτω είναι τα συγκεκριμένα παραδείγματα που απεικονίζουν το χαρακτηριστικό και κάθε σενάριο ακολουθεί τον ίδιο ρυθμό: περιγραφή ενός αρχικού πλαισίου, περιγραφή ενός συμβάντος, περιγραφή του αναμενόμενου αποτελέσματος.
Στη συνέχεια, θα μάθουμε πώς να γράφουμε το αρχείο Feature in Cucumber με παράδειγμα.
Παράδειγμα αρχείου λειτουργιών:
Το αρχικό παράδειγμα που δημοσιεύτηκε με αυτό το σεμινάριο αναπαράγεται παρακάτω ακριβώς όπως είναι γραμμένο.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given: I am on career.guru99.com When: I click on career guide menu Then: I should see career guide page
⚠️ Διόρθωση: το παραπάνω παράδειγμα τοποθετεί άνω και κάτω τελεία μετά Δεδομένου, Κατά τη και ΤότεΤο Gherkin βάζει μια άνω και κάτω τελεία μετά Χαρακτηριστικό και σενάριο μόνο. Μια λέξη-κλειδί βήματος ακολουθούμενη από άνω και κάτω τελεία δεν αναλύεται ως βήμα, επομένως Cucumber αγνοεί σιωπηλά τη γραμμή. Το διορθωμένο αρχείο έχει ως εξής.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given I am on career.guru99.com When I click on career guide menu Then I should see career guide page
Η εσοχή δεν απαιτείται από τον αναλυτή, αλλά το συμβατικό στυλ είναι δύο κενά ανά επίπεδο και κάνει μια μεγάλη λειτουργία πολύ πιο εύκολη στη σάρωση. Η παρακάτω κινούμενη εικόνα δείχνει ένα αρχείο λειτουργίας που εκτελείται και κάθε βήμα γίνεται πράσινο καθώς περνάει.
Τι είναι ο «Ορισμός Βημάτων»;
Ο ορισμός του βήματος αντιστοιχίζει τα Βήματα δοκιμαστικής περίπτωσης στα αρχεία χαρακτηριστικών (που εισάγονται από το Given/When/Then) στον κώδικα. Εκτελεί τα βήματα της εφαρμογής υπό δοκιμή και ελέγχει τα αποτελέσματα σε σχέση με τα αναμενόμενα αποτελέσματα. Για να εκτελεστεί ένας ορισμός βήματος, πρέπει να ταιριάζει με το δεδομένο στοιχείο σε ένα χαρακτηριστικό. Ο ορισμός βημάτων ορίζεται σε αρχεία ρουμπίνι στο "features/step_definitions/*_steps.rb".
Η αντιστοίχιση γίνεται μόνο με βάση το κείμενο του βήματος. Cucumber δεν λαμβάνει υπόψη τη λέξη-κλειδί όταν αναζητά έναν ορισμό, γι' αυτό και δύο βήματα στην ίδια σουίτα ενδέχεται να μην φέρουν ποτέ το ίδιο κείμενο, ακόμη και αν το ένα είναι Δεδομένο και το άλλο Τότε.
Παράδειγμα για τον ορισμό βημάτων: Εδώ θα χρησιμοποιήσουμε παραπάνω Cucumber Παράδειγμα αρχείου χαρακτηριστικών περιήγησης στο career.guru99.com. Θα χρησιμοποιήσουμε χαρακτηριστικά όπως "Όταν, Τότε, Δεδομένου", όπως φαίνεται παρακάτω. Cucumber Παραδείγματα αρχείων χαρακτηριστικών.
Step 1: Given (/^ I am on career.guru99.com$/) do Browser.goto "http://career.guru99.com" -This will visit career.guru99 on browser end Step 2: When (/^ click on career guide menu$/) do Browser.text (:name, " career guide" ).click – This will click "career guide menu" end Step 3: Then (/^ I should see career guide page$/) do Browser.goto "http://career.guru99.com/category/career-guide/" - It will visit "career guide page" end
⚠️ Σημείωση για τις γλώσσες: οι παραπάνω ορισμοί είναι Ruby, που είναι όπου Cucumber ξεκίνησε και γι' αυτό ο φάκελος ονομάζεται step_definitions και τα αρχεία τελειώνουν σε _steps.rbΤο ίδιο αρχείο χαρακτηριστικών οδηγεί τους ορισμούς βημάτων που είναι γραμμένοι σε Java, JavaΓραφή, Python ή C# χωρίς ούτε μία αλλαγή στο Gherkin. Στο Cucumber-JVM η κανονική έκφραση μετακινείται σε μια σχολίαση σε μια μέθοδο:
@Given("I am on career.guru99.com") public void i_am_on_the_career_page() { driver.get("http://career.guru99.com"); }
Όποια γλώσσα κι αν επιλέξετε, ο ορισμός βήματος είναι το μόνο μέρος που ανήκει στις λεπτομέρειες υλοποίησης.ping οι επιλογείς και οι κλήσεις HTTP από το αρχείο χαρακτηριστικών είναι αυτό που επιτρέπει σε έναν μη προγραμματιστή να διαβάσει το σενάριο. πρώτα Cucumber γραφή Η αναλυτική παρουσίαση δημιουργεί αυτήν την αντιστοίχιση από άκρο σε άκρο.
Περίγραμμα Σεναρίου και Παραδείγματα σε Αρχείο Χαρακτηριστικών
Η αντιγραφή ενός σεναρίου τρεις φορές για την αλλαγή μίας τιμής είναι ο πιο συνηθισμένος τρόπος με τον οποίο ένα αρχείο χαρακτηριστικών καθίσταται μη αναγνώσιμο. Περίγραμμα Σεναρίου αντικαθιστά τα αντίγραφα με ένα πρότυπο και ένα Παραδείγματα Ο πίνακας παρέχει τις τιμές.
Οι παράμετροι γράφονται μέσα σε γωνιακές αγκύλες και πρέπει να αντιστοιχούν σε μια επικεφαλίδα στήλης στον πίνακα που βρίσκεται από κάτω τους. Cucumber αντικαθιστά τις τιμές πριν αναζητήσει έναν αντίστοιχο ορισμό βήματος, επομένως οι ίδιοι οι ορισμοί δεν χρειάζονται ειδικό χειρισμό.
Scenario Outline: Search the career guide Given I am on career.guru99.com When I search for "<keyword>" Then I should see the <section> section Examples: | keyword | section | | interview | Interview Tips| | resume | Resume Guide |
Μερικά σημεία που αξίζει να θυμάστε όταν χρησιμοποιείτε περιγράμματα:
- Το περίγραμμα εκτελείται μία φορά ανά γραμμή δεδομένων. Η πρώτη γραμμή είναι η κεφαλίδα και δεν εκτελείται ποτέ.
- Ένα περίγραμμα σεναρίου πρέπει να ακολουθείται από τουλάχιστον μία ενότητα παραδειγμάτων, διαφορετικά δεν εκτελείται τίποτα.
- Οι σωλήνες του πίνακα δεν χρειάζεται να ευθυγραμμίζονται, αν και η ευθυγράμμισή τους διατηρεί το αρχείο αναγνώσιμο.
- Κρατήστε τον πίνακα μικρό. Ένας πίνακας με τριάντα γραμμές είναι συνήθως ένα σημάδι ότι τα δεδομένα ανήκουν σε ένα δοκιμή βάσει δεδομένων Αντιθέτως.
Υπόβαθρο, Και, Αλλά και οι Άλλες Λέξεις-κλειδιά του Αγγουριού
Πέρα από τα έξι στοιχεία που αναφέρθηκαν προηγουμένως, το Gherkin διαθέτει μια σειρά από λέξεις-κλειδιά που διατηρούν τα μεγαλύτερα αρχεία χαρακτηριστικών ευανάγνωστα.
- Ιστορικό — ένα μπλοκ Δεδομένων βημάτων που εκτελείται πριν από κάθε σενάριο στο χαρακτηριστικό. Αφαιρεί την επανάληψη της εγγραφής της ίδιας προϋπόθεσης στην αρχή κάθε σεναρίου.
- Και και Αλλά — αντικαταστάσεις για επαναλαμβανόμενες Δόσεις, Όταν ή Τότε. Διαβάζουν καλύτερα και συμπεριφέρονται με τον ίδιο τρόπο· Cucumber ταιριάζει με το κείμενο του βήματος με οποιονδήποτε τρόπο.
- Κανόνας — μια προαιρετική ομάδαping, που προστέθηκε στο Gherkin 6, το οποίο συγκεντρώνει τα σενάρια που απεικονίζουν έναν επιχειρηματικό κανόνα.
- Doc Strings — ένα μπλοκ κειμένου που περικλείεται από τρία διπλά εισαγωγικά, το οποίο μεταβιβάζεται στον ορισμό βήματος ως ένα μόνο όρισμα όταν μία γραμμή δεν είναι αρκετή.
- Πίνακες δεδομένων — γραμμές οριοθετημένες με καθετή που συνδέονται με ένα μόνο βήμα, οι οποίες χρησιμοποιούνται για την απόδοση μιας λίστας τιμών σε αυτό το βήμα.
- Ετικέτες — ετικέτες που ξεκινούν με το σύμβολο "at", τοποθετημένες πάνω από ένα Χαρακτηριστικό ή Σενάριο, έτσι ώστε να μπορεί να επιλεγεί ένα υποσύνολο κατά τον χρόνο εκτέλεσης.
- Σχόλια — μια γραμμή που ξεκινά με hash. Τα σχόλια επιτρέπονται μόνο στην αρχή μιας γραμμής και το Gherkin δεν έχει σχόλια σε μπλοκ.
Συνολικά, ένα αρχείο δυνατοτήτων με κοινόχρηστη ρύθμιση μοιάζει με αυτό:
Feature: Career guide navigation Background: Given I am on career.guru99.com Scenario: Open the career guide menu Given I am signed in And my profile is complete When I click on career guide menu Then I should see career guide page But I should not see the admin panel
Συνηθισμένα λάθη αρχείων και πώς να τα διορθώσετε
γέφυρα Cucumber Τα προβλήματα που αναφέρουν οι αρχάριοι δεν αποτελούν σφάλματα του πλαισίου. Πρόκειται για μικρές παραβιάσεις των κανόνων Gherkin που αποτυγχάνουν αθόρυβα.
| Λάθος | Τι συμβαίνει | σταθερός |
|---|---|---|
| Άνω και κάτω τελεία μετά από χορήγηση, όταν ή τότε | Η γραμμή δεν αναγνωρίζεται ως βήμα και παραλείπεται | Χρησιμοποιήστε άνω και κάτω τελεία μόνο μετά από τις λέξεις "Δυνατότητα" και "Σενάριο" |
| Δύο βήματα με το ίδιο κείμενο | Cucumber τα αντιμετωπίζει ως διπλότυπα επειδή η λέξη-κλειδί αγνοείται | Αναδιατυπώστε ένα βήμα έτσι ώστε τα δύο να διαβάζονται διαφορετικά |
| Αρχείο χαρακτηριστικών εκτός του καταλόγου χαρακτηριστικών | Το αρχείο δεν ανακαλύπτεται ποτέ και δεν εκτελείται καμία δοκιμή | Κρατήστε κάθε .feature αρχείο στον φάκελο features |
| Δεκαπέντε βήματα σε ένα σενάριο | Το σενάριο σταματά να λειτουργεί ως τεκμηρίωση | Στοχεύστε σε τρία έως πέντε βήματα και εισάγετε λεπτομέρειες στον ορισμό των βημάτων |
| Στη συνέχεια, κάνει επιβεβαίωση σε μια γραμμή βάσης δεδομένων | Η δοκιμή είναι επιτυχής, ενώ η ορατότητα του χρήστη είναι προβληματική. | Διεκδίκηση σε παρατηρήσιμο αποτέλεσμα, όπως η σελίδα ή η απάντηση |
| Πίνακας με περίγραμμα σεναρίου χωρίς παραδείγματα | Το πρότυπο δεν εκτελείται ποτέ | Προσθέστε μια ενότητα Παραδειγμάτων ακριβώς κάτω από το περίγραμμα |
Η επιδιόρθωση αυτών πριν αναπτυχθεί η σουίτα είναι πολύ φθηνότερη από την επιδιόρθωσή τους αργότερα, επειδή κάθε σενάριο που γράφεται εν τω μεταξύ αντιγράφει το ίδιο σχήμα. Μόλις τα αρχεία χαρακτηριστικών λειτουργήσουν σωστά, το επόμενο βήμα είναι η καλωδίωση του έργου — δείτε το Cucumber εγκατάσταση περιήγηση και το ευρύτερο δοκιμές αυτοματισμού σειρές.

