Chúng ta có thể sử dụng Cucumber và Selenium với Python không?

Không còn nghi ngờ gì nữa, Selenium là một trong những công cụ tuyệt vời trong lĩnh vực Kiểm thử tự động hóa, nhưng có vẻ hơi khó để một người không có kỹ thuật hiểu được hoạt động của nó do độ phức tạp của mã. Để giảm bớt nhiệm vụ này, Cucumber ra đời, giúp mã phức tạp trở nên đơn giản và dễ hiểu. Nhưng, làm thế nào chính xác nó làm điều đó? . Để tìm hiểu thêm, hãy xem Đào tạo về Selenium

Dưới đây là các chủ đề trong bài viết này

Giới thiệu về dưa chuột

Chúng ta có thể sử dụng Cucumber và Selenium với Python không?

Cucumber là một phương pháp/công cụ thử nghiệm hỗ trợ Phát triển Định hướng Hành vi (BDD). Nó cung cấp một cách để viết các bài kiểm tra mà bất kỳ ai cũng có thể hiểu được, bất kể mức độ kiến ​​thức kỹ thuật của họ

Nó giải thích hành vi của ứng dụng bằng một văn bản tiếng Anh đơn giản sử dụng ngôn ngữ Gherkin. Tôi hy vọng rằng bạn đã có một cái nhìn thoáng qua về Dưa chuột là gì. Bây giờ, hãy tiến xa hơn và hiểu một số sự thật mô tả sự cần thiết của Cucumber trong khung thử nghiệm

Tại sao dưa chuột?

Chà, dưa chuột là một trong những công cụ phổ biến nhất vì những lý do được liệt kê dưới đây

  1. Cucumber là mã nguồn mở và do đó, nó miễn phí sử dụng
  2. Khi sử dụng Cucumber, bạn có thể viết các kịch bản thử nghiệm của mình bằng nhiều ngôn ngữ như Java, Ruby,. NET, Python, v.v.
  3. Nó cũng tích hợp với Selenium, Ruby on Rails, Watir và các công cụ kiểm tra dựa trên web khác
  4. Dưa chuột là một trong những công cụ BDD được sử dụng rộng rãi nhất.  

Đây là một số tính năng độc đáo giúp Cucumber hữu ích cho việc thử nghiệm một trang web. Bây giờ bạn đã biết Cucumber là gì và tại sao bạn cần nó, hãy cùng tìm hiểu một trong những tính năng độc đáo của Cucumber giúp người không chuyên về công nghệ dễ dàng hiểu được các trường hợp thử nghiệm.  

Phát triển định hướng hành vi (BDD)

Nói một cách rất đơn giản, BDD hoặc Phát triển theo định hướng hành vi là một kỹ thuật trong đó các thông số kỹ thuật hoặc trường hợp thử nghiệm của bạn được viết bằng tiếng Anh đơn giản như các câu. Với cách tiếp cận này, các thành viên nhóm phi kỹ thuật sẽ dễ dàng hiểu được quy trình và cộng tác nhiều hơn trong quá trình phát triển phần mềm.  

Hãy hiểu điều này với sự trợ giúp của một ví dụ đơn giản. Hãy xem xét một tình huống mà bạn muốn kiểm tra trang web Twitter. Một trong những kịch bản thử nghiệm là xác minh thông tin đăng nhập. Với BDD, bạn có thể viết kịch bản thử nghiệm này ở định dạng này

Feature: Test Twitter smoke scenario

Scenario: Test login with valid credentials
Given Open the firefox and start application
When I enter valid username and valid password
Then user should be able to login successfully

Trong ví dụ trên, tôi vừa viết một vài câu bằng tiếng Anh đơn giản để xác định các tình huống. Tôi sẽ cung cấp thêm thông tin chi tiết về kịch bản này và cách triển khai nó trong phần sau của bài viết này. Bây giờ, hãy tiếp tục trong bài viết Hướng dẫn về Selenium của Cucumber và tìm hiểu các nguyên tắc cơ bản của Selenium

Giới thiệu về Selenium

Chúng ta có thể sử dụng Cucumber và Selenium với Python không?

Selenium là công cụ ưa thích khi tự động hóa các bài kiểm tra được thực hiện trên trình duyệt web. Nó chỉ hữu ích để thử nghiệm các ứng dụng web. Bất kỳ ứng dụng (phần mềm) máy tính để bàn hoặc ứng dụng di động nào đều không thể được kiểm tra bằng Selenium. Nó rất hữu ích trong việc viết các trường hợp thử nghiệm chức năng. Nó cũng cung cấp hiệu suất đáng tin cậy với số lượng 'n' trường hợp thử nghiệm và rõ ràng đây là công cụ tự động hóa phù hợp nhất cho các ứng dụng web

Bây giờ bạn đã biết Selenium là gì, hãy chuyển sang phần tiếp theo trong bài viết này về Hướng dẫn sử dụng Selenium trong dưa chuột và hiểu tại sao lại sử dụng Cucumber với Selenium?

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

Nhiều tổ chức sử dụng Selenium để kiểm tra chức năng và hồi quy. Selenium và Cucumber là một sự kết hợp tuyệt vời khi nói đến tự động hóa ứng dụng web, vì Cucumber cho phép bạn viết bài kiểm tra của mình một cách nhanh chóng bằng ngôn ngữ giống như tiếng Anh và Selenium cho phép bạn chạy trên nhiều kết hợp trình duyệt khác nhau

Chúng ta có thể sử dụng Cucumber và Selenium với Python không?
Công cụ Cucumber dựa trên khung Phát triển hướng hành vi đóng vai trò là cầu nối giữa Kỹ sư phần mềm và Nhà phân tích nghiệp vụ cũng như giữa Người kiểm thử thủ công và Nhà phát triển

Khi sử dụng Selenium với Cucumber để tự động hóa thử nghiệm, các thử nghiệm được viết trong các tệp tính năng mà các bên liên quan khác nhau có thể hiểu được trong một môi trường linh hoạt, chẳng hạn như Nhà phân tích nghiệp vụ. Cucumber cũng đi kèm với khả năng hỗ trợ nhiều tập lệnh và ngôn ngữ lập trình và JUnit được sử dụng để thực thi các tập lệnh này và tạo đầu ra

Hiểu được điều này, bây giờ chúng ta hãy xem các bước khác nhau để tạo ứng dụng Cucumber và chạy các trường hợp thử nghiệm

Các bước tạo ứng dụng Cucumber

Các bước khác nhau liên quan đến việc tạo ứng dụng Cucumber như sau

  1. Tải xuống các tệp Jar của Cucumber và Selenium và định cấu hình đường dẫn xây dựng
  2. Thêm Trình cắm dưa chuột từ Thị trường Eclipse
  3. Tạo một tệp tính năng và thêm các kịch bản
  4. Thực hiện các bước cho các kịch bản
  5. Viết lớp người chạy và thực thi mã

Bây giờ, hãy hiểu chi tiết từng bước này

Bước 1. Tải xuống tệp Cucumber và Selenium Jar

Cucumber không thực sự tương tác với trình duyệt và thực hiện các tác vụ trên trang web đang thử nghiệm. Tương tác với trang web là hành động được thực hiện bởi Selenium WebDriver. Vì lý do này, bạn sẽ cần phải tải xuống các tệp jar của Cucumber cũng như Selenium Webdriver. Nếu bạn muốn biết cách cài đặt Selenium trên hệ thống của mình, bạn có thể xem bài viết này về Cài đặt Selenium. Dưới đây là danh sách các tệp jar cho Cucumber

  • lõi dưa chuột
  • dưa chuột-html
  • bảo hiểm mã cobertura
  • dưa chuột-java
  • dưa chuột-junit
  • dưa chuột-jvm-deps
  • báo cáo dưa chuột
  • Hamcrest-lõi
  • dưa chuột
  • Junit

Khi bạn tải xuống các tệp jar này từ Kho lưu trữ Maven, bạn có thể định cấu hình đường dẫn xây dựng cho dự án của mình và thêm tất cả. các tệp jar và thư viện như trong ảnh chụp nhanh bên dưới

Configure Build Path - Cucumber Selenium tutorial - Edureka

Bước 2. Bước tiếp theo là cài đặt Cucumber trên Eclipse của bạn. Để làm được điều đó, bạn cần truy cập Trợ giúp -> Thị trường Eclipse -> Tìm kiếm Cucumber và cài đặt Cucumber và Naturals trên nhật thực của bạn. Ảnh chụp nhanh bên dưới mô tả giống nhau

Eclipse Marketplace - Cucumber Selenium Tutorial - Edureka

Bước 3. Khi bạn định cấu hình Cucumber, bước tiếp theo là tạo một tệp tính năng. Đầu tiên các bạn tạo 1 thư mục source mới rồi add 1 file feature như hình bên dưới

Creating feature file - Cucumber Selenium Tutorial - Edureka

Tiếp theo, bạn cần chỉ định tên của tệp tính năng như hình bên dưới

Feature file - Cucumber Selenium Tutorial - Edureka

Khi bạn tạo tệp tính năng, bạn có thể viết các kịch bản như trong đoạn mã dưới đây

Kịch bản thử nghiệm I

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

Bước 4. Sau đó, bạn cần triển khai các kịch bản với sự trợ giúp của các bước định nghĩa. Trong đoạn mã dưới đây, tôi đã triển khai các phương thức cho kịch bản mà tôi đã viết trong tệp tính năng

package stepDefinitions;

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

Bước 5. Bây giờ, bước cuối cùng là tạo ‘lớp người chạy’ và thực hiện chương trình. Về cơ bản, cấu trúc dự án của bạn sẽ giống như được mô tả trong ảnh chụp nhanh bên dưới

Project structure - Cucumber Selenium Tutorial - Edureka

Trong ảnh chụp nhanh ở trên, 'Người chạy. java' là một tập tin thực thi. Bây giờ hãy mã hóa tệp này và hiểu cách thức hoạt động của nó

package Runner;
import org.junit.runner.RunWith; 
import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class) 
@CucumberOptions(features="features",glue={"stepD"}) 
public class Runner 
{
}

Trong đoạn mã trên, tôi có '@CucumberOptions' và chỉ định tên gói của cả tệp tính năng và tệp Người chạy. Vì vậy, nó sẽ thực hiện các phương thức và chạy mã. Khi bạn chạy chương trình, nó sẽ hiển thị các phương thức từ bước định nghĩa. Đầu ra của bạn sẽ giống như hình bên dưới

This Step open the Firefox and launch the application.
This step enter the Username and Password on the login page.
This step click on the Reset button.

1 Scenarios (32m1 passed)
3 Steps (32m3 passed)
0m0.185s

Vì vậy, đây là cách bạn cần ghi tất cả các tệp và thực thi chương trình

Kịch bản thử nghiệm II

Bây giờ, hãy hiểu thêm một kịch bản trong đó tôi đã tích hợp Selenium với Cucumber. Hãy xem xét một tình huống mà bạn muốn kiểm tra trang web Twitter. Một trong các kịch bản thử nghiệm sẽ xác minh thông tin đăng nhập. Với BDD, bạn có thể viết kịch bản thử nghiệm này ở định dạng này

Feature: Test Twitter smoke scenario

Scenario: Test login with valid credentials
Given Open the firefox and start application
When I enter valid username and valid password
Then user should be able to login successfully

Tiếp theo, hãy viết lớp định nghĩa Bước để thực hiện tất cả các kịch bản

package stepD;
import java.util.concurrent.TimeUnit;
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 SmokeTest {
WebDriver driver;
@Given("^Open the firefox and start application$")
public void open_the_firefox_and_start_application() throws Throwable {
System.setProperty("webdriver.gecko.driver", "C:geckodriver-v0.23.0-win64geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://twitter.com/login");
}

@When("^I enter valid username and valid password$")
public void I_enter_valid_username_and_valid_password() throws Throwable {
driver.findElement(By.xpath("//input[@placeholder='Phone, email or username']")).sendKeys("your_username");
driver.findElement(By.xpath("//div[@class='clearfix field']//input[@placeholder='Password']")).sendKeys("your_password");
}
@Then("^user should be able to login successfully$")
public void user_should_be_able_to_login_successfully() throws Throwable {
driver.findElement(By.xpath("//button[@class='submit EdgeButton EdgeButton--primary EdgeButtom--medium']")).click();
}
}

Trong chương trình trên, tôi đã sử dụng GeckoDriver để khởi chạy trình duyệt firefox và sử dụng trình điều khiển. get() nó sẽ điều hướng qua trang đăng nhập Twitter. Hơn nữa, nó sẽ định vị hộp văn bản tên người dùng và mật khẩu bằng công cụ định vị XPath và nhập thông tin xác thực hợp lệ. Cuối cùng, nó sẽ đăng nhập thành công và chạy các trường hợp thử nghiệm. Bạn phải chạy trình chạy dưới dạng thử nghiệm JUnit để biết liệu thử nghiệm có đạt hay không

Ảnh chụp nhanh bên dưới hiển thị đầu ra của chương trình

Output - Cucumber Selenium Tutorial - Edureka

Đây là cách bạn cần ghi tất cả các tệp và thực thi chương trình. Vì vậy, đó là tất cả về Hướng dẫn Selenium trên dưa chuột. Tôi hy vọng bạn hiểu các khái niệm và giúp bổ sung giá trị cho kiến ​​thức của bạn. Bây giờ, nếu bạn muốn hiểu rõ hơn về Selenium, bạn có thể xem các bài viết khác của chúng tôi về Selenium

Nếu bạn thấy “Hướng dẫn về Selenium trong dưa leo” này phù hợp, hãy xem Đào tạo chứng chỉ Selenium của Edureka, một công ty học tập trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trên toàn cầu.  

Có một câu hỏi cho chúng tôi?

Selenium có thể được sử dụng với Python không?

Selenium là một công cụ thử nghiệm tự động mã nguồn mở hỗ trợ một số ngôn ngữ kịch bản như Python , C#, Java, Perl, Ruby, JavaScript .

Chúng ta có thể sử dụng cả Selenium và Dưa chuột cùng nhau không?

Selenium và Cucumber là sự kết hợp tuyệt vời khi nói đến tự động hóa ứng dụng web , vì Cucumber cho phép bạn viết bài kiểm tra nhanh chóng bằng ngôn ngữ giống tiếng Anh và Selenium cho phép bạn chạy trên .

Tại sao Selenium và dưa chuột không nên được sử dụng cùng nhau?

Khi chúng tôi bắt đầu Kiểm tra tích hợp hệ thống hoặc Kiểm tra giao diện người dùng, tốt nhất là sử dụng Selenium mà không có khung Cucumber cơ bản vì việc cố gắng viết các tệp tính năng Cucumber cho hành trình của người dùng có thể gặp rất nhiều khó khăn. . .