Τι είναι Cucumber Ορισμός αρχείου δυνατοτήτων και βημάτων; (Παράδειγμα)

⚡ Έξυπνη Σύνοψη

Cucumber Τα αρχεία χαρακτηριστικών περιγράφουν τη συμπεριφορά σε απλή γλώσσα Gherkin, ενώ οι ορισμοί βημάτων περιέχουν τον κώδικα που εκτελεί κάθε γραμμή. Κάθε Cucumber Το έργο χρειάζεται και τα δύο, αποθηκευμένα σε μια σταθερή διάταξη φακέλου κάτω από έναν κατάλογο features.

  • 🔘 Δύο αρχεία: Ένα αρχείο χαρακτηριστικών δηλώνει τι πρέπει να συμβεί, ενώ ένα αρχείο ορισμού βημάτων δηλώνει πώς ο αυτοματισμός το επιτυγχάνει.
  • ☑️ Αγγουράκι τουρσί λέξεις-κλειδιά: Τα Χαρακτηριστικό, Σενάριο, Δεδομένου, Πότε και Τότε δίνουν σε ένα σενάριο τη δομή του και το αναγνώσιμο σχήμα του.
  • Δεν υπάρχουν άνω και κάτω τελείες στα σκαλοπάτια: Τα Χαρακτηριστικό και Σενάριο δέχονται άνω και κάτω τελεία, αλλά τα Δεδομένου, Όταν και Τότε δεν πρέπει, διαφορετικά το βήμα αγνοείται.
  • 🧪 Σύνολα δεδομένων: Το Περίγραμμα Σεναρίου συν έναν πίνακα Παραδειγμάτων αναπαράγει ένα σενάριο σε σχέση με πολλές γραμμές εισόδου.
  • Κοινόχρηστη ρύθμιση: Επαναλαμβανόμενες ανυψώσεις φόντου Δεδομένα βήματα από κάθε σενάριο σε μια λειτουργία.
  • 📊 Ταίριασμα: Cucumber αγνοεί τη λέξη-κλειδί κατά την αντιστοίχιση, επομένως δύο βήματα ενδέχεται να μην μοιράζονται ποτέ το ίδιο κείμενο.

Cucumber αρχείο χαρακτηριστικών και ορισμός βημάτων που εξηγούνται με ένα παράδειγμα

Για κάθε έργο 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

Η εσοχή δεν απαιτείται από τον αναλυτή, αλλά το συμβατικό στυλ είναι δύο κενά ανά επίπεδο και κάνει μια μεγάλη λειτουργία πολύ πιο εύκολη στη σάρωση. Η παρακάτω κινούμενη εικόνα δείχνει ένα αρχείο λειτουργίας που εκτελείται και κάθε βήμα γίνεται πράσινο καθώς περνάει.

Κινούμενη εικόνα ενός Cucumber αρχείο χαρακτηριστικών που εκτελείται με κάθε βήμα Gherkin να αναφέρεται με τη σειρά του

Τι είναι ο «Ορισμός Βημάτων»;

Ο ορισμός του βήματος αντιστοιχίζει τα Βήματα δοκιμαστικής περίπτωσης στα αρχεία χαρακτηριστικών (που εισάγονται από το 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 εγκατάσταση περιήγηση και το ευρύτερο δοκιμές αυτοματισμού σειρές.

Συχνές Ερωτήσεις

Όχι. Ένα αρχείο .feature μπορεί να δηλώσει ακριβώς ένα Feature, αν και μπορεί να περιέχει όσα σενάρια θέλετε. Εάν χρειάζεστε ένα δεύτερο feature, δημιουργήστε ένα δεύτερο αρχείο — αυτός ο περιορισμός είναι που διατηρεί τον φάκελο πλοηγήσιμο καθώς μια σουίτα μεγαλώνει.

Δεν ισχύει αυτό. Το Gherkin είναι μεταφρασμένο σε περισσότερες από εβδομήντα ομιλούμενες γλώσσες. Η προσθήκη μιας κεφαλίδας γλώσσας στην πρώτη γραμμή του αρχείου αλλάζει τις λέξεις-κλειδιά, έτσι ώστε μια ομάδα να μπορεί να γράφει σενάρια στην ίδια γλώσσα που μιλούν οι ειδικοί του τομέα της.

Περιέχει όλα όσα δεν αποτελούν ορισμό βήματος: ρύθμιση περιβάλλοντος, ρύθμιση προγράμματος περιήγησης, hooks που εκτελούνται πριν ή μετά από ένα σενάριο και κοινόχρηστο βοηθητικό κώδικα.ping Διαχωρίζει τα αρχεία ορισμού βημάτων σταματά από το να μετατραπούν σε ένα dumping έδαφος.

Cucumber Αναφέρει το βήμα ως μη καθορισμένο αντί για αποτυχημένο και εκτυπώνει ένα προτεινόμενο τμήμα κώδικα που μπορείτε να επικολλήσετε σε ένα αρχείο ορισμού βήματος. Το σενάριο επισημαίνεται ως μη επιτυχές, επομένως ένα μη καθορισμένο βήμα δεν μετράει ποτέ ως επιτυχημένο.

Μια ετικέτα που τοποθετείται πάνω από ένα Χαρακτηριστικό ή Σενάριο επιτρέπει στον εκτελεστή να επιλέξει ένα υποσύνολο κατά τον χρόνο εκτέλεσης, ανεξάρτητα από τη δομή των φακέλων. Οι ομάδες συνήθως προσθέτουν ετικέτες σε ένα σύνολο smoke, ένα σύνολο slow και ένα σύνολο work-in-progress και, στη συνέχεια, εκτελούν μόνο ό,τι χρειάζεται ένα δεδομένο στάδιο αγωγού.

Τα μεγάλα γλωσσικά μοντέλα σχεδιάζουν καλά το Gherkin από ένα κριτήριο αποδοχής και δημιουργούν τους σκελετούς ορισμών που ταιριάζουν ακόμα πιο γρήγορα. RevΔείτε την έξοδο για διπλότυπο κείμενο βημάτων και για σενάρια που διαρρέουν λεπτομέρειες υλοποίησης, όπου το δημιουργημένο Gherkin συνήθως παρουσιάζει σφάλματα.

Πολύ. Δεδομένου ενός ανοιχτού αρχείου χαρακτηριστικών, το Copilot συμπεραίνει την κανονική έκφραση και την υπογραφή μεθόδου για ένα απροσδιόριστο βήμα και συμπληρώνει το σώμα από τον περιβάλλοντα κώδικα. Αντιμετωπίστε το ως πρώτο προσχέδιο. Οι ισχυρισμοί που προτείνει εξακολουθούν να χρειάζονται ανθρώπινο έλεγχο.

Ναι, και αυτό είναι το νόημα του σχεδιασμού. Οι ορισμοί βρίσκονται σε έναν κοινόχρηστο φάκελο και αντιστοιχίζονται με κείμενο, όχι με αρχείο, επομένως ένα βήμα σύνδεσης που γράφεται μία φορά επαναχρησιμοποιείται από κάθε λειτουργία που το χρειάζεται. Η επαναχρησιμοποίηση είναι ο λόγος για τον οποίο απαγορεύεται το διπλότυπο κείμενο βήματος.

Συνοψίστε αυτήν την ανάρτηση με: