Selenium với dưa chuột (Khung BDD): Hướng dẫn với ví dụ

Mục lục:

Anonim

Trong hướng dẫn này, bạn sẽ học cách tích hợp Cucumber với Selenium Webdriver.

Dưa chuột là gì?

Dưa chuột là một phương pháp thử nghiệm hỗ trợ Phát triển theo hướng hành vi (BDD). Nó giải thích hành vi của ứng dụng trong một văn bản tiếng Anh đơn giản sử dụng ngôn ngữ Gherkin.

Tìm hiểu thêm tại - https://www.guru99.com/cucumber-tutorials.html

Selenium là gì?

Selenium là một công cụ tự động hóa để Kiểm tra chức năng của ứng dụng dựa trên web. Selenium hỗ trợ các ngôn ngữ khác nhau như java, ruby, python C #, v.v.

Tìm hiểu thêm tại - https://www.guru99.com/selenium-tutorial.html

Trong hướng dẫn Dưa chuột này, chúng ta sẽ tìm hiểu-

  • Tại sao sử dụng Dưa chuột với Selen?
  • Điều kiện tiên quyết để sử dụng Dưa chuột với Selen.
  • Kiểm tra tự động hóa sử dụng dưa chuột với Selenium.
  • 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 trên Guru99 và đặt lại giá trị. Làm điều này cho 3 bộ dữ liệu.

Tại sao sử dụng Dưa chuột với Selen?

Dưa chuột và Selenium là hai công nghệ phổ biến.

Hầu hết các tổ chức sử dụng Selenium để kiểm tra chức năng. Các tổ chức này đang sử dụng Selenium, muốn tích hợp Selenium với Cucumber làm Cucumber giúp dễ đọc và hiểu quy trình ứng dụng.

Công cụ Cucumber dựa trên khung Phát triển theo hướng hành vi hoạt động như cầu nối giữa những người sau:

  1. Kỹ sư phần mềm và Nhà phân tích kinh doanh.
  2. Kiểm thử thủ công và Kiểm thử tự động hóa.
  3. Nhà phát triển và kiểm thử thủ công.

Khung công tác Cucumber BDD cũng có lợi cho khách hàng để hiểu mã ứng dụng vì nó sử dụng ngôn ngữ Gherkin ở dạng Văn bản thuần túy. Bất kỳ ai trong tổ chức đều có thể hiểu được hành vi của phần mềm. Cú pháp của Gherkin ở dạng văn bản đơn giản, dễ đọc và dễ hiểu.

Điều kiện tiên quyết để sử dụng Dưa chuột với Selenium

Trước khi bắt đầu tích hợp Cucumber Selenium, chúng ta cần các mục sau:

  • Các tệp jar Selenium:
  • Selenium-máy chủ-độc lập

Có thể tải xuống tại http://www.seleniumhq.org/download/

Các tệp Jar cho dưa chuột:

  • Lõi dưa chuột
  • Cucumber-html
  • phạm vi mã cobertura
  • Cucumber-java
  • Dưa chuột-junit
  • Cucumber-jvm-deps
  • Báo cáo dưa chuột
  • Hemcrest-core
  • Gherkin
  • Junit

Có thể tải xuống tại https://mvnrepository.com/search?q=Cucumber

Bạn cần tìm kiếm các tệp và tải xuống từng tệp một.

Ví dụ: chúng tôi sẽ hướng dẫn bạn tải xuống một trong các tệp jar, tức là "Cucumber-core".

Nhấp vào liên kết tải xuống ở trên. Nó chuyển hướng đến trang web bên dưới. Bây giờ hãy tìm kiếm cái lọ cụ thể, tức là 'Lõi dưa chuột' như ảnh chụp màn hình bên dưới:

Trong trang tiếp theo, Nhấp vào phiên bản 1.2.2,

Trong màn hình tiếp theo, nhấp vào tải xuống để lấy tệp jar 'Cucumber Core'.

Lưu ý : Để dễ dàng cho bạn, chúng tôi đã gói các tệp jar cần thiết để tải xuống từ Maven tại đây. Với thời gian, những chiếc lọ này có thể được cập nhật và trở nên không tương thích. Bạn được yêu cầu tải chúng xuống bằng phương pháp được minh họa ở trên.

Kiểm tra tự động hóa sử dụng dưa chuột với Selenium.

Hãy cùng nghiên cứu từng bước sử dụng Dưa chuột với selen. Ở đây chúng tôi sẽ đề cập đến 3 tình huống:

  • 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 trên Guru99 và đặt lại giá trị. Làm điều này cho 3 bộ dữ liệu.

Tình huống 1: In văn bản trong bảng điều khiển.

Trong trường hợp này, chúng tôi chỉ in văn bản trong bảng điều khiển bằng cách sử dụng Cucumber.

Bước 1) Tạo Dự án trong nhật thực.

Tạo dự án Java với tên "CucumberWithSelenium" như thể hiện trong ảnh chụp màn hình bên dưới.

Bước 2) Thêm tệp Jar trong dự án.

Nhấp chuột phải vào Dự án> Chọn Thuộc tính> Đi tới Đường dẫn Xây dựng Java. Thêm tất cả các thư viện đã tải xuống trước đó.

Bước 3) Tạo tệp tính năng

Để tạo tập tin tính năng, đầu tiên hãy tạo thư mục tính năng như hình dưới đây.

Bây giờ Nhập tên thư mục 'Tính năng' và nhấp vào nút 'Kết thúc'.

Bây giờ, tạo tệp tính năng trong thư mục 'Tính năng' với tên là "MyTest.feature" - Quy trình tương tự như tạo thư mục

Lưu ý: Bạn có thể cần cài đặt Plugin Cucumber Eclipse để nó hoạt động. Goto - Help-> Install New Software-> copy paste link http://cucumber.github.io/cucumber-eclipse/update-site/ và cài đặt

Bước 4) Viết kịch bản.

Các dòng dưới đây được viết trong tệp 'MyTest.feature' bằng ngôn ngữ Gherkin như hình dưới đây:

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

Giải thích mã

Dòng 1) Trong dòng này, chúng tôi viết chức năng kinh doanh.

Dòng 2) Trong dòng này, chúng tôi viết một kịch bản để kiểm tra.

Dòng 3) Trong dòng này, chúng tôi xác định điều kiện tiên quyết.

Dòng 4) Trong dòng này, chúng tôi xác định hành động chúng tôi cần thực hiện.

Dòng 4) Trong dòng này, chúng tôi xác định kết quả hoặc kết quả mong đợi.

Bước 5) Viết tập lệnh selen testrunner cho thiết kế khung Selenium Cucumber

Ở đây chúng tôi tạo gói 'TestRunner' và sau đó là tệp lớp 'Runner.java' 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{}

Trong mã ví dụ Cucumber Java ở trên, chúng tôi chạy thử nghiệm dưa chuột bằng cách sử dụng các chú thích sau:

Chú thích @RunWith () cho biết về lớp chạy thử nghiệm để bắt đầu thực hiện các thử nghiệm của chúng tôi.

Chú thích @CucmberOptions () được sử dụng để đặt một số thuộc tính cho thử nghiệm dưa chuột của chúng tôi như tệp tính năng, định nghĩa bước, v.v.

Ảnh chụp màn hình của tệp TestRunner.

Bước 6) Tạo tập lệnh Định nghĩa bước.

Bây giờ ở đây chúng ta tạo gói 'StepDefinition' và sau đó là tệp kịch bản 'Steps.java' bên dưới nó. Ở đây chúng tôi thực sự viết một tập lệnh selen để thực hiện thử nghiệm theo phương pháp Cucumber.

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.");}}

Trong đoạn mã trên, lớp được tạo với tên 'Các bước'. Chú thích dưa chuột được sử dụng để lập bản đồ với tệp đặc trưng. Mỗi phương thức chú thích được xác định:

@Given annotation xác định phương pháp để mở firefox và khởi chạy ứng dụng

@Khi chú thích xác định phương thức để nhập tên người dùng và mật khẩu

@ Sau đó, chú thích xác định phương thức để đặt lại thông tin đăng nhập

Theo mỗi phương pháp, chúng tôi chỉ in một thông báo.

Dưới đây là ảnh chụp màn hình của cây dự án và tập lệnh 'Steps.java', nó trông như thế nào.

Lưu ý: Định nghĩa bước không là gì ngoài các bước bạn muốn thực hiện theo phương pháp dưa chuột này.

Bước 7) Thực thi Script.

Người dùng có thể thực thi tập lệnh này từ tập lệnh chạy thử nghiệm, tức là 'Runner.java' như được hiển thị trong ảnh chụp màn hình bên dưới.

Bước 8) Phân tích kết quả đầu ra.

Khi thực thi tập lệnh 'Runner.java', nó sẽ hiển thị văn bản trên bảng điều khiển. Nó là cùng một văn bản được định nghĩa trong tập lệnh 'Steps.java'.

Tình huống 2: Nhập Thông tin đăng nhập và đặt lại giá trị.

Ở đây, chúng tôi sẽ chỉ nhập Credential trên trang đăng nhập demo Guru99 và đặt lại giá trị

Đối với Kịch bản 2, chúng tôi chỉ cần cập nhật tập lệnh 'Steps.java'. Ở đây chúng tôi thực sự viết tập lệnh selen như các bước dưới đây. Đầu tiên, chúng ta cần thêm tệp jar Selenium vào dự án này.

Bước 1) Ở đây chúng tôi cập nhật tập lệnh 'Steps.java' như được hiển thị trong mã và ảnh chụp màn 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 tập lệnh selen ở trên.

Bước 2) Thực thi script.

Sau khi cập nhật, chúng tôi chạy Runner.java.

Bước 3) Phân tích kết quả đầu ra.

Trong đầu ra, bạn có thể thấy như sau:

  • Đã khởi chạy trình duyệt.
  • Trang web demo của ngân hàng Guru99 được mở.
  • Tên người dùng và mật khẩu được đặt trên trang đăng nhập.
  • Đặt lại các giá trị.

Tình huống 3: Nhập thông tin đăng nhập trên Guru99 và đặt lại giá trị. Làm điều này cho 3 bộ dữ liệu.

Ở đây, chúng tôi cần cập nhật cả 'Step.java' và tệp tính năng.

Bước 1) Cập nhật tệp tính năng như hình dưới đây:

Here we update the feature file with 'Scenario Outline' and 'examples' syntax.

Feature: Reset functionality on login page of Application

Scenario Outline: Verification of reset button with numbers of credential

Given Open the Firefox and launch the application

When Enter the Username and Password

Then Reset the credential

Examples:

|username |password |

|User1 |password1 |

|User2 |password2 |

|User3 |password3 |

// In this line we define the set of data.

Bước 2) Bây giờ cập nhật tập lệnh Step.java.

Ở đây chúng tôi cập nhật các phương thức để truyền các tham số, tập lệnh cập nhật được hiển thị 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("www.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) Bây giờ thực thi tập lệnh đã cập nhật.

Màn hình bên dưới hiển thị việc thực thi thành công tập lệnh và thời gian thực hiện của mỗi tập dữ liệu.

Bước 4) Phân tích kết quả đầu ra.

Trong đầu ra, bạn có thể thấy như sau:

Đầu ra bên dưới được lặp lại cho số bộ dữ liệu, tức là 3 bộ.

  • Đã khởi chạy trình duyệt.
  • Trang web demo của ngân hàng Guru99 được mở.
  • Tên người dùng và mật khẩu được đặt trên trang đăng nhập.
  • Đặt lại các giá trị.

Phần kết luận.

Dưa chuột là một công cụ BDD rất phổ biến. Nó rất dễ đọc và có thể được hiểu bởi tất cả các bên liên quan bao gồm cả những người kỹ thuật và không kỹ thuật.

Dưa chuột có thể được tích hợp với Selenium bằng 3 bước sau

  1. Tạo tệp tính năng trong đó xác định tính năng và kịch bản từng bước bằng ngôn ngữ Gherkin.
  2. Tạo tệp Testrunner. Trong tệp này, chúng tôi đã tích hợp Cucumber với khung công tác BDD trong Selenium. Chúng tôi thực hiện tập lệnh này.
  3. Định nghĩa Tạo Bước, tập lệnh selen thực tế được xác định trong gói này.