Selenium với Cucumber (Hướng dẫn về BDD Framework)
⚡ Tóm tắt thông minh
Selenium với Cucumber tạo thành một khung phát triển hướng hành vi (BDD) mạnh mẽ, kết hợp cú pháp Gherkin đơn giản với Selenium Tự động hóa WebDriver. Hướng dẫn này giải thích các điều kiện tiên quyết, hướng dẫn ba kịch bản thực hành và cho thấy cách các tệp tính năng, định nghĩa bước và lớp TestRunner tích hợp để thực hiện các bài kiểm tra trình duyệt.

Trong hướng dẫn này, bạn sẽ học cách tích hợp Cucumber với Selenium WebDriver được sử dụng để xây dựng một khung phát triển hướng hành vi (BDD) dễ đọc, dễ bảo trì và hướng dữ liệu.
Là gì Cucumber?
Cucumber là một công cụ kiểm thử hỗ trợ Phát triển hướng hành vi (BDD). Nó mô tả hành vi của một ứng dụng bằng văn bản tiếng Anh đơn giản sử dụng ngôn ngữ Gherkin, cho phép những người không phải lập trình viên đóng góp vào các đặc tả kiểm thử mà không cần học ngôn ngữ lập trình. Tìm hiểu thêm trong tài liệu của chúng tôi. Cucumber hướng dẫn.
Là gì Selenium?
Selenium là một công cụ tự động hóa được sử dụng cho Thử nghiệm chức năng của các ứng dụng dựa trên web. Selenium Hỗ trợ nhiều ngôn ngữ lập trình, bao gồm... Javahồng ngọc, Pythonvà C#, điều này khiến nó trở nên phù hợp một cách tự nhiên với các nhóm có nền tảng kỹ thuật đa dạng. Tìm hiểu thêm trong phần của chúng tôi. Selenium hướng dẫn.
Tại sao sử dụng Cucumber với Selenium?
Cucumber và Selenium là hai trong số những công nghệ kiểm thử được áp dụng rộng rãi nhất. Hầu hết các tổ chức đã sử dụng Selenium để kiểm thử chức năng và muốn phân lớp. Cucumber trên cùng vì Cucumber Giúp việc đọc và hiểu quy trình ứng dụng trở nên dễ dàng hơn..
Cucumber dựa trên khuôn khổ Phát triển dựa trên hành vi (Behavior Driven Development) mà hoạt động như một cây cầu giữa các vai trò sau:
- Kỹ sư phần mềm và nhà phân tích kinh doanh.
- Kiểm thử thủ công và Kiểm thử tự động.
- Người kiểm tra và nhà phát triển thủ công.
Cucumber Khung BDD cũng Giúp khách hàng hiểu mã ứng dụng. Bởi vì nó sử dụng ngôn ngữ Gherkin, một ngôn ngữ dạng văn bản thuần túy. Bất kỳ ai trong tổ chức đều có thể hiểu được hoạt động của phần mềm. Cú pháp Gherkin được viết bằng tiếng Anh đơn giản, dễ đọc, giúp cho bản đặc tả vẫn dễ tiếp cận đối với những người không chuyên về kỹ thuật.
Điều kiện tiên quyết để sử dụng Cucumber với Selenium
Trước khi chúng tôi bắt đầu Cucumber-Selenium Để tích hợp, bạn cần các mục sau:
Selenium tập tin jar:
- Selenium-máy chủ độc lập
Bạn có thể tải chúng xuống tại https://www.selenium.dev/downloads/.
Các tệp Jar cho Cucumber:
- Cucumber-cốt lõi
- Cucumber-html
- Cobertura mã số bảo hiểm
- Cucumber-java
- Cucumber-junit
- Cucumber-jvm-dep
- Cucumber-Báo cáo
- Hamcrest-lõi
- Gherkin
- JUnit
Bạn có thể tải chúng xuống tại https://mvnrepository.com/search?q=CucumberBạn cần tìm kiếm từng tệp jar và tải xuống từng tệp một.
Ví dụ, đây là cách tải xuống một trong các tệp jar, tệp “Cucumber- thư viện “core”.
Nhấp vào liên kết tải xuống ở trên. Nó sẽ chuyển hướng đến trang web Kho lưu trữ Maven. Bây giờ hãy tìm kiếm tệp jar cụ thể (trong trường hợp này là “Cucumber "Lõi" như thể hiện trong ảnh chụp màn hình bên dưới:
Ở trang tiếp theo, hãy nhấp vào phiên bản 1.2.2:
Trên màn hình tiếp theo, hãy nhấp vào Tải xuống để lấy tệp. Cucumber Tệp jar cốt lõi:
Lưu ý: Để thuận tiện, chúng tôi đã đóng gói các tệp jar Maven cần thiết. đâyCác tập tin JAR này có thể trở nên lỗi thời và không tương thích theo thời gian, vì vậy chúng tôi khuyên bạn nên tự tải chúng xuống bằng phương pháp đã mô tả ở trên.
Kiểm tra tự động hóa bằng cách sử dụng Cucumber với Selenium
Hãy cùng tìm hiểu cách sử dụng. Cucumber với Selenium Từng bước một. Ở đây chúng ta sẽ xem xét ba trường hợp:
- Tình huống 1: In văn bản trong bảng điều khiển.
- Tình huống 2: Nhập thông tin đăng nhập và đặt lại giá trị.
- Tình huống 3: Nhập thông tin đăng nhập vào GuruNhập 99 và đặt lại giá trị — lặp lại cho 3 bộ dữ liệu.
Tình huống 1: In văn bản ra bảng điều khiển
Trong trường hợp này, chúng ta chỉ cần in văn bản ra bảng điều khiển bằng cách sử dụng Cucumber.
Bước 1) Tạo một dự án trong Eclipse.
Tạo ra một Java dự án có tên "CucumberVớiSelenium" như thể hiện trong ảnh chụp màn hình bên dưới.
Bước 2) Thêm các tệp jar vào dự án.
Nhấp chuột phải vào dự án > Thuộc tính > Java Đường dẫn biên dịch. Thêm tất cả các thư viện bạn đã tải xuống trước đó.
Bước 3) Tạo một tập tin tính năng.
Để tạo tệp tính năng, trước tiên hãy tạo thư mục Features như hình ảnh bên dưới.
Nhập tên thư mục “Features” và nhấn Hoàn tất.
Bây giờ hãy tạo một tệp tính năng bên trong thư mục Features có tên là MyTest.featureQuá trình này tương tự như việc tạo thư mục.
Lưu ý: Bạn có thể cần phải cài đặt Cucumber Eclipse Trước tiên hãy cài đặt plugin. Vào Trợ giúp → Cài đặt phần mềm mới, dán đường dẫn vào. http://cucumber.github.io/cucumber-eclipse/update-site/và cài đặt nó
Bước 4) Hãy viết ra các tình huống.
Các dòng dưới đây được viết bằng MyTest.feature sử dụng ngôn ngữ 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 Giải thích
Dòng 1) Xác định chức năng kinh doanh.
Dòng 2) Xác định một kịch bản cần kiểm tra.
Dòng 3) Xác định điều kiện tiên quyết (Đã cho).
Dòng 4) Xác định hành động cần thực hiện (Khi nào).
Dòng 5) Xác định kết quả hoặc kết cục mong đợi (Sau đó).
Bước 5) Ghi Selenium Tập lệnh TestRunner cho Cucumber thiết kế khung.
Tạo ra một Người chạy thử nghiệm gói hàng và sau đó là Runner.java tập tin lớp nằm bên dưới nó.
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
{
}
Ở trên Cucumber Java Ví dụ, chúng ta chạy thử nghiệm dưa chuột sử dụng các chú thích sau:
@RunWith() nói JUnit Về lớp chạy thử nghiệm (test runner) bắt đầu thực thi các bài kiểm tra của chúng ta.
@CucumberTùy chọn() Thiết lập các thuộc tính kiểm thử như đường dẫn tệp tính năng và gói liên kết định nghĩa bước.
Ảnh chụp màn hình của tập tin TestRunner:
Bước 6) Tạo tập lệnh Định nghĩa Bước.
Bây giờ hãy tạo một Định nghĩa bước gói hàng và sau đó là Steps.java tệp kịch bản nằm bên dưới. Bên trong Steps.java, chúng ta viết... Selenium Logic này tương ứng với từng bước của 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.");
}
}
Lớp học có tên là Các bướcvà Cucumber Các chú thích ánh xạ mỗi phương pháp đến một bước của tệp tính năng:
@Được cho định nghĩa phương thức để mở Firefox và khởi chạy ứng dụng.
@Khi Xác định phương thức nhập tên người dùng và mật khẩu.
@Sau đó Xác định phương thức để đặt lại thông tin đăng nhập.
Mỗi phương thức chỉ đơn giản là in một thông báo ra màn hình console.
Ảnh chụp màn hình bên dưới hiển thị tập tin Steps.java và cấu trúc thư mục dự án:
Lưu ý: Định nghĩa bước là đoạn mã bạn muốn sử dụng. Cucumber Thực thi khi nó khớp với một bước trong tệp tính năng.
Bước 7) Thực thi kịch bản.
Chạy đoạn mã này từ tệp TestRunner (Runner.java) như hình bên dưới.
Bước 8) Phân tích đầu ra.
Khi thực thi Runner.java, Cucumber In ra cùng một đoạn văn bản được định nghĩa trong Steps.java vào bảng điều khiển.
Tình huống 2: Nhập thông tin đăng nhập và đặt lại giá trị
Tại đây chúng ta nhập thông tin đăng nhập vào... GuruTrang đăng nhập demo 99 và thiết lập lại giá trị.
Đối với kịch bản 2, chúng ta chỉ cần cập nhật Steps.java. Ở đây chúng ta thêm phần thực tế Selenium mã. Trước tiên, hãy đảm bảo rằng Selenium Tệp jar đã được thêm vào dự án.
Bước 1) Cập nhật tập tin Steps.java script như hình bên dưới.
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();
}
}
Ảnh chụp màn hình ở trên Selenium kịch bản:
Bước 2) Thực thi kịch bản.
Sau khi cập nhật Steps.java, hãy chạy Runner.java.
Bước 3) Phân tích kết quả đầu ra. Trong kết quả đầu ra, bạn sẽ thấy những điều sau:
- Đã khởi chạy trình duyệt.
- GuruTrang web demo của 99 Bank đã chính thức ra mắt.
- Bạn nhập tên người dùng và mật khẩu trên trang đăng nhập.
- Nút Reset xóa các giá trị.
Kịch bản 3: Chạy quy trình Đăng nhập và Đặt lại với 3 bộ dữ liệu
Ở đây chúng ta cần cập nhật cả hai. Steps.java và tệp tính năng để thực hiện quy trình tương tự với ba bộ thông tin xác thực.
Bước 1) Cập nhật tệp tính năng như hình bên dưới.
Chúng tôi sử dụng Tóm tắt kịch bản và Các ví dụ cú pháp vậy Cucumber Lặp lại cùng một kịch bản trên mỗi hàng dữ liệu.
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 |
Bước 2) Cập nhật tập tin Steps.java script.
Tại đây, chúng ta cập nhật chữ ký phương thức để chúng chấp nhận các tham số từ bảng Ví dụ.
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();
}
}
Bước 3) Thực thi kịch bản đã cập nhật.
Ảnh chụp màn hình bên dưới hiển thị quá trình thực thi thành công và thời gian cần thiết cho mỗi tập dữ liệu.
Bước 4) Phân tích kết quả. Các bước sau được lặp lại cho mỗi trong 3 bộ dữ liệu:
- Đã khởi chạy trình duyệt.
- GuruTrang web demo của 99 Bank đã chính thức ra mắt.
- Bạn nhập tên người dùng và mật khẩu trên trang đăng nhập.
- Nút Reset xóa các giá trị.























