Gherkin 是什么
Gherkin 是用业务语言书写可执行验收场景的语法,核心关键词包括 Feature、Background、Scenario、Scenario Outline、Examples、Given、When、Then、And、But。它要求用业务可读的语言描述前置条件、动作与预期结果,把技术细节留给步骤实现,从而让业务、开发与测试围绕同一份文本对齐,并可直接被 Cucumber、SpecFlow、Behave 等框架执行。
示例
示例
Feature: 订单查询
Background:
Given 用户已登录
Scenario: 查询本人订单
When 用户按订单号查询
Then 返回订单详情
Scenario Outline: 查询异常订单
When 用户按订单号 "<id>" 查询
Then 提示 "<error>"
Examples:
| id | error |
| 999999 | 订单不存在 |
| 1001 | 无权限 |基本信息
| 关键词 | Feature、Background、Scenario、Scenario Outline、Examples、Given、When、Then |
|---|---|
| 书写原则 | 用业务语言写步骤,技术细节放在步骤实现中 |
| 常见工具 | Cucumber、SpecFlow、Behave、Robot Framework 等 |
| 维护要点 | 场景与业务规则一一对应,规则变化时同步更新场景 |
| 反模式 | 把每个按钮点击都写成一个步骤,文本退化成脚本 |
典型使用场景
- 验收标准落地:把讨论出的示例写成可执行场景
- 回归测试:业务关键路径以场景形式长期维护
- 跨角色沟通:业务方能读懂场景文本并直接评审
- 文档化行为:场景文本作为系统行为的活文档
- 外包交付:以场景清单约定验收范围与判定标准
- 培训新人:通过读场景快速理解业务规则与边界
Gherkin 场景应描述业务行为而不是界面操作:写“用户提交订单”比写“点击提交按钮”更稳定,界面改版时场景无需跟着修改。
为追求自动化覆盖把场景写成脚本细节,业务方读不懂,文本与自动化代码的双重维护成本会迅速上升。
关键词速查
| 关键词 | 作用 | 示例 |
|---|---|---|
| Feature | 描述被验证的功能与其价值 | 订单查询 |
| Background | 所有场景共用的前置条件 | 用户已登录 |
| Scenario | 一个独立可验证的场景 | 查询本人订单 |
| Scenario Outline | 参数化场景,配合表格批量展开 | 查询异常订单 |
| Examples | 参数表格,每行生成一个用例 | 订单号与预期提示 |
| Then | 预期结果,必须可观察 | 返回订单详情 |