Gherkin là gì? Cấu trúc của một Gherkin trong Cucumber | Anh Tester

Related Articles

Trong bài này Anh Tester sẽ ra mắt cho bạn những nội dung sau : Gherkin là gì ? Tại sao cần Gherkin ? Cú pháp của Gherkin ? Điều khoản quan trọng được sử dụng trong Gherkin Ví dụ Gherkin Thực hành tốt nhất khi sử dụng Gherkin Ưu điểm và điểm yếu kém của Gherkin .

Gherkin là gì?

Gherkin là định dạng cho thông số kỹ thuật cucumber. Đây là một ngôn ngữ cụ thể của miền giúp bạn mô tả hành vi nghiệp vụ mà không cần phải đi sâu vào chi tiết thực hiện.

Văn bản này hoạt động như tài liệu và bộ khung của các bài kiểm tra tự động của bạn. Gherkin dựa trên Ngữ pháp TreeTop tồn tại trong hơn 37 ngôn ngữ. Do đó, bạn có thể viết cucumber của mình bằng hơn 37 ngôn ngữ .

Kịch bản này phục vụ hai mục đích chính:

  • Tài liệu kịch bản người dùng
  • Viết test case kiểm thử tự động (BDD)

Tại sao cần Gherkin?

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

Trước Gherkin

 

Sau Gherkin

Gherkin sẽ là tiếng nói chung cho các bên liên quan. Nó thể hiện được yêu cầu của khách hàng và logic chặt chẽ giữa Tester và Developer khi làm việc tạo ra sản phẩm như yêu cầu.

Cú pháp của Gherkin

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

Trong ngữ cảnh này, một nhận xét hoàn toàn có thể được thêm vào bất kỳ nơi nào bạn muốn, nhưng nó nên mở màn bằng dấu #. Nó đọc từng dòng sau khi vô hiệu những từ khóa của Ghrekin như given, when, then, v.v. .

Các bước Gherkin điển hình giống như:

Các ngữ cảnh Gherkin : liên kết khái niệm nguyên do và hiệu quả của con người với khái niệm đầu vào / quy trình / đầu ra của ứng dụng .

Cú pháp của Gherkin có dạng:

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

Một 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 với phần mở rộng ưa thích. Cucumber đọc tài liệu Gherkin và thực hiện một bài kiểm tra để xác nhận rằng phần mềm hoạt động theo cú pháp Gherkin.

Các từ khóa quan trọng được sử dụng trong Gherkin

Feature

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

Scenario

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 Scenario: theo sau là tên kịch bản.

Một Scenario là một ngữ cảnh chứa nhiều bước ( steps ) miêu tả những bước hoạt động giải trí một phần tính năng của ứng dụng. Trong một Scenario hoàn toàn có thể chứa nhiều steps. Một Sceario thường được diễn đạt theo mấu :

  • Mô tả điều kiện đã có sẵn (Given steps)
  • Mô tả hành động của tác nhân (When steps)
  • Mô tả kết quả mong đợi sau hành động (Then steps)

Background

Từ khóa Background giúp bạn thêm 1 số ít toàn cảnh vào ngữ cảnh. Nó hoàn toàn có thể chứa 1 số ít bước của ngữ cảnh, nhưng sự độc lạ duy nhất là nó nên được chạy trước mỗi ngữ cảnh .

Rule

Rule là một từ khóa tùy chọn được dùng khi muốn bổ trợ một số ít những luật cần tuân thủ trong một tính năng, nó là một phần lan rộng ra giúp cho tệp văn bản Gherkin trở nên ngặt nghèo hơn. Ví dụ :

Feature: Show admin dashboard As a admin I want to show admin dashboard In order to take actions to manage website.
Rule: - Admin can see dashboard - Normal user can not see dashboard
Scenario: ..........................................

Given

Việc sử dụng từ khóa Given là đưa mạng lưới hệ thống về trạng thái quen thuộc trước khi người dùng khởi đầu tương tác với mạng lưới hệ thống. Tuy nhiên, bạn hoàn toàn có thể bỏ lỡ việc viết những tương tác của người dùng trong những bước đã cho nếu được đưa ra trong bước ” Precondition ” .

Syntax:

Given
Given User login and navigate to Job Title page
 

When

When : là xác lập hành vi được thực thi bởi người dùng .

Syntax:

When
When User click on Add New button in Job Title page
 

Then

Việc sử dụng từ khóa ‘ then ‘ là để xem tác dụng sau hành vi trong bước when. Tuy nhiên, bạn chỉ hoàn toàn có thể xác định những biến hóa đáng quan tâm .

Syntax:

Then
Then the job title name  and the description  displays

And & But

Bạn hoàn toàn có thể có nhiều given when hoặc Then .

Syntax:

And
And I write "EmailAddress" with "[email protected]"
But
But I should see "Welcome Anh Tester Blog"

Given, When, Then, And, But 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úng chắc chắn sẽ không có ý nghĩa gì khi đọc.

Cho biết Trang đăng nhập đang mở
Khi tôi nhập tên người dùng, mật khẩu và nhấp vào nút Đăng nhập
Sau đó, tôi đang ở trên Trang chủ

Scenario Outline

Các Scenario Outline từ khóa có thể được sử dụng để chạy cùng Scenario nhiều lần, với sự kết hợp khác nhau của các giá trị.

Từ khóa Scenario Template là một từ đồng nghĩa của từ khóa Scenario Outline.

Việc sao chép và dán các kịch bản để sử dụng các giá trị khác nhau nhanh chóng trở nên tẻ nhạt và lặp đi lặp lại:

Scenario: eat 5 out of 12 Given there are 12 cucumbers When I eat 5 cucumbers Then I should have 7 cucumbers
Scenario: eat 5 out of 20 Given there are 20 cucumbers When I eat 5 cucumbers Then I should have 15 cucumbers

Chúng ta có thể thu gọn hai kịch bản tương tự này thành một Scenario Outline.

Các phác thảo kịch bản cho phép chúng tôi diễn đạt chính xác hơn các tình huống này thông qua việc sử dụng một mẫu với các tham số được giới hạn:

Scenario Outline: eating Given there are  cucumbers When I eat  cucumbers Then I should have  cucumbers Examples: | start | eat | left | | 12 | 5 | 7 | | 20 | 5 | 15 |

Examples

Scenario Outline phải chứa một hoặc nhiều Examples (hoặc Scenarios) phần. Các bước của nó được hiểu như một mẫu không bao giờ được chạy trực tiếp. Thay vào đó, Scenario Outlinechạy một lần cho mỗi hàng trong Examples phần bên dưới nó (không tính hàng tiêu đề đầu tiên).

Các bước có thể sử dụng các tham số được phân tách tham chiếu đến các tiêu đề trong bảng ví dụ. Cucumber sẽ thay thế các tham số này bằng các giá trị từ bảng trước khi nó cố gắng khớp bước với định nghĩa bước.

Bạn cũng hoàn toàn có thể sử dụng những tham số trong đối số bước nhiều dòng .

Example

Đây là một ví dụ đơn cử mà minh họa một quy tắc kinh doanh thương mại. Nó gồm có một list những bước như trên .

Từ khóa Scenario là một từ đồng nghĩa của từ khóa Example.

Bạn hoàn toàn có thể có bao nhiêu bước tùy thích, nhưng chúng tôi khuyên bạn nên thực thi 3-5 bước cho mỗi ví dụ. Có quá nhiều bước sẽ khiến ví dụ mất đi sức mạnh diễn đạt như một đặc tả và tài liệu .

Ngoài việc là một đặc tả và tài liệu, một ví dụ cũng là một bài kiểm tra. Nhìn chung, những ví dụ của bạn là một đặc tả thực thi của mạng lưới hệ thống .

Các ví dụ theo cùng một mẫu này:

  • Mô tả bối cảnh ban đầu ( Given các bước)
  • Mô tả một sự kiện ( When các bước)
  • Mô tả một kết quả mong đợi ( Then các bước)

Các bạn có thể tham khảo thêm các từ khóa và các cú pháp Gherkin chi tiết hơn tại đây Gherkin keywords

Ví dụ về Gherkin

Ví dụ 1:

Feature: Calculator
@mytag
Scenario: Add two numbers
Given I have entered 50 into the calculator
And I have entered 70 into the calculator
When I press add
Then the result should be 120 on the screen

Ví dụ 2:

@anhtester
Feature: Job Titles feature Scenario Outline: User can add Job Title Given User login and navigate to Job Title page When User click on Add New button in Job Title page And User enter job title name  and description  And User click on Save button in Create Job Titles dialog And enter  on Job TItles search field Then the job title name  and the description  displays Examples: | jobTitleName | description | | Employee | Software Engineer |

Ví dụ 3:

Feature: Multiple site support Only blog owners can post to a blog, except administrators, who can post to all blogs. Background: Given a global administrator named "Greg" And a blog named "Greg's anti-tax rants" And a customer named "Dr. Bill" And a blog named "Expensive Therapy" owned by "Dr. Bill" Scenario: Dr. Bill posts to his own blog Given I am logged in as Dr. Bill When I try to post to "Expensive Therapy" Then I should see "Your article was published." Scenario: Dr. Bill tries to post to somebody else's blog, and fails Given I am logged in as Dr. Bill When I try to post to "Greg's anti-tax rants" Then I should see "Hey! That's not your blog!" Scenario: Greg posts to a client's blog Given I am logged in as Greg When I try to post to "Expensive Therapy" Then I should see "Your article was published."

Các chiêu thức sử dụng Gherkin tốt nhất

  • 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
  • tin tức những 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 các yêu cầu của bạn
  • Theo dõi đầy đủ những tình huống nào nên đượ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 các bài kiểm tra của họ
  • Nó làm cho Câu chuyện của người dùng dễ hiểu hơn
  • Tập lệnh Gherkin có thể dễ dàng hiểu được bởi các nhà điều hành doanh nghiệp và nhà phát triển
  • Kiểm tra Gherkin nhắm mục tiêu các yêu cầu về sản phẩm
  • Một tỷ lệ đáng kể các thông số kỹ thuậ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ễ dàng hơn để sử dụng lại mã trong các bài kiểm tra khác

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

  • Nó đòi hỏi mức độ tham gia và cộng tác cao
  • Có thể không hoạt động tốt trong tất cả các 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ì kiểm tra

Tóm lược:

  • Gherkin là định dạng cho các thông số kỹ thuật của dưa chuột
  • Gherkin là ngôn ngữ hướng dòng giống như YAML và Python
  • Gherkin Scripts 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, Đưa ra, Khi nào, Sau đó, Và Nhưng quan trọng là được sử dụng trong Gherkin
  • Trong Gherkin, mỗi kịch bản nên 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 tất cả các loại tình huống

Nguồn tham khảo:

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories