automation testing using cucumber tool
Στο τελευταίο σεμινάριο Selenium, σας παρουσιάσαμε Πλέγμα σεληνίου το οποίο είναι προς την κατανεμημένη εκτέλεση δοκιμής περιβάλλον για να επιταχύνει την εκτέλεση μιας δοκιμαστικής κάρτας .
Τώρα στο τέλος αυτής της ολοκληρωμένης σειράς εκπαίδευσης σεληνίου, μαθαίνουμε προχωρημένους Δοκιμή σεληνίου και συναφείς έννοιες.
Σε αυτό και το επόμενο σεμινάριο, θα σας παρουσιάσουμε στο Αγγούρι - α Συμπεριφορά βάσει συμπεριφοράς (BDD) που χρησιμοποιείται με το Selenium για την εκτέλεση δοκιμών αποδοχής.
Τι θα μάθετε:
Εισαγωγή αγγουριών
Ένα αγγούρι είναι ένα εργαλείο που βασίζεται στο πλαίσιο Behavior Driven Development (BDD) το οποίο χρησιμοποιείται για τη σύνταξη δοκιμών αποδοχής για την εφαρμογή Ιστού. Επιτρέπει την αυτοματοποίηση της λειτουργικής επικύρωσης σε ευανάγνωστη και κατανοητή μορφή (όπως απλή αγγλική γλώσσα) σε επιχειρηματικούς αναλυτές, προγραμματιστές, δοκιμαστές κ.λπ.
Τα αρχεία χαρακτηριστικών αγγουριών μπορούν να χρησιμεύσουν ως ένα καλό έγγραφο για όλους. Υπάρχουν πολλά άλλα εργαλεία όπως το JBehave που υποστηρίζουν επίσης το πλαίσιο BDD. Αρχικά, το Αγγούρι εφαρμόστηκε στο Ruby και στη συνέχεια επεκτάθηκε στο Java framework. Και τα δύο εργαλεία υποστηρίζουν το εγγενές JUnit.
Το Behavior Driven Development είναι μια επέκταση του Test Driven Development και χρησιμοποιείται για τη δοκιμή του συστήματος και όχι για τη δοκιμή του συγκεκριμένου κώδικα. Θα συζητήσουμε περισσότερα για το BDD και το στυλ γραφής BDD τεστ.
Το αγγούρι μπορεί να χρησιμοποιηθεί μαζί με το Σελήνιο, το Watir και το Capybara κ.λπ. Το αγγούρι υποστηρίζει πολλές άλλες γλώσσες όπως Perl, PHP, Python, Net κ.λπ. Σε αυτό το σεμινάριο, θα επικεντρωθούμε στο Αγγούρι με Java ως γλώσσα.
Βασικά αγγούρια
Για να κατανοήσουμε το αγγούρι, πρέπει να γνωρίζουμε όλα τα χαρακτηριστικά του αγγουριού και τη χρήση του.
πώς να ανοίξετε το αρχείο xml στο chrome
# 1) Αρχεία χαρακτηριστικών:
Τα αρχεία χαρακτηριστικών είναι το ουσιαστικό μέρος του αγγουριού που χρησιμοποιείται για τη σύνταξη βημάτων αυτοματοποίησης δοκιμών ή δοκιμών αποδοχής. Αυτό μπορεί να χρησιμοποιηθεί ως ζωντανό έγγραφο. Τα βήματα είναι οι προδιαγραφές της εφαρμογής. Όλα τα αρχεία χαρακτηριστικών τελειώνουν με επέκταση .feature.
Δείγμα αρχείου χαρακτηριστικών:
χαρακτηριστικό : Λειτουργία λειτουργικότητας σύνδεσης
Προκειμένου να διασφαλιστεί ότι λειτουργεί η λειτουργικότητα σύνδεσης,
Θέλω να εκτελέσω τη δοκιμή αγγουριού για να επαληθεύσω ότι λειτουργεί
Σενάριο : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETETINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το Όνομα χρήστη ως 'USER' και τον κωδικό πρόσβασης 'PASSWORD'
Επειτα η σύνδεση πρέπει να είναι επιτυχής
Σενάριο : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETETINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το όνομα χρήστη ως 'USER1' και τον κωδικό πρόσβασης 'PASSWORD1'
Επειτα μήνυμα λάθους πρέπει να ρίξει
# 2) Χαρακτηριστικό:
Τ δίνει πληροφορίες σχετικά με τη λειτουργικότητα υψηλού επιπέδου (Ανατρέξτε στο προηγούμενο παράδειγμα) και τον σκοπό της υπό δοκιμή Εφαρμογής. Όλοι πρέπει να είναι σε θέση να κατανοήσουν την πρόθεση του αρχείου δυνατοτήτων διαβάζοντας το πρώτο βήμα λειτουργίας. Αυτό το μέρος διατηρείται βασικά σύντομο.
# 3) Σενάριο:
Βασικά, ένα σενάριο αντιπροσωπεύει μια συγκεκριμένη λειτουργικότητα που είναι υπό δοκιμή. Βλέποντας το σενάριο, ο χρήστης θα πρέπει να είναι σε θέση να κατανοήσει την πρόθεση πίσω από το σενάριο και τι είναι το τεστ. Κάθε σενάριο πρέπει να ακολουθεί δεδομένη, πότε και μετά μορφή. Αυτή η γλώσσα ονομάζεται «αγγούρι».
- Δεδομένος: Όπως αναφέρθηκε παραπάνω, το δεδομένο καθορίζει τις προϋποθέσεις. Είναι βασικά ένα γνωστό κράτος.
- Πότε : Χρησιμοποιείται όταν πρόκειται να εκτελεστεί κάποια ενέργεια. Όπως στο παραπάνω παράδειγμα, έχουμε δει όταν ο χρήστης προσπαθεί να συνδεθεί χρησιμοποιώντας όνομα χρήστη και κωδικό πρόσβασης, γίνεται ενέργεια .
- Επειτα: Το αναμενόμενο αποτέλεσμα ή το αποτέλεσμα πρέπει να τοποθετηθεί εδώ. Για παράδειγμα: βεβαιωθείτε ότι η σύνδεση είναι επιτυχής, επιτυχημένη πλοήγηση σελίδας.
- Ιστορικό: Όποτε απαιτείται κάποιο βήμα για εκτέλεση σε κάθε σενάριο, τότε αυτά τα βήματα πρέπει να τοποθετούνται στο Background. Για παράδειγμα: Εάν ένας χρήστης πρέπει να εκκαθαρίσει τη βάση δεδομένων πριν από κάθε σενάριο, τότε αυτά τα βήματα μπορούν να τεθούν σε φόντο.
- Και : Και χρησιμοποιείται για το συνδυασμό δύο ή περισσότερων ίδιων τύπων δράσης.
Παράδειγμα:
χαρακτηριστικό : Λειτουργία λειτουργικότητας σύνδεσης
Σενάριο : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETETINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το όνομα χρήστη ως 'USER'
Και κωδικός πρόσβασης ως «κωδικός πρόσβασης»
Επειτα η σύνδεση πρέπει να είναι επιτυχής
Και Η αρχική σελίδα πρέπει να εμφανίζεται
η κυκλοφορία ασύρματου δικτύου μπορεί να καταγραφεί με sniffers.
Παράδειγμα ιστορικού:
Ιστορικό:
Δεδομένος ο χρήστης έχει συνδεθεί ως διαχειριστής βάσεων δεδομένων
Και διαγράφονται όλες οι ανεπιθύμητες τιμές
# 4) Περίγραμμα σεναρίου:
Τα περιγράμματα σεναρίων χρησιμοποιούνται όταν πρέπει να πραγματοποιηθεί η ίδια δοκιμή με διαφορετικά σύνολα δεδομένων. Ας πάρουμε το ίδιο παράδειγμα. Πρέπει να ελέγξουμε τη λειτουργικότητα σύνδεσης με πολλά διαφορετικά σύνολα ονόματος χρήστη και κωδικού πρόσβασης.
χαρακτηριστικό : Λειτουργία λειτουργικότητας σύνδεσης
Προκειμένου να διασφαλιστεί ότι λειτουργεί η λειτουργικότητα σύνδεσης,
Θέλω να εκτελέσω τη δοκιμή αγγουριού για να επαληθεύσω ότι λειτουργεί
Περίγραμμα σεναρίου : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETESTINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το Όνομα χρήστη ως< όνομα χρήστη > και κωδικός πρόσβασης< Κωδικός πρόσβασης >
Επειτα η σύνδεση πρέπει να είναι επιτυχής
Παραδείγματα:
| όνομα χρήστη | κωδικός πρόσβασης |
| Τομ | κωδικός πρόσβασης1 |
| Χάρι | κωδικός πρόσβασης2 |
| Jerry | κωδικός πρόσβασης3 |
Σημείωση:
- Όπως φαίνεται στο παραπάνω παράδειγμα, τα ονόματα στηλών περνούν ως παράμετρος στο Πότε δήλωση.
- Στη θέση του σεναρίου, πρέπει να χρησιμοποιήσετε το περίγραμμα σεναρίου.
- Τα παραδείγματα χρησιμοποιούνται για τη μετάδοση διαφορετικών ορισμάτων σε μορφή πίνακα. Οι κάθετοι σωλήνες χρησιμοποιούνται για το διαχωρισμό δύο διαφορετικών στηλών. Ένα παράδειγμα μπορεί να περιέχει πολλές διαφορετικές στήλες.
# 5) Ετικέτες:
Το αγγούρι από προεπιλογή εκτελεί όλα τα σενάρια σε όλα τα αρχεία χαρακτηριστικών. Σε έργα σε πραγματικό χρόνο, μπορεί να υπάρχουν εκατοντάδες αρχεία χαρακτηριστικών που δεν απαιτείται να εκτελούνται ανά πάσα στιγμή.
Για παράδειγμα : Τα αρχεία δυνατοτήτων που σχετίζονται με τη δοκιμή καπνού δεν χρειάζεται να εκτελούνται συνεχώς. Αν λοιπόν αναφέρετε μια ετικέτα ως καπνιστή σε κάθε αρχείο χαρακτηριστικών που σχετίζεται με τη δοκιμή καπνού και εκτελεί δοκιμή αγγουριού με την ετικέτα @SmokeTest. Το αγγούρι θα εκτελεί μόνο εκείνα τα αρχεία λειτουργιών ειδικά για συγκεκριμένες ετικέτες. Ακολουθήστε το παρακάτω παράδειγμα. Μπορείτε να καθορίσετε πολλές ετικέτες σε ένα αρχείο δυνατοτήτων.
Παράδειγμα χρήσης μεμονωμένων ετικετών:
@SmokeTest
χαρακτηριστικό : Λειτουργία λειτουργικότητας σύνδεσης
Προκειμένου να διασφαλιστεί ότι λειτουργεί η λειτουργικότητα σύνδεσης,
Θέλω να εκτελέσω τη δοκιμή αγγουριού για να επαληθεύσω ότι λειτουργεί
Περίγραμμα σεναρίου : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETESTINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το Όνομα χρήστη ως< όνομα χρήστη > και κωδικός πρόσβασης< Κωδικός πρόσβασης >
Επειτα η σύνδεση πρέπει να είναι επιτυχής
Παραδείγματα:
| όνομα χρήστη | κωδικός πρόσβασης |
| Τομ | κωδικός πρόσβασης1 |
| Χάρι | κωδικός πρόσβασης2 |
| Jerry | κωδικός πρόσβασης3 |
Παράδειγμα χρήσης πολλαπλών ετικετών:
Όπως φαίνεται στο παρακάτω παράδειγμα, το ίδιο αρχείο χαρακτηριστικών μπορεί να χρησιμοποιηθεί για σενάρια δοκιμής καπνού, καθώς και για σενάριο δοκιμής σύνδεσης. Όταν σκοπεύετε να εκτελέσετε το σενάριό σας για δοκιμή καπνού, τότε χρησιμοποιήστε το @SmokeTest. Ομοίως, όταν θέλετε να εκτελείται το σενάριό σας για δοκιμή σύνδεσης, χρησιμοποιήστε την ετικέτα @LoginTest.
Οποιοσδήποτε αριθμός ετικετών μπορεί να αναφέρεται για ένα αρχείο χαρακτηριστικών καθώς και για το σενάριο.
@SmokeTest @LoginTest
χαρακτηριστικό : Λειτουργία λειτουργικότητας σύνδεσης
Προκειμένου να διασφαλιστεί ότι λειτουργεί η λειτουργικότητα σύνδεσης,
Θέλω να εκτελέσω τη δοκιμή αγγουριού για να επαληθεύσω ότι λειτουργεί
Περίγραμμα σεναρίου : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETETINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το όνομα χρήστη ως και τον κωδικό πρόσβασης
Επειτα η σύνδεση πρέπει να είναι επιτυχής
Παραδείγματα:
| όνομα χρήστη | κωδικός πρόσβασης |
| Τομ | κωδικός πρόσβασης1 |
| Χάρι | κωδικός πρόσβασης2 |
| Jerry | κωδικός πρόσβασης3 |
Ομοίως, μπορείτε να καθορίσετε ετικέτες για την εκτέλεση του συγκεκριμένου σεναρίου σε ένα αρχείο δυνατοτήτων. Ελέγξτε το παρακάτω παράδειγμα για να εκτελέσετε συγκεκριμένο σενάριο.
χαρακτηριστικό : Λειτουργία λειτουργικότητας σύνδεσης
Προκειμένου να διασφαλιστεί ότι λειτουργεί η λειτουργικότητα σύνδεσης,
Θέλω να εκτελέσω τη δοκιμή αγγουριού για να επαληθεύσω ότι λειτουργεί
@positiveScenario
Σενάριο : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETETINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το Όνομα χρήστη ως 'USER' και τον κωδικό πρόσβασης 'PASSWORD'
Επειτα η σύνδεση πρέπει να είναι επιτυχής
@negaviveScenario
Σενάριο : Λειτουργικότητα σύνδεσης
Δεδομένος ο χρήστης μεταβαίνει στο SOFTWARETETINGHELP.COM
Πότε ο χρήστης συνδέεται χρησιμοποιώντας το όνομα χρήστη ως 'USER1' και τον κωδικό πρόσβασης 'PASSWORD1'
Επειτα το μήνυμα σφάλματος πρέπει να ρίξει
# 6) Δρομέας JUnit:
Για να εκτελέσετε το συγκεκριμένο αρχείο χαρακτηριστικών, το αγγούρι χρησιμοποιεί το τυπικό JUnit Runner και καθορίζει ετικέτες στο @Cucumber. Επιλογές. Μπορούν να δοθούν πολλαπλές ετικέτες χρησιμοποιώντας ξεχωριστό κόμμα. Εδώ μπορείτε να καθορίσετε τη διαδρομή της αναφοράς και τον τύπο αναφοράς που θέλετε να δημιουργήσετε.
Παράδειγμα Junit Runner:
import cucumber.api.junit.Cucumber;
εισαγωγή org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / merokokTest.html'}, tags = {'@ smokeTest'}) Δημόσια τάξη JUnitRunner {} Ομοίως, μπορείτε να δώσετε οδηγίες στο αγγούρι να εκτελέσει πολλές ετικέτες. Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε πολλές ετικέτες στο αγγούρι για να εκτελέσετε διαφορετικά σενάρια.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Αναφορά αγγουριών:
Το αγγούρι δημιουργεί τη δική του μορφή HTML. Ωστόσο, η καλύτερη αναφορά μπορεί να γίνει χρησιμοποιώντας το Jenkins ή το εργαλείο μπαμπού. Οι λεπτομέρειες της αναφοράς καλύπτονται στο επόμενο θέμα του αγγουριού.
Ρύθμιση έργου αγγουριού:
Λεπτομερής επεξήγηση του έργου αγγουριού διατίθεται ξεχωριστά στο επόμενο σεμινάριο. Ανατρέξτε στο Cucumber Tutorial Part2 από περισσότερες πληροφορίες σχετικά με την εγκατάσταση του έργου. Να θυμάστε ότι δεν απαιτούνται επιπλέον εγκαταστάσεις λογισμικού για το αγγούρι.
τύπος δοκιμών στη μηχανική λογισμικού
Υλοποίηση του αρχείου δυνατοτήτων:
Πρέπει να εφαρμόσουμε αυτά τα βήματα στην Java για να δοκιμάσουμε τα αρχεία χαρακτηριστικών. Πρέπει να δημιουργήσετε μια τάξη που περιέχει αυτές που δίνονται, πότε και μετά δηλώσεις. Το αγγούρι χρησιμοποιεί τους σχολιασμούς του και όλα τα βήματα είναι ενσωματωμένα σε αυτούς τους σχολιασμούς (δίνονται, πότε, τότε). Κάθε φράση ξεκινά με '^' έτσι ώστε το αγγούρι να κατανοεί την αρχή του βήματος. Ομοίως, κάθε βήμα τελειώνει με '$'. Ο χρήστης μπορεί να χρησιμοποιήσει κανονικές εκφράσεις για να περάσει διαφορετικά δεδομένα δοκιμών. Οι κανονικές εκφράσεις λαμβάνουν δεδομένα από βήματα χαρακτηριστικών και μεταβιβάζουν σε ορισμούς βημάτων. Η σειρά των παραμέτρων εξαρτάται από το πώς μεταδίδονται από το αρχείο χαρακτηριστικών. Ανατρέξτε στον επόμενο οδηγό για τη ρύθμιση του έργου και την αντιστοίχιση μεταξύ αρχείων χαρακτηριστικών και τάξεων Java.
Παράδειγμα:
Το παρακάτω παράδειγμα είναι για να δείξετε πώς μπορούν να εφαρμοστούν τα αρχεία χαρακτηριστικών.
Σε αυτό το παράδειγμα, δεν έχουμε χρησιμοποιήσει κανένα σελήνιο API. Αυτό είναι απλώς για να δείξει πώς λειτουργεί το αγγούρι ως αυτόνομο πλαίσιο. Ακολουθήστε το επόμενο σεμινάριο για την ενσωμάτωση σεληνίου με αγγούρι.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Όταν εκτελείτε την τάξη δρομέας αγγουριού, το αγγούρι θα αρχίσει να διαβάζει τα βήματα του αρχείου χαρακτηριστικών. Για παράδειγμα, όταν εκτελείτε το @smokeTest, το αγγούρι θα διαβάσει χαρακτηριστικό βήμα και Δεδομένος μια δήλωση του σενάριο . Μόλις βρεθεί το αγγούρι. Δίνεται η δήλωση, το ίδιο Δεδομένος θα γίνει αναζήτηση για τα αρχεία java. Εάν το ίδιο βήμα βρίσκεται στο αρχείο java τότε το αγγούρι εκτελεί τη λειτουργία που καθορίζεται για το ίδιο βήμα, διαφορετικά το αγγούρι θα παραλείψει το βήμα.
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε καλύψει τις δυνατότητες του εργαλείου αγγουριού και τη χρήση του σε σενάριο σε πραγματικό χρόνο.
Το αγγούρι είναι το πιο αγαπημένο εργαλείο για πολλά έργα, καθώς είναι εύκολο να γίνει κατανοητό, ευανάγνωστο και περιέχει επιχειρηματική λειτουργικότητα.
Στο επόμενο κεφάλαιο , θα καλύψουμε τον τρόπο δημιουργίας ενός έργου αγγουριού - java και πώς να ενσωματώσουμε το Selenium WebDriver με το Αγγούρι.
Συνιστώμενη ανάγνωση
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- 30+ καλύτερα σεμινάρια σεληνίου: Μάθετε το σελήνιο με πραγματικά παραδείγματα
- Selenium Grid Tutorial: Ρύθμιση και παράδειγμα δοκιμών Cross Browser
- Spock για ενσωμάτωση και λειτουργική δοκιμή με σελήνιο
- Χρήση του Maven Build Automation Tool και Maven Project Setup για Selenium - Selenium Tutorial # 24
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- Οδηγός εργαλείων δοκιμής προσβασιμότητας WAVE