Ngôn ngữ Gherkin: Định dạng, Cú pháp & Kiểm tra Gherkin trong Cucumber

Ngôn ngữ Gherkin là gì?

Gherkin là một ngôn ngữ có thể đọc được trong kinh doanh giúp bạn mô tả hành vi kinh doanh mà không cần đi sâu vào chi tiết triển khai. Đây là ngôn ngữ dành riêng cho miền để xác định các bài kiểm tra trong Cucumber định dạng cho các thông số kỹ thuật. Nó sử dụng ngôn ngữ đơn giản để mô tả các trường hợp sử dụng và cho phép người dùng loại bỏ các chi tiết logic khỏi các thử nghiệm hành vi.

Văn bản bằng ngôn ngữ Gherkin đóng vai trò là tài liệu và khung cho các bài kiểm tra tự động của bạn. Định dạng Gherkin dựa trên TreeTop Grammar tồn tại ở hơn 37 ngôn ngữ. Vì vậy, bạn có thể viết dưa chuột của mình bằng hơn 37 ngôn ngữ nói.

Tập lệnh này phục vụ hai mục đích chính:

  • Kịch bản người dùng tài liệu
  • Viết bài kiểm tra tự động (BDD)

Tại sao lại là Gherkin?

Nhu cầu về Gherkin có thể dễ dàng được giải thích bằng các hình ảnh sau

Trước Gherkin

Trước Gherkin

Sau Gherkin

Sau Gherkin

Cú pháp Gherkin

Gherkin là ngôn ngữ định hướng dòng giống như YAML và Python. Mỗi dòng được gọi là bước và bắt đầu bằng từ khóa và kết thúc các thiết bị đầu cuối bằng một điểm dừng. Tab hoặc dấu cách được sử dụng để thụt lề.

Trong tập lệnh này, bạn có thể thêm nhận xét vào bất cứ đâu bạn muốn nhưng phải bắt đầu bằng dấu #. Nó đọc từng dòng sau khi loại bỏ các từ khóa của Ghrekin như đã cho, khi nào, sau đó, v.v.

Các bước Gherkin điển hình trông như thế nào

Tập lệnh Gherkin: kết nối khái niệm nhân quả của con người với khái niệm phần mềm về đầu vào/quy trình/đầu ra.

Cú pháp Gherkin

Feature: Title of the Scenario
Given [Preconditions or Initial Context]
When [Event or Trigger]
Then [Expected output]

Tài liệu Gherkin có phần mở rộng .feature và chỉ đơn giản là một tệp thử nghiệm có phần mở rộng ưa thích. Cucumber đọc tài liệu Gherkin và thực hiện kiểm tra để xác thực rằng phần mềm hoạt động theo cú pháp Gherkin.

Điều khoản quan trọng được sử dụng trong Gherkin

  • Đặc tính
  • Tiểu sử
  • Kịch bản
  • Được
  • Thời Gian
  • Sau đó
  • Nhưng
  • Ví dụ về phác thảo kịch bản

Quy ước đặt tên được sử dụng cho tên tính năng. Tuy nhiên, không có quy định nào được đặt ra trong Cucumber về những cái tên.

Đặc tính

Tệp phải có phần mở rộng .feature và mỗi tệp tính năng chỉ được có một tính năng. Từ khóa tính năng đi kèm với Tính năng: và sau đó thêm vào, một khoảng trắng và tên của tính năng sẽ được viết.

Kịch bản

Mỗi tệp tính năng có thể có nhiều kịch bản và mỗi kịch bản bắt đầu bằng Kịch bản: theo sau là tên kịch bản.

Tiểu sử

Từ khóa nền giúp bạn thêm một số ngữ cảnh vào kịch bản. Nó có thể chứa một số bước của kịch bản, nhưng điểm khác biệt duy nhất là nó phải được chạy trước mỗi kịch bản.

Được

Công dụng của từ khóa Given là đưa hệ thống về trạng thái quen thuộc trước khi người dùng bắt đầu tương tác với hệ thống. Tuy nhiên, bạn có thể bỏ qua việc ghi các tương tác của người dùng trong các bước Đã cho nếu Đã cho ở bước “Điều kiện tiên quyết”.

Cú pháp:

Given
Given - a test step that defines the 'context
Given I am on "/."

Thời Gian

Khi bước này xác định hành động được thực hiện bởi người dùng.

Cú pháp:

When
A When - a test step that defines the 'action' performed
When I perform "Sign In."

Sau đó

Việc sử dụng từ khóa 'sau đó' là để xem kết quả sau hành động ở bước khi nào. Tuy nhiên, bạn chỉ có thể xác minh những thay đổi đáng chú ý.

Cú pháp:

 Then
Then - test step that defines the 'outcome.'
Then I should see "Welcome Tom."

Và nhưng

Bạn có thể có nhiều khi hoặc Sau đó.

Cú pháp:

But
A But - additional test step which defines the 'action' 'outcome.'
But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed
And I write  "EmailAddress" with "Tomjohn@gmail.com."

Given, When, Then, và, nhưng là các bước kiểm tra. Bạn có thể sử dụng chúng thay thế cho nhau. Trình thông dịch không hiển thị bất kỳ lỗi nào. Tuy nhiên, chắc chắn chúng sẽ không có “ý nghĩa” gì khi đọc.

Điều khoản quan trọng được sử dụng trong Gherkin
Điều khoản quan trọng được sử dụng trong Gherkin
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Ví dụ về dưa chuột

Ví dụ 1:

Feature:  Login functionality of social networking site Facebook. 
Given:  I am a facebook user. 
When: I enter username as username. 
And I enter the password as the password 
Then I should be redirected to the home page of facebook 

Kịch bản được đề cập ở trên là một tính năng được gọi là đăng nhập của người dùng.

Gherkin sẽ phân tích từng bước được ghi trong tệp định nghĩa bước. Do đó, các bước được đưa ra trong tệp tính năng và tệp định nghĩa bước phải khớp nhau.

Ví dụ 2:

Feature: User Authentication Background:
Given the user is already registered to the website Scenario:
Given the user is on the login page
When the user inputs the correct email address
And the user inputs the correct password
And the user clicks the Login button
Then the user should be authenticated
And the user should be redirected to their dashboard
And the user should be presented with a success message 

Thực hành tốt nhất khi sử dụng Gherkin

  • Mỗi kịch bản nên thực hiện riêng biệt
  • Mọi tính năng sẽ có thể được thực thi cùng
  • Thông tin về các bước phải được hiển thị độc lập
  • Kết nối Kịch bản của bạn với yêu cầu của bạn
  • Theo dõi đầy đủ những kịch bản nào sẽ được đưa vào tài liệu yêu cầu
  • Tạo các bước mô-đun và dễ hiểu
  • Cố gắng kết hợp tất cả các tình huống phổ biến của bạn

Ưu điểm của Gherkin

  • Gherkin đủ đơn giản để những người không phải lập trình viên có thể hiểu được
  • Các lập trình viên có thể sử dụng nó như một cơ sở rất vững chắc để bắt đầu thử nghiệm của mình
  • Nó làm cho Câu chuyện của người dùng dễ hiểu hơn
  • Kịch bản Gherkin có thể dễ dàng hiểu được bởi các nhà điều hành và nhà phát triển kinh doanh
  • Gherkin testing nhắm đến các yêu cầu kinh doanh
  • Một tỷ lệ đáng kể các đặc tả chức năng được viết dưới dạng câu chuyện của người dùng
  • Bạn không cần phải là chuyên gia để hiểu bộ lệnh Gherkin nhỏ
  • Các trường hợp thử nghiệm Gherkin liên kết các thử nghiệm chấp nhận trực tiếp với các thử nghiệm tự động
  • Phong cách viết các trường hợp kiểm thử dễ sử dụng lại mã hơn trong các bài kiểm thử khác

Nhược điểm của Gherkin

  • Nó đòi hỏi mức độ tham gia và hợp tác kinh doanh cao
  • Có thể không hoạt động tốt trong mọi tình huống
  • Các bài kiểm tra được viết kém có thể dễ dàng làm tăng chi phí bảo trì bài kiểm tra

Tổng kết

  • Gherkin là định dạng cho thông số kỹ thuật dưa chuột
  • Gherkin là ngôn ngữ định hướng dòng giống như YAML và Python
  • Tập lệnh Gherkin kết nối khái niệm nhân quả của con người với khái niệm phần mềm về đầu vào/quy trình và đầu ra
  • Tính năng, Bối cảnh, Kịch bản, Cho, Khi nào, Sau đó và Nhưng được sử dụng quan trọng trong Gherkin
  • Trong Gherkin, mỗi kịch bản sẽ được thực thi riêng biệt
  • Ưu điểm lớn nhất của Gherkin là đủ đơn giản để những người không phải lập trình viên có thể hiểu được
  • Gherkin Test có thể không hoạt động tốt trong mọi loại tình huống

Bản tin Guru99 hàng ngày

Bắt đầu ngày mới của bạn với những tin tức AI mới nhất và quan trọng nhất hiện nay.