Gherkin Là Gì? Cách Sử Dụng Gherkin Cho BDD và Kiểm Thử API

Ashley Goolam

Ashley Goolam

17 tháng 12 2025

Gherkin Là Gì? Cách Sử Dụng Gherkin Cho BDD và Kiểm Thử API

Bạn muốn viết một trường hợp kiểm thử rõ ràng và đơn giản đến mức ngay cả quản lý sản phẩm của bạn cũng có thể hiểu được? Đó chính là sự kỳ diệu của Gherkin! Nếu bạn chưa thử, thì bạn đang bỏ lỡ một trong những cách hiệu quả nhất để thu hẹp khoảng cách giữa yêu cầu nghiệp vụ và kiểm thử tự động. Học cách sử dụng Gherkin để kiểm thử không chỉ là học một cú pháp, mà là học một ngôn ngữ mà toàn bộ đội ngũ của bạn có thể giao tiếp. Hướng dẫn này sẽ đưa bạn qua mọi thứ bạn cần biết về cách sử dụng Gherkin để kiểm thử, từ cú pháp cơ bản đến các tính năng nâng cao, với trọng tâm đặc biệt vào kiểm thử API và cách các công cụ hiện đại như Apidog có thể biến các kịch bản kiểm thử của bạn thành các trường hợp kiểm thử có thể thực thi mà không gặp phải những rắc rối thông thường. button

Gherkin là gì và tại sao bạn nên quan tâm?

Gherkin là một ngôn ngữ đọc được bởi nghiệp vụ, dành riêng cho một lĩnh vực, được thiết kế để mô tả hành vi. Nó sử dụng một cú pháp đơn giản gồm các từ khóa để định nghĩa hành vi phần mềm theo cách dễ hiểu đối với cả các bên liên quan có kỹ thuật và không có kỹ thuật. Khi bạn nắm vững cách sử dụng Gherkin để kiểm thử, bạn sẽ tạo ra tài liệu sống phục vụ ba mục đích: đặc tả yêu cầu, thiết kế trường hợp kiểm thử và thực thi kiểm thử tự động.

gherkin

Sinh ra từ phong trào Phát triển theo Hành vi (BDD), Gherkin giải quyết một vấn đề cơ bản: các trường hợp kiểm thử truyền thống hoặc quá kỹ thuật đối với các bên liên quan nghiệp vụ hoặc quá mơ hồ đối với các nhà phát triển. Gherkin tìm thấy điểm cân bằng. Sức mạnh lớn nhất của nó là buộc phải có sự rõ ràng. Nếu bạn không thể mô tả một tính năng theo định dạng Given-When-Then, có lẽ bạn chưa hiểu rõ nó đủ để kiểm thử. Ngôn ngữ này không phụ thuộc vào việc triển khai. Cùng một kịch bản Gherkin có thể điều khiển các bài kiểm thử Selenium cho giao diện người dùng web, các bài kiểm thử RestAssured cho API hoặc các bài kiểm thử Appium cho ứng dụng di động. Tính linh hoạt này khiến việc học cách sử dụng Gherkin để kiểm thử trở thành một khoản đầu tư đáng giá cho sự nghiệp.

Cú pháp Gherkin: Nền tảng của các bài kiểm thử dễ đọc

Học cách sử dụng Gherkin để kiểm thử bắt đầu bằng việc nắm vững cú pháp của nó. Các tệp Gherkin sử dụng phần mở rộng .feature và bao gồm một vài từ khóa cốt lõi:

Các từ khóa chính

Đây là ví dụ đơn giản nhất có thể:

Feature: Đăng nhập người dùng
  Với tư cách là một người dùng đã đăng ký
  Tôi muốn đăng nhập vào tài khoản của mình
  Để tôi có thể truy cập bảng điều khiển của mình

  Scenario: Đăng nhập thành công với thông tin đăng nhập hợp lệ
    Given Tôi đang ở trang đăng nhập
    When Tôi nhập "test@example.com" làm tên người dùng
    And Tôi nhập "ValidPass123" làm mật khẩu
    And Tôi nhấp vào nút đăng nhập
    Then Tôi sẽ được chuyển hướng đến bảng điều khiển
    And Tôi sẽ thấy một thông báo chào mừng

Hãy chú ý cách đọc nó giống như tiếng Anh đơn giản. Đó là mục đích. Khi bạn đang học cách sử dụng Gherkin để kiểm thử, mục tiêu đầu tiên của bạn là sự rõ ràng, không phải sự thông minh.

Viết bài kiểm thử API đầu tiên của bạn với Gherkin

Mặc dù Gherkin ban đầu được tạo ra để kiểm thử giao diện người dùng, nhưng nó cực kỳ mạnh mẽ cho kiểm thử API. Cấu trúc ánh xạ hoàn hảo với các yêu cầu và phản hồi HTTP. Hãy xem một ví dụ thực tế về cách sử dụng Gherkin để kiểm thử một điểm cuối API:

Feature: API quản lý người dùng
  Với tư cách là một client API
  Tôi muốn quản lý tài khoản người dùng
  Để tôi có thể tích hợp với hệ thống người dùng

  Scenario: Tạo người dùng mới thành công
    Given điểm cuối API "/api/users"
    And Tôi có thông tin xác thực hợp lệ
    When Tôi gửi một yêu cầu POST với:
      | trường   | giá trị          |
      | email    | test@example.com |
      | password | ValidPass123     |
      | role     | khách hàng       |
    Then trạng thái phản hồi phải là 201
    And phản hồi phải chứa "userId"
    And một người dùng mới phải tồn tại trong cơ sở dữ liệu

  Scenario: Thử tạo người dùng với email không hợp lệ
    Given điểm cuối API "/api/users"
    And Tôi có thông tin xác thực hợp lệ
    When Tôi gửi một yêu cầu POST với:
      | trường   | giá trị         |
      | email    | email-không-hợp-lệ |
      | password | ValidPass123  |
    Then trạng thái phản hồi phải là 400
    And phản hồi phải chứa "Định dạng email không hợp lệ"

Ví dụ này cho thấy cách sử dụng Gherkin để kiểm thử API với các bảng dữ liệu cho các payload yêu cầu. Cấu trúc Given-When-Then ánh xạ trực tiếp đến các khái niệm kiểm thử API: thiết lập, hành động và xác nhận.

Các tính năng Gherkin nâng cao cho các kịch bản phức tạp

Sau khi bạn đã nắm vững các kiến thức cơ bản, các tính năng nâng cao này sẽ giúp các tính năng Gherkin của bạn dễ bảo trì và mạnh mẽ hơn.

Background: Tránh lặp lại

Từ khóa Background chạy trước mỗi kịch bản trong một tệp tính năng, loại bỏ các bước thiết lập trùng lặp.

Feature: API giỏ hàng

  Background:
    Given Tôi có một token xác thực hợp lệ
    And điểm cuối API "/api/cart"

  Scenario: Thêm mặt hàng vào giỏ hàng trống
    When Tôi gửi yêu cầu POST với mặt hàng "123" và số lượng "1"
    Then giỏ hàng phải chứa 1 mặt hàng

  Scenario: Thêm mặt hàng trùng lặp vào giỏ hàng
    Given giỏ hàng đã chứa mặt hàng "123" với số lượng "2"
    When Tôi gửi yêu cầu POST với mặt hàng "123" và số lượng "1"
    Then giỏ hàng phải chứa mặt hàng "123" với số lượng "3"

Khi bạn đang tìm hiểu cách sử dụng Gherkin để kiểm thử ở quy mô lớn, Background là yếu tố cần thiết cho các nguyên tắc DRY (Don't Repeat Yourself).

Scenario Outlines: Kiểm thử dựa trên dữ liệu

Scenario Outlines cho phép bạn chạy cùng một kịch bản với nhiều tập dữ liệu, giúp cách sử dụng Gherkin để kiểm thử hiệu quả hơn nhiều:

Scenario Outline: Đăng nhập với nhiều thông tin đăng nhập khác nhau
  Given Tôi đang ở trang đăng nhập
  When Tôi nhập "<tên_người_dùng>" làm tên người dùng
  And Tôi nhập "<mật_khẩu>" làm mật khẩu
  And Tôi nhấp vào nút đăng nhập
  Then Tôi sẽ thấy "<kết_quả_mong_đợi>"

  Examples:
    | tên_người_dùng    | mật_khẩu     | kết_quả_mong_đợi        |
    | test@example.com  | ValidPass123 | Chào mừng đến bảng điều khiển |
    | invalid@email.com | ValidPass123 | Thông tin đăng nhập không hợp lệ |
    | test@example.com  | wrongpass    | Thông tin đăng nhập không hợp lệ |
    |                   | ValidPass123 | Tên người dùng là bắt buộc |
    | test@example.com  |              | Mật khẩu là bắt buộc   |

Kịch bản dàn bài duy nhất này thực thi năm bài kiểm thử riêng biệt. Khi học cách sử dụng Gherkin để kiểm thử, đây là vũ khí bí mật của bạn để bao phủ toàn diện mà không gặp ác mộng về bảo trì.

Tags: Tổ chức bộ kiểm thử của bạn

Tags giúp bạn phân loại và lọc các kịch bản:

@regression @login
Scenario: Đăng nhập thành công
  Given Tôi đang ở trang đăng nhập
  When Tôi nhập thông tin đăng nhập hợp lệ
  Then Tôi sẽ được đăng nhập

@smoke @api @critical
Scenario: Kiểm tra tình trạng API
  Given điểm cuối API "/health"
  When Tôi gửi yêu cầu GET
  Then trạng thái phản hồi phải là 200

Tags cho phép thực thi có chọn lọc: chỉ chạy các bài kiểm thử @smoke để xác thực nhanh, hoặc @regression để bao phủ đầy đủ.

Phát triển theo Hành vi (BDD) và Gherkin

Hiểu cách sử dụng Gherkin để kiểm thử có nghĩa là hiểu nơi nó ra đời: BDD. BDD là một cách tiếp cận hợp tác trong đó các nhà phát triển, người kiểm thử và các bên liên quan nghiệp vụ cùng nhau định nghĩa các yêu cầu bằng cách sử dụng các kịch bản Gherkin. Quy trình làm việc như sau:

  1. Khám phá: Nhóm tập hợp để thảo luận về một tính năng mới, đặt câu hỏi và ghi lại các ví dụ
  2. Xây dựng: Các ví dụ thực tế được viết dưới dạng các kịch bản Gherkin
  3. Tự động hóa: Các nhà phát triển triển khai các định nghĩa bước để làm cho các kịch bản có thể thực thi được
  4. Xác thực: Các kịch bản tự động chạy dưới dạng các bài kiểm thử hồi quy

Phép màu xảy ra trong giai đoạn khám phá. Khi một chủ sản phẩm nói, “Người dùng phải có khả năng đặt lại mật khẩu của họ,” nhóm hỏi: “Điều gì xảy ra nếu mã thông báo đặt lại hết hạn?” Cuộc trò chuyện này trở thành một kịch bản Gherkin trước khi bất kỳ mã nào được viết. BDD đảm bảo rằng cách sử dụng Gherkin để kiểm thử phù hợp với việc mang lại giá trị nghiệp vụ, chứ không chỉ là xác minh kỹ thuật.

bdd
Phát triển theo Hành vi

Các kịch bản kiểm thử Gherkin: Từ kịch bản đến thực thi

Một kịch bản Gherkin chỉ là văn bản cho đến khi bạn kết nối nó với mã. Các định nghĩa bước bắc cầu khoảng cách này. Đây là cách cách sử dụng Gherkin để kiểm thử trở nên có thể thực thi được:

// Định nghĩa bước Cucumber.js cho kịch bản đăng nhập
const { Given, When, Then } = require('@cucumber/cucumber');
const { expect } = require('chai');
const apiClient = require('./api-client');

Given('Tôi có thông tin xác thực hợp lệ', async function() {
  this.authToken = await apiClient.getAuthToken('test@example.com', 'ValidPass123');
});

When('Tôi gửi một yêu cầu POST với:', async function(dataTable) {
  const requestData = dataTable.rowsHash();
  this.response = await apiClient.post('/api/users', requestData, this.authToken);
});

Then('trạng thái phản hồi phải là {int}', function(statusCode) {
  expect(this.response.status).to.equal(statusCode);
});

Mỗi bước Gherkin ánh xạ tới một hàm. Hàm thực thi logic kiểm thử thực tế bằng cách sử dụng framework tự động hóa bạn đã chọn. Sự tách biệt các mối quan tâm này là lý do tại sao cách sử dụng Gherkin để kiểm thử vẫn có thể bảo trì được—logic nghiệp vụ trong Gherkin hiếm khi thay đổi trong khi mã triển khai có thể được tái cấu trúc tự do.

Cách Apidog tự động hóa kiểm thử API

Kiểm thử API thủ công là một sự lãng phí thời gian—việc tạo yêu cầu, quản lý xác thực, xác thực phản hồi và ghi lại kết quả cho mỗi điểm cuối nhanh chóng trở nên không bền vững. Apidog loại bỏ gánh nặng này thông qua tự động hóa bằng AI, biến đặc tả API của bạn thành một bộ kiểm thử hoàn chỉnh chỉ trong vài phút. Chỉ cần nhập đặc tả OpenAPI của bạn và AI của Apidog (được kết nối với khóa Claude, OpenAI hoặc Gemini của riêng bạn) sẽ tự động tạo các trường hợp kiểm thử toàn diện trên các kịch bản tích cực, tiêu cực, giới hạn và bảo mật. Mỗi bài kiểm thử bao gồm các payload được cấu hình sẵn, mã trạng thái mong đợi và các xác nhận phản hồi. Bạn xem xét và tinh chỉnh thay vì viết từ đầu, chuyển từ vai trò tác giả kiểm thử sang người quản lý kiểm thử.

connect your AI to Apidog

Việc thực thi diễn ra thông qua một giao diện trực quan hợp nhất—không cần mã. Chạy các bài kiểm thử riêng lẻ hoặc hàng loạt chỉ bằng một cú nhấp chuột, và Apidog tự động xử lý xác thực, quản lý dữ liệu, chuyển đổi môi trường và xác thực theo thời gian thực. Tích hợp với các đường ống CI/CD có nghĩa là toàn bộ bộ kiểm thử của bạn chạy trên mỗi bản dựng, phát hiện lỗi hồi quy ngay lập tức. Điều từng mất hàng ngày công sức thủ công giờ đây chỉ mất vài phút, giúp nhóm của bạn tập trung vào các quyết định chất lượng chiến lược thay vì các tác vụ lặp đi lặp lại. button

testing api endpoints in apidog

Các phương pháp hay nhất để viết các bài kiểm thử Gherkin hiệu quả

Nắm vững cách sử dụng Gherkin để kiểm thử có nghĩa là tuân theo các phương pháp đã được chứng minh này:

  1. Viết cho con người trước: Nếu một bên liên quan không có kỹ thuật không thể hiểu kịch bản của bạn, hãy viết lại. Tránh các thuật ngữ kỹ thuật trong các bước Gherkin.
  2. Giữ các kịch bản độc lập: Mỗi kịch bản nên thiết lập dữ liệu riêng và dọn dẹp sau khi thực hiện. Các phụ thuộc tạo ra các bộ kiểm thử dễ vỡ.
  3. Sử dụng khai báo thay vì mệnh lệnh: Viết những gì bạn đang kiểm thử, không phải cách thức. “Khi tôi tạo người dùng” tốt hơn là “Khi tôi nhấp vào nút người dùng mới và điền vào biểu mẫu và nhấp vào gửi.”
  4. Giới hạn độ dài kịch bản: Nếu một kịch bản có hơn 7-8 bước, có thể nó đang kiểm thử quá nhiều. Chia nó thành nhiều kịch bản tập trung hơn.
  5. Gắn thẻ một cách chiến lược: Sử dụng thẻ để tổ chức (@smoke, @regression, @api), không phải cho siêu dữ liệu thuộc về mô tả kịch bản.
  6. Duy trì khả năng tái sử dụng bước: Viết các bước chung chung như “Tôi gửi một yêu cầu POST đến {string}” thay vì “Tôi gửi một yêu cầu POST đến /api/users”. Các bước có thể tái sử dụng giảm đáng kể việc bảo trì.

Các câu hỏi thường gặp

Q1: Tôi có cần biết lập trình để viết các bài kiểm thử Gherkin không?

Trả lời: Không cần nữa. Mặc dù Gherkin truyền thống yêu cầu các nhà phát triển phải viết mã cho các định nghĩa bước, các công cụ hiện đại như Apidog đã thay đổi cuộc chơi. AI của Apidog có thể tự động tạo các kịch bản theo phong cách Gherkin từ các đặc tả API của bạn, và giao diện trực quan của nó cho phép bạn thực thi chúng mà không cần viết một dòng mã nào. Bạn vẫn cần kiến thức miền để xem xét và tinh chỉnh các kịch bản, nhưng rào cản kỹ thuật về cơ bản đã biến mất đối với kiểm thử API.

Q2: Apidog có thực sự có thể tự động tạo các kịch bản Gherkin không?

Trả lời: Có, nhưng cần làm rõ một chút. Apidog sử dụng AI (được kết nối với khóa Claude, OpenAI hoặc Gemini của riêng bạn) để phân tích đặc tả OpenAPI của bạn và tạo các trường hợp kiểm thử có cấu trúc. Mặc dù không có nút “Xuất ra Gherkin” chỉ bằng một cú nhấp, bạn có thể yêu cầu AI định dạng các trường hợp kiểm thử đó thành cú pháp Given/When/Then. Đầu ra được tạo ánh xạ hoàn hảo với cấu trúc Gherkin vì AI đã biết các điểm cuối, phương thức, lược đồ yêu cầu và phản hồi mong đợi của bạn từ đặc tả của bạn.

Q3: Điều gì tạo nên một đặc tả OpenAPI tốt để tạo ra các kịch bản Gherkin?

Trả lời: Đặc tả của bạn càng phong phú, Gherkin của bạn càng tốt. Bao gồm mô tả hoạt động rõ ràng, các ràng buộc trường chi tiết (chiều dài tối thiểu/tối đa, mẫu, enum), giá trị ví dụ và các phản hồi lỗi mô tả. AI của Apidog sử dụng các chi tiết này để tạo các kịch bản chính xác hơn—biến một “email: string” đơn giản thành các trường hợp kiểm thử cụ thể cho định dạng hợp lệ, email bị thiếu, định dạng không hợp lệ và vi phạm chiều dài tối đa.

Q4: Gherkin khác với các trường hợp kiểm thử API truyền thống trong các công cụ như Postman như thế nào?

Trả lời: Các trường hợp kiểm thử API truyền thống thường mang tính mệnh lệnh (“Đặt tiêu đề X, gửi POST đến Y, xác nhận trạng thái Z”). Gherkin mang tính khai báo—nó mô tả hành vi bằng ngôn ngữ nghiệp vụ (“Given một người dùng hợp lệ, when tôi đăng ký, then tôi sẽ nhận được một xác nhận”). Apidog kết nối cả hai thế giới bằng cách cho phép bạn tạo Gherkin dễ đọc cho nghiệp vụ trong khi cung cấp công cụ thực thi kỹ thuật bên dưới. Bạn có được sự rõ ràng mà không phải hy sinh tự động hóa.

Q5: Điều gì sẽ xảy ra nếu các kịch bản Gherkin do AI tạo ra không phù hợp với phong cách của nhóm tôi?

Trả lời: Đó là lúc việc nhắc nhở trở nên mạnh mẽ. Bạn có thể hướng dẫn AI của Apidog với các hướng dẫn cụ thể: “Sử dụng cú pháp Gherkin nghiêm ngặt,” “Kết hợp các bước Given chung thành một phần Background,” hoặc “Tạo Scenario Outlines với các bảng Ví dụ.” AI điều chỉnh đầu ra của nó dựa trên hướng dẫn của bạn, và bạn luôn có thể chỉnh sửa kết quả trước khi hoàn thiện. Hãy coi đó như một người kiểm thử cấp cao đang soạn thảo các kịch bản để bạn xem xét và hoàn thiện.

Kết luận

Nắm vững cách sử dụng Gherkin để kiểm thử tạo ra một ngôn ngữ chung giúp chất lượng trở thành một môn thể thao đồng đội. Khi các bài kiểm thử đọc giống như tiếng Anh đơn giản, mọi người đều tham gia—từ nhà phát triển đến chủ sản phẩm. Nhưng bước đột phá thực sự xảy ra khi bạn kết hợp sự rõ ràng đó với tự động hóa thông minh. Apidog loại bỏ công việc thủ công tẻ nhạt đã khiến kiểm thử API trở thành một nút thắt cổ chai theo truyền thống. Bằng cách tạo các trường hợp kiểm thử toàn diện từ các đặc tả API của bạn và thực thi chúng tự động, nó biến kiểm thử từ một công việc vặt vãnh thành một lợi thế chiến lược. Bạn có được khả năng đọc của Gherkin và sức mạnh của tự động hóa hoàn toàn mà không cần viết định nghĩa bước hoặc mã bảo trì. Bắt đầu bằng cách nhập đặc tả OpenAPI của bạn và tạo bộ kiểm thử do AI điều khiển đầu tiên của bạn. Trong vài phút, bạn sẽ có các bài kiểm thử có thể thực thi mang lại sự tự tin ở mọi giai đoạn phát triển—chứng minh rằng chất lượng không chỉ là tìm lỗi, mà còn là xây dựng một quy trình mà chất lượng trở thành điều không thể tránh khỏi. button

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API