Selenium μαζί σου, Cucumber (Οδηγός BDD Framework)
⚡ Έξυπνη Σύνοψη
Selenium μαζί σου, Cucumber σχηματίζει ένα ισχυρό πλαίσιο Ανάπτυξης με γνώμονα τη Συμπεριφορά (BDD) που συνδυάζει τη σύνταξη απλής αγγλικής γλώσσας Gherkin με Selenium Αυτοματοποίηση WebDriver. Αυτό το σεμινάριο εξηγεί τις προϋποθέσεις, παρουσιάζει τρία πρακτικά σενάρια και δείχνει πώς ενσωματώνονται τα αρχεία χαρακτηριστικών, οι ορισμοί βημάτων και μια κλάση TestRunner για την εκτέλεση δοκιμών προγράμματος περιήγησης.

Σε αυτό το σεμινάριο, θα μάθετε πώς να ενσωματώνετε Cucumber μαζί σου, Selenium WebDriver για τη δημιουργία ενός πλαισίου ανάπτυξης βάσει συμπεριφοράς (BDD) που είναι ευανάγνωστο, συντηρήσιμο και βασισμένο σε δεδομένα.
Τι είναι Cucumber?
Cucumber είναι ένα εργαλείο δοκιμών που υποστηρίζει την Ανάπτυξη με γνώμονα τη Συμπεριφορά (BDD). Περιγράφει τη συμπεριφορά μιας εφαρμογής σε απλό αγγλικό κείμενο χρησιμοποιώντας τη γλώσσα Gherkin, η οποία επιτρέπει σε μη προγραμματιστές να συνεισφέρουν στις προδιαγραφές δοκιμών χωρίς να μάθουν γλώσσα προγραμματισμού. Μάθετε περισσότερα στο Cucumber φροντιστήριο.
Τι είναι Selenium?
Selenium είναι ένα εργαλείο αυτοματισμού που χρησιμοποιείται για Λειτουργική δοκιμή των διαδικτυακών εφαρμογών. Selenium υποστηρίζει πολλαπλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων JavaΡουμπίνι, Pythonκαι C#, γεγονός που το καθιστά ιδανικό για ομάδες με μικτό τεχνικό υπόβαθρο. Μάθετε περισσότερα στο δικό μας. Selenium φροντιστήριο.
Γιατί να χρησιμοποιήσετε Cucumber μαζί σου, Selenium?
Cucumber και Selenium είναι δύο από τις πιο ευρέως υιοθετημένες τεχνολογίες δοκιμών. Οι περισσότεροι οργανισμοί χρησιμοποιούν ήδη Selenium για λειτουργικές δοκιμές και θέλετε να κάνετε στρώσεις Cucumber στην κορυφή επειδή Cucumber διευκολύνει την ανάγνωση και την κατανόηση της ροής της εφαρμογής.
Cucumber βασίζεται στο πλαίσιο Ανάπτυξης με γνώμονα τη συμπεριφορά που λειτουργεί ως γέφυρα μεταξύ των ακόλουθων ρόλων:
- Μηχανικός Λογισμικού και Επιχειρηματικός Αναλυτής.
- Χειροκίνητος ελεγκτής και ελεγκτής αυτοματισμού.
- Εγχειρίδιο δοκιμαστή και προγραμματιστές.
The Cucumber Πλαίσιο BDD επίσης βοηθά τους πελάτες να κατανοήσουν τον κώδικα της εφαρμογής επειδή χρησιμοποιεί τη γλώσσα Gherkin, η οποία είναι σε απλό κείμενο. Οποιοσδήποτε στον οργανισμό μπορεί να παρακολουθήσει τη συμπεριφορά του λογισμικού. Η σύνταξη Gherkin είναι σε απλά και ευανάγνωστα αγγλικά, γεγονός που διατηρεί την προδιαγραφή προσβάσιμη σε μη τεχνικούς αναγνώστες.
Προϋποθέσεις για τη χρήση Cucumber μαζί σου, Selenium
Πριν ξεκινήσουμε το Cucumber-Selenium ενσωμάτωσης, χρειάζεστε τα ακόλουθα στοιχεία:
Selenium αρχεία jar:
- Selenium-διακομιστής-αυτόνομος
Μπορείτε να τα κατεβάσετε από τη διεύθυνση https://www.selenium.dev/downloads/.
Αρχεία Jar για Cucumber:
- Cucumber-πυρήνας
- Cucumber-html
- Cobertura κάλυψη κώδικα
- Cucumber-Ιάβα
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-αναφορά
- Hamcrest-core
- Αγγουράκι
- JUnit
Μπορείτε να τα κατεβάσετε από τη διεύθυνση https://mvnrepository.com/search?q=CucumberΘα χρειαστεί να αναζητήσετε κάθε jar και να τα κατεβάσετε ένα προς ένα.
Για παράδειγμα, δείτε πώς μπορείτε να κατεβάσετε ένα από τα αρχεία jar, το "Cucumber-core" βιβλιοθήκη.
Κάντε κλικ στον σύνδεσμο λήψης παραπάνω. Αυτό θα σας ανακατευθύνει στον ιστότοπο του αποθετηρίου Maven. Τώρα αναζητήστε το συγκεκριμένο jar (σε αυτήν την περίπτωση "Cucumber Πυρήνας») όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:
Στην επόμενη σελίδα, κάντε κλικ στην έκδοση 1.2.2:
Στην επόμενη οθόνη, κάντε κλικ στην επιλογή Λήψη για να λάβετε το Cucumber Αρχείο jar πυρήνα:
Σημείωση: Για λόγους ευκολίας, έχουμε ομαδοποιήσει τα απαραίτητα αρχεία Maven jar εδώΑυτά τα jar ενδέχεται να καταστούν παρωχημένα και ασύμβατα με την πάροδο του χρόνου, επομένως συνιστούμε να τα κατεβάσετε μόνοι σας χρησιμοποιώντας τη μέθοδο που περιγράφεται παραπάνω.
Δοκιμή αυτοματισμού με χρήση Cucumber μαζί σου, Selenium
Ας δούμε πώς να χρησιμοποιούμε Cucumber μαζί σου, Selenium βήμα προς βήμα. Εδώ θα καλύψουμε τρία σενάρια:
- Σενάριο 1: Εκτύπωση κειμένου στην κονσόλα.
- Σενάριο 2: Εισαγάγετε τα διαπιστευτήρια σύνδεσης και επαναφέρετε την τιμή.
- Σενάριο 3: Εισαγάγετε τα διαπιστευτήρια σύνδεσης στο Guru99 και επαναφορά της τιμής — επαναλαμβάνεται για 3 σύνολα δεδομένων.
Σενάριο 1: Εκτύπωση κειμένου στην κονσόλα
Σε αυτό το σενάριο, απλώς εκτυπώνουμε κείμενο στην κονσόλα χρησιμοποιώντας Cucumber.
Βήμα 1) Δημιουργήστε ένα έργο στο Eclipse.
Δημιουργία Java έργο με το όνομα "CucumberΜεSelenium" όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Βήμα 2) Προσθέστε τα αρχεία jar στο έργο.
Κάντε δεξί κλικ στο έργο > Ιδιότητες > Java Διαδρομή δημιουργίας. Προσθέστε όλες τις βιβλιοθήκες που κατεβάσατε νωρίτερα.
Βήμα 3) Δημιουργήστε ένα αρχείο χαρακτηριστικών.
Για να δημιουργήσετε ένα αρχείο χαρακτηριστικών, δημιουργήστε πρώτα έναν φάκελο Χαρακτηριστικά όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Εισαγάγετε το όνομα του φακέλου "Χαρακτηριστικά" και κάντε κλικ στο Τέλος.
Τώρα δημιουργήστε ένα αρχείο χαρακτηριστικών μέσα στον φάκελο Features με το όνομα MyTest.featureΗ διαδικασία είναι παρόμοια με τη δημιουργία ενός φακέλου.
Σημείωση: Ίσως χρειαστεί να εγκαταστήσετε το Cucumber Eclipse Πρώτα το πρόσθετο. Μεταβείτε στη Βοήθεια → Εγκατάσταση νέου λογισμικού, επικολλήστε τον σύνδεσμο http://cucumber.github.io/cucumber-eclipse/update-site/, και να το εγκαταστήσετε.
Βήμα 4) Γράψτε τα σενάρια.
Οι παρακάτω γραμμές είναι γραμμένες σε MyTest.feature χρησιμοποιώντας τη γλώσσα Gherkin:
Feature: Reset functionality on login page of Application
Scenario: Verification of Reset button
Given Open the Firefox and launch the application
When Enter the Username and Password
Then Reset the credential
Code εξήγηση
Γραμμή 1) Ορίζει τη λειτουργικότητα της επιχείρησης.
Γραμμή 2) Ορίζει ένα σενάριο προς δοκιμή.
Γραμμή 3) Ορίζει την προϋπόθεση (Δεδομένη).
Γραμμή 4) Ορίζει την ενέργεια που θα εκτελεστεί (Πότε).
Γραμμή 5) Ορίζει το αναμενόμενο αποτέλεσμα ή αποτέλεσμα (Τότε).
Βήμα 5) Γράψε το Selenium Σκριπτ TestRunner για το Cucumber σχεδιασμός πλαισίου.
Δημιουργία TestRunner πακέτο και στη συνέχεια ένα Runner.java αρχείο κλάσης από κάτω.
package 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
{
}
Στα παραπάνω Cucumber Java παράδειγμα, τρέχουμε το τεστ αγγουριού χρησιμοποιώντας τις ακόλουθες σημειώσεις:
@RunWith() λέει JUnit σχετικά με την κλάση test runner που ξεκινά την εκτέλεση των δοκιμών μας.
@CucumberΕπιλογές() Ορίζει ιδιότητες δοκιμής όπως τη διαδρομή του αρχείου χαρακτηριστικών και το πακέτο κόλλας ορισμού βημάτων.
Στιγμιότυπο οθόνης του αρχείου TestRunner:
Βήμα 6) Δημιουργήστε το σενάριο ορισμού βημάτων.
Τώρα δημιουργήστε ένα Ορισμός βήματος πακέτο και στη συνέχεια ένα Βήματα.java αρχείο script από κάτω. Μέσα στο Steps.java γράφουμε το Selenium λογική που αντιστοιχίζεται σε κάθε βήμα του Gherkin.
package StepDefinition;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.out.println("This Step open the Firefox and launch the application.");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
System.out.println("This step enter the Username and Password on the login page.");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
System.out.println("This step click on the Reset button.");
}
}
Η κλάση ονομάζεται Βήματακαι Cucumber Οι σχολιασμοί αντιστοιχίζουν κάθε μέθοδο σε ένα βήμα αρχείου χαρακτηριστικών:
@Δεδομένος ορίζει τη μέθοδο ανοίγματος Firefox και εκκινήστε την εφαρμογή.
@Οταν ορίζει τη μέθοδο εισαγωγής ονόματος χρήστη και κωδικού πρόσβασης.
@Επειτα ορίζει τη μέθοδο επαναφοράς των διαπιστευτηρίων.
Κάθε μέθοδος απλώς εκτυπώνει ένα μήνυμα στην κονσόλα.
Το παρακάτω στιγμιότυπο οθόνης δείχνει το σενάριο Steps.java και το δέντρο του έργου:
Σημείωση: Ένας ορισμός βήματος είναι ο κώδικας που θέλετε Cucumber για εκτέλεση όταν ταιριάζει με ένα βήμα αρχείου χαρακτηριστικών.
Βήμα 7) Εκτελέστε το σενάριο.
Εκτελέστε αυτό το σενάριο από το αρχείο TestRunner (Runner.java) όπως φαίνεται παρακάτω.
Βήμα 8) Αναλύστε την έξοδο.
Κατά την εκτέλεση του Runner.java, Cucumber εκτυπώνει το ίδιο κείμενο που ορίζεται στο Steps.java στην κονσόλα.
Σενάριο 2: Εισαγάγετε τα διαπιστευτήρια σύνδεσης και επαναφέρετε την τιμή
Εδώ εισάγουμε τα διαπιστευτήρια στο Guru99 σελίδα σύνδεσης επίδειξης και επαναφορά της τιμής.
Για το Σενάριο 2 χρειάζεται μόνο να ενημερώσουμε Βήματα.javaΕδώ προσθέτουμε το πραγματικό Selenium κώδικα. Αρχικά, βεβαιωθείτε ότι Selenium Το αρχείο jar προστίθεται στο έργο.
Βήμα 1) Ενημερώστε το σενάριο Steps.java όπως φαίνεται παρακάτω.
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
driver.findElement(By.name("uid")).sendKeys("username12");
driver.findElement(By.name("password")).sendKeys("password12");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
Στιγμιότυπο οθόνης των παραπάνω Selenium γραφή:
Βήμα 2) Εκτελέστε το σενάριο.
Αφού ενημερώσετε το Steps.java, εκτελέστε το Runner.java.
Βήμα 3) Αναλύστε την έξοδο. Στην έξοδο θα δείτε τα εξής:
- Το πρόγραμμα περιήγησης ξεκίνησε.
- GuruΑνοίγει η ιστοσελίδα επίδειξης 99 τραπεζών.
- Το όνομα χρήστη και ο κωδικός πρόσβασης εισάγονται στη σελίδα σύνδεσης.
- Το κουμπί Επαναφορά διαγράφει τις τιμές.
Σενάριο 3: Εκτέλεση της ροής σύνδεσης και επαναφοράς με 3 σύνολα δεδομένων
Εδώ πρέπει να ενημερώσουμε και τα δύο Βήματα.java και το αρχείο χαρακτηριστικών για την οδήγηση της ίδιας ροής με τρία σύνολα διαπιστευτηρίων.
Βήμα 1) Ενημερώστε το αρχείο δυνατοτήτων όπως φαίνεται παρακάτω.
Χρησιμοποιούμε το Περίγραμμα Σεναρίου και Παραδείγματα σύνταξη έτσι Cucumber επαναλαμβάνει το ίδιο σενάριο σε κάθε γραμμή δεδομένων.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with multiple credentials
Given Open the Firefox and launch the application
When Enter the Username <username> and Password <password>
Then Reset the credential
Examples:
| username | password |
| User1 | password1 |
| User2 | password2 |
| User3 | password3 |
Βήμα 2) Ενημερώστε το σενάριο Steps.java.
Εδώ ενημερώνουμε τις υπογραφές μεθόδων ώστε να δέχονται παραμέτρους από τον πίνακα Examples.
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")
public void enter_the_Username_and_Password(String username, String password) throws Throwable
{
driver.findElement(By.name("uid")).sendKeys(username);
driver.findElement(By.name("password")).sendKeys(password);
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
Βήμα 3) Εκτελέστε το ενημερωμένο σενάριο.
Η παρακάτω οθόνη δείχνει μια επιτυχημένη εκτέλεση και τον χρόνο που χρειάστηκε για κάθε σύνολο δεδομένων.
Βήμα 4) Αναλύστε το αποτέλεσμα. Τα ακόλουθα βήματα επαναλαμβάνονται για καθένα από τα 3 σύνολα δεδομένων:
- Το πρόγραμμα περιήγησης ξεκίνησε.
- GuruΑνοίγει η ιστοσελίδα επίδειξης 99 τραπεζών.
- Το όνομα χρήστη και ο κωδικός πρόσβασης εισάγονται στη σελίδα σύνδεσης.
- Το κουμπί Επαναφορά διαγράφει τις τιμές.























