Cucumber
Cucumber, testing framework cung cấp Behavior Driven Development (BDD), cho phép người tiêu dùng khái niệm hành động khối hệ thống với ngữ nghĩa tiếng anh trải qua cú pháp Gherkin. Cucumber nhắm tới câu hỏi viết test “as cool as cucumber” nhưng ngẫu nhiên người nào cũng có thể hiểu mặc dầu bọn họ không tồn tại trình độ chuyên môn kinh nghiệm. Ví dụ như các căn cơ thân thuộc nhỏng Selenium thì thường xuyên chỉ fan viết test hoặc bao gồm tài năng xây dựng new phát âm được phần đông gì đã demo, còn không giống sản phẩm hoặc những bên liên quan thì không gọi ngay lập tức code nhằm hiểu mà họ yêu cầu gọi qua tư liệu.
Bạn đang xem: Cucumber là gì
Cucumber thuở đầu được tiến hành giành cho ngôn từ Ruby và sau đó được mở rộng quý phái Java, cả Ruby cùng Java các áp dụng Junit để chạy chạy thử.
Behavior Driven Development
Trong BDD, người tiêu dùng (business analysts – tín đồ phân tích nghiệp vụ, hàng hóa owners – người sỡ hửu sản phẩm) vẫn viết kịch bản(scenarios) hoặc acceptance demo ( kiểm test chấp nhận) miêu tả hành động của khối hệ thống trường đoản cú cách nhìn của người tiêu dùng trước và vào tiến trình cải tiến và phát triển. Cucumber và BDD giải quyết và xử lý giảm bớt rất hấp dẫn gặp mặt trong số dự án phần mềm: mọi cá nhân phát âm khối hệ thống một biện pháp không giống nhau.

BDD có công dụng tạo ra những kịch bản test dựa trên góc nhìn của mặt trở nên tân tiến cũng tương tự mắt nhìn của mặt khác sản phẩm. Ngay tự thuở đầu, các thành viên dự án đang bàn thảo nhằm tạo ra những kịch bản trước, tiếp nối vẫn thiết lập dựa vào kịch bản kia, tất cả kịch bản chạy thử gần gụi cùng với ngôn từ giờ Anh, cho nên vì vậy nó đóng luôn luôn phương châm của tài liệu.
Workflow BDD

Sau Khi kịch phiên bản chạy thử chạy, Cucumber đang phát âm mã Gherkin từ file feature, tiếp đến nó đã tìm kiếm đoạn mã trong tệp tin step definition diễn đạt đúng với hành động trong tệp tin feature với tiến hành đoạn code, nghỉ ngơi bước chạy code Cucumber có thể kết hợp với các framework khác ví như Ruby on Rails, Selenium, Spring,...
Lợi ích
Gíup cho các mặt tương quan mang lại dự án (stakeholders) rất có thể follow chuyển động chạy thử nhưng mà ko phải kiến thức và kỹ năng kỹ năng siêng mônCucumber triệu tập vào yêu cầu người dùng cuốiStyle viết mã dễ gia hạn với thực hiệnCông vắt hiệu quả đến kiểm thửSo sánh Cucumber với các vẻ ngoài khác
Miễn phí | Trả phí | Miễn phí |
Công núm cung ứng Behaviour driven development BDD | Công cầm cố hỗ trợ Functional testing | Công vậy cung cấp Functional & Performance testing |
Plugin vận động nhanh | Plugin chuyển động lờ lững rộng Cucumber cùng Selenium | Plugin hoạt động lờ lững hơn Cucumber |
Hỗ trợ Java, Scala, Groovy | Chỉ cung cấp VB script | Hỗ trợ Java, .Net, Ruby |
Dev, demo viết script | Chỉ tester viết demo script | Dev, chạy thử viết script |
Chỉ tư vấn Web app | Support vận dụng Web, desktop, client server app | Chỉ support web app |
Phần tiếp theo sau, chúng ta đang khám phá nguyên tố của Cucumber.
Xem thêm: Thuế Tncn Tiếng Anh Là Gì ? Hầu Hết Mọi Người Không Biết Thu Nhập Cá Nhân In English
Thành phần của Cucumber
Các project Cucumber luôn luôn tất cả một thư mục bé trên thỏng mục gốc (root) project tên "features". Đây là địa điểm tàng trữ toàn bộ những features của projects, ngoài ra còn tồn tại những thỏng mục bổ sung (additional directories) với tlỗi mục hỗ trợ (support directories).
Features
Feature rất có thể được hiểu là một đơn vị hoặc triệu chứng năng độc lập của một dự án công trình. lấy một ví dụ nlỗi một website tmùi hương mại điện tử, một vài tuấn kiệt (features) có thể xác định như:
Đăng nhập bằng tài khoản hệ thống hoặc mạng thôn hộiLựa chọn sản phẩm hóaThanh khô toánĐăng xuấtTrong Cucumber từng feature có thể phát âm là từng function chủ quyền của sản phẩm. Trước Lúc viết thử nghiệm scripts họ nên khẳng định trước những features đề nghị kiểm tra nhằm đem đến tác dụng cao. Các tests thiết kế trong Cucumber được Call là các feature files và gồm dạng .feature, mỗi feature nên demo nên được sắp xếp trong một file feature tương xứng.
Features vào Cucumber bao hàm các nhân tố sau:
Feature: Mô tả demo script hiện giờ sẽ tiến hành chạyScenario: Mô tả công việc triển khai với công dụng Áp sạc ra ước muốn cho 1 thử nghiệm case ráng thểScenario Outline: Scenario tiến hành nhiều tập dữ liệu (sets of data). Dữ liệu được giữ bên dưới dạng cấu trúc, phân làn nhau bởi kí hiệu | |Given: Chỉ ra ngữ cảnh nhằm thực thiWhen: Chỉ ra hành động đã có được thực hiệnThen: Kết trái đầu ra output mong ước của một test
Ví dụ:
Feature: Visit career guide page in career.guru99.comScenario : Visit career.guru99.comGiven: I am on career.guru99.comWhen: I cliông xã on career guide menuThen: I should see career guide pag
Step Definitions
Mặc mặc dù đang bao gồm tệp tin feature nhưng mà Cucumber chưa thực thụ biết đoạn mã như thế nào sẽ tiến hành thực hiện mang đến từng scenario rõ ràng được nêu trong file feature. Nó yêu cầu một file trung gian Step Definition, file này ánh xạ các bước thực hiện (step), features(Given,When,Then) trong scenario với đoạn mã (code) tác dụng bắt buộc thực thi. Step được khái niệm vào file ruby "features/step_definitions/*_steps.rb"Ví dụ
Given (/^ I am on career.guru99.com$/) doBrowser.gokhổng lồ "http://career.guru99.com" -This will visit career.guru99 on browserendWhen (/^ clichồng on career guide menu$/) doBrowser.text (:name, " career guide" ).cliông chồng – This will cliông chồng "career guide menu"endThen (/^ I should see career guide page$/) doBrowser.goto lớn "http://career.guru99.com/category/career-guide/" - It will visit "career guide page"end
Scenario
Scenario là cấu trúc lõi của Gherkin. Kịch bạn dạng demo knhì báo với trường đoản cú khóa "Scenario:" cùng theo sau là tên gọi kịch bản. Mỗi nhân tài rất có thể bao gồm một hoặc những scenargame ios, từng scenario gồm 1 hoặc nhiều steps.Ví dụ:Scenario - Login the store at http://store.demoqa.com/Given user input đầu vào username & passwordWhen user clicks LoginThen the Homepage opens
Gỉa sử kịch phiên bản bên trên bạn cần tiến hành nhiều lần với rất nhiều quyền (role) người tiêu dùng khác nhau. Nếu thực hiện theo thứ tự thì sẽ rất buốn chán và không phải là 1 bí quyết tốt. Cucumber cung ứng cấu trúc "Scenario outline" để xử lý sự việc này. Cucumber sửa chữa cực hiếm đầu vào khác nhau cùng tiến hành loạt hành vi.
Nlỗi ví dụ sau đây, Cucumber đang gọi giá trị user1 với pasword1 đến lần chạy thứ nhất, sau khoản thời gian chạy xong, Cucumber đang thay thế sửa chữa bởi quý hiếm user2 cùng password2 cùng với các step như cũ.
| username | password | | user1 | password1 | | user2 | password2 |