cucumber gherkin tutorial
Αυτό το ενημερωτικό σεμινάριο εξηγεί τα πλεονεκτήματα του αγγουριού αγγουριού Framework και πώς να γράφετε σενάρια αυτοματισμού χρησιμοποιώντας γλώσσα Gherkin με σαφή παραδείγματα:
Το αγγούρι είναι ένα εργαλείο που βασίζεται στο πλαίσιο συμπεριφοράς βάσει ανάπτυξης (BDD). Το BDD είναι μια μεθοδολογία για την κατανόηση της λειτουργικότητας μιας εφαρμογής στην απλή αναπαράσταση απλού κειμένου.
Ο κύριος στόχος του πλαισίου Ανάπτυξης βάσει Συμπεριφοράς είναι να καταστήσει διάφορους ρόλους του έργου, όπως Αναλυτές Επιχειρήσεων, Διασφάλιση Ποιότητας, Προγραμματιστές, κ.λπ.
Το εργαλείο αγγουριού χρησιμοποιείται γενικά σε πραγματικό χρόνο για τη σύνταξη δοκιμών αποδοχής μιας εφαρμογής. Το εργαλείο αγγουριού παρέχει υποστήριξη για πολλές γλώσσες προγραμματισμού, όπως Java, Ruby, .Net, κ.λπ. Μπορεί να ενσωματωθεί σε πολλά εργαλεία όπως Selenium, Capybara κ.λπ.
Τι θα μάθετε:
- Τι είναι το Gherkin;
- Πλεονεκτήματα του αγγουριού Πλαίσιο αγγουριού
- Ενσωμάτωση αγγουριού με σελήνιο
- συμπέρασμα
Τι είναι το Gherkin;
Το αγγούρι είναι η γλώσσα που χρησιμοποιείται από το εργαλείο αγγούρι. Είναι μια απλή αγγλική αναπαράσταση της συμπεριφοράς της εφαρμογής. Το Cucumber χρησιμοποιεί την έννοια των αρχείων χαρακτηριστικών για σκοπούς τεκμηρίωσης. Το περιεχόμενο των αρχείων χαρακτηριστικών είναι γραμμένο σε γλώσσα Gherkin.
Στα ακόλουθα θέματα, θα δούμε περισσότερα για τα πλεονεκτήματα του πλαισίου Cucumber Gherkin, Ενσωμάτωση αγγουριού με Σελήνιο, Δημιουργία αρχείου χαρακτηριστικών και του αντίστοιχου αρχείου ορισμού βημάτων και δείγματος αρχείου χαρακτηριστικών.
Κοινοί όροι για το αγγουράκι αγγουριού Framework
Το Cucumber Gherkin framework χρησιμοποιεί συγκεκριμένες λέξεις-κλειδιά που είναι απαραίτητες για τη σύνταξη ενός αρχείου χαρακτηριστικών.
Οι ακόλουθοι όροι χρησιμοποιούνται πιο συχνά σε αρχεία λειτουργιών:
# 1) Χαρακτηριστικό:
Ένα αρχείο χαρακτηριστικών πρέπει να παρέχει μια περιγραφή υψηλού επιπέδου μιας εφαρμογής υπό δοκιμή (AUT). Η πρώτη γραμμή του αρχείου δυνατοτήτων πρέπει να ξεκινά με τη λέξη-κλειδί «Χαρακτηριστικό» μετά την περιγραφή τουμια εφαρμογήυπό δοκιμή. Σύμφωνα με τα πρότυπα που καθορίζονται από το Αγγούρι, το αρχείο χαρακτηριστικών πρέπει να περιλαμβάνει τα ακόλουθα τρία στοιχεία ως πρώτη γραμμή.
- Λέξη-κλειδί χαρακτηριστικών
- Όνομα χαρακτηριστικού
- Περιγραφή χαρακτηριστικών (προαιρετικό)
Η λέξη-κλειδί χαρακτηριστικών πρέπει να ακολουθείται από ένα όνομα χαρακτηριστικού. Μπορεί να περιλαμβάνει μια προαιρετική ενότητα περιγραφής που μπορεί να εκτείνεται σε πολλές γραμμές του αρχείου δυνατοτήτων. Ένα αρχείο χαρακτηριστικών έχει την επέκταση .feature.
# 2) Σενάριο:
Ένα σενάριο είναι μια δοκιμαστική προδιαγραφή της λειτουργικότητας που θα δοκιμαστεί. Στην ιδανική περίπτωση, ένα αρχείο χαρακτηριστικών μπορεί να περιέχει ένα ή περισσότερα σενάρια ως μέρος της δυνατότητας. Ένα σενάριο περιλαμβάνει πολλά βήματα δοκιμής. Σύμφωνα με τα πρότυπα αγγουριού, ένα σενάριο πρέπει να περιλαμβάνει 3-5 βήματα δοκιμής, καθώς τα μεγάλα σενάρια τείνουν να χάνουν την εκφραστική τους δύναμη μόλις αυξηθεί ο αριθμός των βημάτων.
Ένα σενάριο μπορεί να περιλαμβάνει τα ακόλουθα βήματα:
- Ενέργεια που πρέπει να εκτελεστεί από έναν χρήστη.
- Αναμενόμενα αποτελέσματα της δράσης.
Στη γλώσσα Gherkin, ένα σενάριο πρέπει να περιλαμβάνει τις ακόλουθες λέξεις-κλειδιά:
- Δεδομένος
- Πότε
- Τότε
- Και
Δεδομένος:
Η δεδομένη λέξη-κλειδί χρησιμοποιείται για τον καθορισμό των προϋποθέσεων για την εκτέλεση ενός συγκεκριμένου σεναρίου. Ένα σενάριο μπορεί να περιλαμβάνει περισσότερες από μία δηλωμένες δηλώσεις ή δεν μπορεί να υπάρχουν Δεδομένες δηλώσεις για ένα σενάριο.
Πότε:
Αυτή η λέξη-κλειδί χρησιμοποιείται για τον καθορισμό της ενέργειας ή ενός συμβάντος που εκτελείται από τον χρήστη, όπως κλικ σε ένα κουμπί, εισαγωγή δεδομένων σε πλαίσιο κειμένου κ.λπ. Μπορεί να υπάρχουν πολλαπλές όταν δηλώσεις σε ένα μόνο σενάριο.
Επειτα:
Στη συνέχεια, η λέξη-κλειδί χρησιμοποιείται για τον προσδιορισμό του αναμενόμενου αποτελέσματος μιας ενέργειας που εκτελείται από τον χρήστη. Στην ιδανική περίπτωση, Πότε πρέπει να ακολουθείται η λέξη-κλειδί από Στη συνέχεια, η λέξη-κλειδί για να κατανοήσει το αναμενόμενο αποτέλεσμα των ενεργειών χρήστη.
Και:
Και η λέξη-κλειδί χρησιμοποιείται ως λέξη-κλειδί συνδυασμού για το συνδυασμό πολλαπλών δηλώσεων. Για παράδειγμα, πολλαπλές Δεδομένες και Πότε οι δηλώσεις σε ένα σενάριο μπορούν να συνδυαστούν χρησιμοποιώντας τη λέξη-κλειδί «Και».
# 3) Περίγραμμα σεναρίου:
Ένα περίγραμμα σεναρίου είναι ένας τρόπος παραμετροποίησης των σεναρίων.
Αυτό χρησιμοποιείται ιδανικά όταν πρέπει να εκτελεστεί το ίδιο σενάριο για πολλά σύνολα δεδομένων, αλλά τα βήματα δοκιμής παραμένουν τα ίδια. Το περίγραμμα σεναρίου πρέπει να ακολουθείται από τη λέξη-κλειδί «Παραδείγματα», που καθορίζουν το σύνολο τιμών για κάθε παράμετρο.
Ακολουθεί το παράδειγμα για την κατανόηση της έννοιας του Scenario Outline:
Παράδειγμα:
Περίγραμμα σεναρίου: Ανέβασε ένα αρχείο
Δεδομένος ότι ένας χρήστης βρίσκεται στην οθόνη μεταφόρτωσης αρχείου.
Πότε ο χρήστης κάνει κλικ στο κουμπί Αναζήτηση.
Και ο χρήστης μπαίνει σε μεταφόρτωση πλαισίου κειμένου.
Και ο χρήστης κάνει κλικ στο κουμπί enter.
Τότε επαληθεύει ότι η μεταφόρτωση αρχείου είναι επιτυχής.
Παραδείγματα:
| όνομα αρχείου |
| αρχείο1 |
| αρχείο2 |
Οι παράμετροι εντός του περιγράμματος σεναρίου πρέπει να καθοριστούν με τους χαρακτήρες ''. Πρέπει να καθοριστεί μια λίστα τιμών δεδομένων για την παράμετρο χρησιμοποιώντας το σύμβολο Pipe (|).
# 4) Ιστορικό:
Η λέξη-κλειδί παρασκηνίου χρησιμοποιείται για την ομαδοποίηση πολλών δεδομένων δηλώσεων σε μία ομάδα.
Αυτό χρησιμοποιείται γενικά όταν το ίδιο σύνολο δεδομένων δηλώσεων επαναλαμβάνεται σε κάθε σενάριο ενός αρχείου δυνατοτήτων. Αντί να καθορίζονται επανειλημμένα οι συγκεκριμένες δηλώσεις για κάθε σενάριο, μπορούν να καθοριστούν με τη λέξη-κλειδί «Ιστορικό» πριν από το πρώτο σενάριο.
Παράδειγμα:
Ιστορικό:
Ο δεδομένος χρήστης βρίσκεται στη σελίδα σύνδεσης της εφαρμογής
Πλεονεκτήματα του αγγουριού Πλαίσιο αγγουριού
Παρακάτω παρατίθενται τα πλεονεκτήματα του πλαισίου Cucumber Gherkin που κάνουν το Αγγούρι μια ιδανική επιλογή για την ταχέως εξελισσόμενη μεθοδολογία Agile στον σημερινό εταιρικό κόσμο:
- Το αγγούρι είναι ένα εργαλείο ανοιχτού κώδικα.
- Η αναπαράσταση απλού κειμένου διευκολύνει τους μη τεχνικούς χρήστες να κατανοήσουν τα σενάρια.
- Γεφυρώνει το χάσμα επικοινωνίας μεταξύ διαφόρων φορέων του έργου, όπως Business Analysts, Developers και Quality Assurance.
- Οι θήκες δοκιμής αυτοματισμού που αναπτύχθηκαν χρησιμοποιώντας το εργαλείο αγγουριού είναι ευκολότερες στη συντήρηση και την κατανόηση.
- Εύκολη ενσωμάτωση με άλλα εργαλεία όπως το Σελήνιο και το Capybara.
Ενσωμάτωση αγγουριού με σελήνιο
Το αγγούρι και το σελήνιο είναι τα δύο πιο ισχυρά λειτουργικά εργαλεία δοκιμών. Η ενσωμάτωση του Αγγουριού με το Selenium Webdriver βοηθά διάφορα μη τεχνικά μέλη μιας ομάδας έργου να κατανοήσουν τη ροή της εφαρμογής.
Παρακάτω δίνονται τα βήματα που πρέπει να ακολουθηθούν για την ενσωμάτωση του Αγγουριού με το Selenium Webdriver:
Βήμα 1:
Το αγγούρι μπορεί να ενσωματωθεί στο Selenium Webdriver κατεβάζοντας τα απαραίτητα αρχεία JAR.
Παρακάτω δίνεται η λίστα των αρχείων JAR που πρέπει να ληφθούν για χρήση του Cucumber with Selenium Webdriver:
- κάλυψη-2.1.1.jar
- αγγούρι-πυρήνας-1.2.2.jar
- αγγούρι-java-1.2.2.jar
- αγγούρι-junit-1.2.2.jar
- αγγούρι-jvm-deps-1.0.3.jar
- αγγούρι-αναφορά-0.1.0.jar
- gherkin-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
Μπορείτε να κατεβάσετε τα παραπάνω αρχεία JAR από το Maven δικτυακός τόπος .
Κάθε ένα από τα παραπάνω αρχεία JAR πρέπει να ληφθεί ξεχωριστά από τον παραπάνω ιστότοπο.
Βήμα 2:
Δημιουργήστε ένα νέο έργο στο Eclipse και προσθέστε τα παραπάνω αρχεία JAR στο έργο. Για να προσθέσετε τα αρχεία JAR στο έργο, κάντε δεξί κλικ στο project -> Build Path -> Διαμόρφωση διαδρομής Build.
Κάντε κλικ στο Προσθήκη εξωτερικών JAR και προσθέστε τη λίστα των παραπάνω αρχείων JAR στο έργο.
Βήμα # 3:
Πριν δημιουργήσουμε τα αρχεία δυνατοτήτων και τα αρχεία ορισμού βημάτων, πρέπει να εγκαταστήσουμε μια φυσική προσθήκη στο Eclipse. Μπορεί να γίνει αντιγράφοντας και επικολλώντας το Διεύθυνση URL επάνω σε Βοήθεια -> Εγκατάσταση νέου λογισμικού -> URL
Κάνε κλικ στο Επόμενο κουμπί για να εγκαταστήσετε το πρόσθετο στο Eclipse.
Δημιουργία αρχείου χαρακτηριστικών
Δημιουργήστε ξεχωριστούς φακέλους για αρχεία χαρακτηριστικών και αρχεία ορισμού βημάτων στη δομή του έργου. Τα αρχεία ορισμού βημάτων περιλαμβάνουν γραμμές κωδικοποίησης Java, ενώ το αρχείο χαρακτηριστικών περιέχει δηλώσεις αγγλικών με τη μορφή γλώσσας Gherkin.
- Δημιουργήστε έναν ξεχωριστό φάκελο για την αποθήκευση του αρχείου δυνατοτήτων με δεξί κλικ στο έργο -> Νέο -> Πακέτο .
- Το αρχείο δυνατοτήτων μπορεί να δημιουργηθεί μεταβαίνοντας στο δεξί κλικ στο έργο / πακέτο -> Νέο -> Αρχείο .
- Καταχωρίστε ένα όνομα για το αρχείο δυνατοτήτων. Το αρχείο χαρακτηριστικών πρέπει να ακολουθείται από την επέκταση .feature
- Η δομή του έργου πρέπει να μοιάζει με την παρακάτω δομή.
Δημιουργία αρχείου ορισμού βημάτων
Κάθε βήμα του αρχείου δυνατοτήτων πρέπει να αντιστοιχιστεί σε έναν αντίστοιχο ορισμό βήματος. Οι ετικέτες που χρησιμοποιούνται στο αρχείο αγγουριού αγγούρι πρέπει να αντιστοιχιστούν στον ορισμό του βήματος χρησιμοποιώντας τις ετικέτες @Given, @When και @Then.
Το παρακάτω είναι η σύνταξη ενός αρχείου ορισμού βημάτων:
Σύνταξη:
@TagName ('^ Όνομα βημάτων $')
Δημόσια κενή μέθοδος Όνομα ()
{
Ορισμός μεθόδου
}
ερωτήσεις συνέντευξης για html και css
Τα ονόματα των βημάτων πρέπει να είναι προθεματικά με το σύμβολο καράτι (^) και να επιτίθενται με το σύμβολο ($) Το όνομα της μεθόδου μπορεί να είναι οποιοδήποτε έγκυρο όνομα που είναι αποδεκτό σύμφωνα με τα πρότυπα κωδικοποίησης Java. Ο ορισμός της μεθόδου περιλαμβάνει δηλώσεις κωδικοποίησης σε Java ή οποιαδήποτε άλλη γλώσσα προγραμματισμού της επιλογής του δοκιμαστή.
Παραδείγματα αρχείων χαρακτηριστικών αρχείων και ορισμού βημάτων
Για τη δημιουργία αρχείου δυνατοτήτων και αρχείου ορισμού βημάτων, μπορεί να χρησιμοποιηθεί το ακόλουθο σενάριο:
Σενάριο:
- Ανοίξτε τη σελίδα σύνδεσης μιας υπό δοκιμή εφαρμογής.
- Εισαγάγετε το όνομα χρήστη
- Εισαγάγετε τον κωδικό πρόσβασης
- Κάντε κλικ στο κουμπί Είσοδος.
- Επαληθεύστε εάν η σύνδεση χρήστη είναι επιτυχής.
Αρχείο χαρακτηριστικών:
Το παραπάνω σενάριο μπορεί να γραφτεί με τη μορφή ενός αρχείου χαρακτηριστικών όπως παρακάτω:
Χαρακτηριστικό: Συνδεθείτε σε μια δοκιμαστική εφαρμογή.
Σενάριο: Συνδεθείτε στην εφαρμογή.
Δεδομένος Ανοίξτε το πρόγραμμα περιήγησης Chrome και ξεκινήστε την εφαρμογή.
Πότε Ο χρήστης εισάγει όνομα χρήστη στο πεδίο Όνομα χρήστη.
Και Ο χρήστης εισάγει έναν κωδικό πρόσβασης στο πεδίο Κωδικός πρόσβασης.
Πότε Ο χρήστης κάνει κλικ στο κουμπί Είσοδος.
Αρχείο ορισμού βημάτων:
Στην παραπάνω δυνατότητα, ένα αρχείο μπορεί να αντιστοιχιστεί στο αντίστοιχο αρχείο ορισμού βημάτων όπως φαίνεται παρακάτω. Λάβετε υπόψη ότι για να παρέχετε μια σύνδεση μεταξύ του αρχείου δυνατοτήτων και του αρχείου ορισμού βημάτων, πρέπει να δημιουργηθεί ένα αρχείο δοκιμής.
Ακολουθεί η αναπαράσταση του αρχείου ορισμού βημάτων σύμφωνα με το αρχείο χαρακτηριστικών του.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
Η κλάση TestRunner χρησιμοποιείται για την παροχή της σύνδεσης μεταξύ του αρχείου δυνατοτήτων και του αρχείου ορισμού βημάτων. Ακολουθεί το δείγμα της εμφάνισης της τάξης TestRunner. Μια κλάση TestRunner είναι γενικά μια κενή τάξη χωρίς ορισμό κλάσης.
Package com.sample.TestRunner import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(features='Features',glue={'StepDefinition'}) public class Runner { }
Πρέπει να εκτελέσουμε το αρχείο κλάσης TestRunner για την εκτέλεση αρχείων χαρακτηριστικών και αρχείων καθορισμού βημάτων.
Παραδείγματα
Ακολουθεί η αναπαράσταση αρχείων χαρακτηριστικών διαφόρων σεναρίων.
Παράδειγμα # 1:
Για να επαληθεύσετε εάν το όνομα χρήστη και ο κωδικός πρόσβασης είναι διαθέσιμα στη σελίδα σύνδεσης:
Χαρακτηριστικό: Επαληθεύστε την εμφάνιση των πεδίων ονόματος χρήστη και κωδικού πρόσβασης σε μια σελίδα σύνδεσης.
Σενάριο: Για να επαληθεύσετε την εμφάνιση των πεδίων ονόματος χρήστη και κωδικού πρόσβασης.
Δεδομένος Ο χρήστης ανοίγει το πρόγραμμα περιήγησης Firefox και μεταβαίνει στην υπό δοκιμή εφαρμογή.
Πότε Ο χρήστης μεταβαίνει σε μια σελίδα σύνδεσης.
Τότε Επαληθεύστε την εμφάνιση του πεδίου ονόματος χρήστη στη σελίδα σύνδεσης.
Και Επαληθεύστε την εμφάνιση του πεδίου κωδικού πρόσβασης στη σελίδα σύνδεσης.
Παράδειγμα # 2:
Ακολουθεί το παράδειγμα για τη λέξη-κλειδί διάρθρωσης σεναρίου στο αγγούρι αγγουράκι:
Χαρακτηριστικό: Βεβαιωθείτε ότι η σύνδεση είναι επιτυχής για πολλά σύνολα δεδομένων δοκιμής.
Περίγραμμα σεναρίου: Για να επαληθεύσετε εάν η σύνδεση είναι επιτυχής για πολλά σύνολα δεδομένων δοκιμής.
Δεδομένος Ανοίξτε το πρόγραμμα περιήγησης Chrome και ξεκινήστε την εφαρμογή.
Πότε Ο χρήστης μπαίνει στο πεδίο Όνομα χρήστη.
Και Ο χρήστης μπαίνει στο πεδίο Κωδικός πρόσβασης.
Πότε Ο χρήστης κάνει κλικ στο κουμπί Είσοδος.
Παραδείγματα:
| όνομα χρήστη | κωδικός πρόσβασης |
| χρήστης1 | κωδικός πρόσβασης1 |
| χρήστης2 | κωδικός πρόσβασης2 |
συμπέρασμα
- Το BDD είναι μια μεθοδολογία για την κατανόηση της λειτουργικότητας μιας εφαρμογής σε απλή αναπαράσταση απλού κειμένου.
- Το αγγούρι είναι ένα εργαλείο που χρησιμοποιεί Behavior Driven Development για τη σύνταξη δοκιμών αποδοχής μιας εφαρμογής. Χρησιμοποιείται για τη γεφύρωση του χάσματος επικοινωνίας μεταξύ διαφόρων ενδιαφερομένων έργων.
- Η κύρια χρήση του Cucumber έγκειται στην απλότητά του να κατανοεί τη χρήση αρχείων χαρακτηριστικών από μη τεχνικούς χρήστες.
Δεν είναι πολύ αργά να δοκιμάσετε αυτό το εργαλείο αγγουριού χρησιμοποιώντας τη γλώσσα Gherkin.
Συνιστώμενη ανάγνωση
- Tutorial Geb - Δοκιμή αυτοματισμού προγράμματος περιήγησης με χρήση του εργαλείου Geb
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- Έλεγχος αυτοματισμού με χρήση εργαλείου αγγουριού και σεληνίου - Σελήνιο σεμινάριο # 30
- Τι είναι ο έλεγχος αυτοματισμού (ο τελικός οδηγός για την έναρξη του αυτοματισμού δοκιμής)
- Tutorial Spock: Δοκιμή με Spock και Groovy
- Τα καλύτερα εργαλεία δοκιμής λογισμικού 2021 (QA Test Automation Tools)
- Οδηγός καταστροφικών δοκιμών και μη καταστροφικών δοκιμών
- Λειτουργική δοκιμή Vs Μη λειτουργική δοκιμή