cucumber là gì

Bài viết lách này Anh Tester tiếp tục trình làng Cucumber là gì? Tại sao người sử dụng Cucumber, những bộ phận của Cucumber và quyền lợi của Cucumber.


Cucumber là gì?

Cucumber là một trong những dụng cụ kiểm test hoặc là một trong những Testing Framework tương hỗ Behavior Driven Development (BDD), được chấp nhận người tiêu dùng khái niệm hành động của khối hệ thống với giờ đồng hồ anh tăng thêm ý nghĩa giản dị và đơn giản bằng phương pháp dùng một ngữ pháp được xác lập vì như thế một ngôn từ gọi là Gherkin.

Bạn đang xem: cucumber là gì

Cucumber nhắm tới việc viết lách test case tuy nhiên ngẫu nhiên ai ai cũng hoàn toàn có thể hiểu mặc dù bọn họ không tồn tại trình độ chuyên môn kỹ năng.

Ví dụ tựa như những nền tảng thân thuộc như Selenium thì thông thường chỉ người viết lách test hoặc với kĩ năng xây dựng mới mẻ hiểu rõ những gì đang được test, còn người sử dụng hoặc những mặt mày tương quan thì ko gọi ngay lập tức code nhằm hiểu mà người ta cần thiết hiểu qua loa tư liệu.

Cucumber thuở đầu được tiến hành thích hợp mang lại ngôn từ Ruby và sau này được không ngừng mở rộng thanh lịch Java, cả Ruby và Java đều dùng Junit nhằm chạy test. Sau này là với rất nhiều ngôn từ không giống và khuông sườn khác ví như C#, Javascript, Python và cùng theo với framework như TestNG, specflow,...

Tại sao cần dùng Cucumber?

Một số nguyên nhân sau nên người sử dụng Cucumber:

  • Selenium và Cucumber là 2 technology phổ biến
  • Hầu không còn những dự án công trình dùng Selenium nhằm kiểm test công dụng, bọn họ mong muốn tích ăn ý Cucumber vì như thế Cucumber dễ nhìn đọc và dễ nắm bắt luồng phần mềm rộng lớn.
  • Cucumber dựa vào trở nên tân tiến phía hành động nhập vai trò là cầu nối giữa: Software Engineer và Business Analyst, 
    Manual Tester và Automation Tester, 
    Manual Tester và Developers.

Behavior Driven Development (BDD)

Trong BDD, người tiêu dùng (business analysts – người phân tách nhiệm vụ, product owners – người sỡ hửu sản phẩm) tiếp tục viết lách kịch bạn dạng (scenarios) hoặc acceptance test (kiểm test chấp nhận) tế bào mô tả hành động của khối hệ thống kể từ ý kiến của người sử dụng trước và nhập quy trình trở nên tân tiến. Cucumber và BDD giải quyết và xử lý giới hạn đặc biệt hoặc gặp gỡ trong số dự án công trình phần mềm: mỗi người hiểu khối hệ thống một cách tiếp theo nhau.

Cucumber là gì? Các bộ phận của Cucumber | Anh Tester


BDD với kĩ năng tạo nên những kịch bạn dạng test dựa vào tầm nhìn của mặt mày trở nên tân tiến gần giống tầm nhìn của mặt mày không giống sản phẩm. Ngay kể từ thuở đầu, những member dự án công trình tiếp tục thảo luận sẽ tạo đi ra những kịch bạn dạng trước, tiếp sau đó tiếp tục thiết lập dựa vào kịch bạn dạng cơ, toàn bộ kịch bạn dạng test thân thiện với ngôn từ giờ đồng hồ Anh, vì thế nó đóng trách nhiệp luôn luôn tầm quan trọng của tư liệu.


Workflow BDD

Cucumber là gì? Các bộ phận của Cucumber | Anh Tester


Sau Lúc kịch bạn dạng test chạy, Cucumber tiếp tục gọi mã Gherkin kể từ tệp tin feature, tiếp sau đó nó sẽ bị thám thính đoạn mã nhập tệp tin step definition tế bào mô tả chính với hành vi nhập tệp tin feature và tiến hành đoạn code, ở bước chạy code Cucumber hoàn toàn có thể kết phù hợp với những framework khác ví như TestNG, Selenium, Spring,...


Lợi ích của Cucumber

  • Giúp cho những mặt mày tương quan cho tới dự án công trình (stakeholders) hoàn toàn có thể bám theo dõi sinh hoạt test tuy nhiên ko cần thiết kỹ năng kỹ năng chuyên nghiệp môn
  • Cucumber triệu tập nhập thưởng thức người tiêu dùng cuối
  • Cách viết lách mã dễ dàng duy trì và thực hiện
  • Công cụ hiệu suất cao mang lại kiểm thử


So sánh Cucumber với những dụng cụ khác

Cucumber HP ALM (QTP) Selenium
Miễn phí Trả phí Miễn phí
Công cụ tương hỗ Behaviour driven development BDD Công cụ tương hỗ Functional testing Công cụ tương hỗ Functional and Performance testing
Plugin sinh hoạt nhanh Plugin sinh hoạt chậm trễ rộng lớn Cucumber và Selenium Plugin sinh hoạt chậm trễ rộng lớn Cucumber
Hỗ trợ Java, Ruby, Groovy, C#, Python, Javascript Chỉ tương hỗ VB script Hỗ trợ Java, .Net, Ruby, Javascript, Python, PHP
Dev, Tester viết lách script Chỉ Tesster viết lách test script Dev, Tester viết lách script
Support Web phầm mềm, Mobile phầm mềm kết phù hợp với Testing Framework khác Support phần mềm Web, desktop, client server app Chỉ tư vấn trang web app

Thành phần của Cucumber

Các project Cucumber luôn luôn với 1 folder con cái bên trên folder gốc (root) project thương hiệu "features". Đây là điểm tàng trữ toàn bộ những features của projects, ngoại giả còn tồn tại những folder bổ sung cập nhật (additional directories) và folder tương hỗ (support directories).

Xem thêm: chicken nghĩa là gì


Features

Feature hoàn toàn có thể được hiểu là một trong những đơn vị chức năng hoặc công dụng song lập của một dự án công trình. Ví dụ như 1 trang web thương nghiệp năng lượng điện tử, một vài ba tác dụng (features) hoàn toàn có thể xác lập như:

  1. Đăng nhập vì như thế thông tin tài khoản khối hệ thống hoặc mạng xã hội
  2. Lựa lựa chọn sản phẩm hóa
  3. Thanh toán
  4. Đăng xuất


Trong Cucumber từng feature hoàn toàn có thể hiểu là từng function song lập của thành phầm. Trước Lúc viết lách test scripts tất cả chúng ta nên xác lập trước những features cần thiết test nhằm tạo nên lợi nhuận cao. Các tests xây cất nhập Cucumber được gọi là những feature files và với dạng .feature, từng feature cần thiết test nên được đặt trong một tệp tin feature ứng.


Features nhập Cucumber bao hàm những bộ phận sau:

Feature: Mô mô tả test script thời điểm hiện tại sẽ tiến hành chạy
Scenario: Mô mô tả quá trình tiến hành và thành phẩm Output mong ước cho 1 test case cụ thể
Scenario Outline: Scenario tiến hành nhiều tập dượt tài liệu (sets of data). Dữ liệu được lưu bên dưới dạng cấu hình, phân cách nhau chừng vì như thế kí hiệu | | 
Given: Chỉ đi ra văn cảnh nhằm thực thi 
When: Chỉ đi ra hành vi và được thực hiện 
Then: Kết ngược Output mong ước của một test

Và còn những bộ phận không giống nữa. Xem thêm thắt ở cuối nội dung bài viết.

Ví dụ:

Feature: Login Page

  Scenario Outline: Login page to lớn HRM
    Given user navigate to lớn url "<url>"
    When user enter username "<username>" and password "<password>"
    And click login button
    Then The user redirect to lớn Dashboard page
    Examples:
      | url                             | username | password |
      | https://hrm.9film.edu.vn/login | admin01  | 123456   |

Step Definitions

Mặc cho dù vẫn với tệp tin feature tuy nhiên Cucumber ko thực sự biết đoạn mã này sẽ tiến hành thực đua mang lại từng scenario rõ ràng được nêu nhập tệp tin feature. Nó cần thiết một tệp tin trung gian Step Definition, tệp tin này ánh xạ quá trình tiến hành (step), features(Given,When,Then) nhập scenario với đoạn mã (code) công dụng cần thiết thực đua. Step được khái niệm nhập tệp tin java "features/step_definitions/*_steps.java"

Ví dụ

@Given("user navigate to lớn url {string}")
public void userNavigateToUrl(String url) {
  System.out.println("Driver on Steps class: " + driver);
  driver.get(url);
}

@When("user enter username {string} and password {string}")
public void userEnterUsernameAndPassword(String tin nhắn, String password) {
  WebUI.sleep(1);
  driver.findElement(By.xpath("//input[@id='iusername']")).sendKeys(email);
  driver.findElement(By.xpath("//input[@id='ipassword']")).sendKeys(password);
}

@And("click login button")
public void clickLoginButton() {
  WebUI.sleep(1);
  driver.findElement(By.xpath("//button[@type='submit']")).click();
}

@Then("The user redirect to lớn Dashboard page")
public void theUserRedirectToDashboardPage() {
  WebUI.sleep(5);
  Assert.assertTrue(true, "Lỗi rồi");
}

Scenario

Scenario là cấu hình lõi của Gherkin. Kịch bạn dạng test khai báo với kể từ khóa "Scenario:" và bám theo sau là tên gọi kịch bạn dạng. Mỗi tác dụng hoàn toàn có thể với 1 hoặc nhiều scenarios, từng scenario bao hàm một hoặc nhiều steps.

Xem thêm: affiliation là gì

Ví dụ:

Scenario: Open menu
Given user navigate to lớn dashboard
When user click "Project"
Then The user redirect to lớn this page

Gỉa sử kịch bạn dạng bên trên bạn phải tiến hành rất nhiều lần với rất nhiều thực đơn không giống nhau. Nếu tiến hành theo lần lượt thì tiếp tục đặc biệt nhàm ngán và ko cần là một trong những cơ hội hoặc. Cucumber hỗ trợ cấu hình "Scenario outline" nhằm giải quyết và xử lý yếu tố này. Cucumber thay cho thế độ quý hiếm nguồn vào không giống nhau và thực đua loạt hành động.

Như ví dụ tiếp sau đây, Cucumber điền tuần tự động phiên chạy loại nhất và phiên chạy loại nhị ứng 2 độ quý hiếm "Dự án" "Task" nhập trở nên <menu>. Nó tự động hóa hiểu là chạy gấp đôi với 2 độ quý hiếm ứng. Rất tiện lợi đúng không ạ 😀