首页/开发/软件测试速查/Gherkin Scenario 编写
用例设计方法62 条

Gherkin Scenario 编写

Gherkin 用 Feature、Scenario、Given-When-Then 描述行为:一个 Scenario 表达一条规则或典型示例,供业务与自动化共用。

软件测试速查开发更新于 2026-10-13

Gherkin Scenario 是什么

Gherkin 用 Feature、Scenario、Given-When-Then 描述系统行为:一个 Scenario 表达一条规则或一个典型示例,供业务与自动化共用。Given 描述前置状态,When 描述触发行为,Then 描述可观察的结果;标题与步骤用业务语言写,实现细节留给步骤定义层。场景语言与工具无关:Gherkin 文本可被 Cucumber 等工具解析执行,也可以只作为业务沟通的载体。

基本信息

文件约定.feature 文件,一个 Feature 下多个 Scenario
核心关键词Feature、Scenario、Given、When、Then、And、Background
参数化扩展Scenario Outline 配合 Examples 表驱动多组数据
配套工具Cucumber、Behave 等按步骤绑定代码
常见误用把 Given 写成操作步骤而不是前置状态

典型使用场景

  • 需求澄清:与业务共同把规则写成可评审的场景
  • 自动化骨架:场景文件直接对接步骤定义执行
  • 活文档:场景随产品演进维护,代替过时的说明文档
  • 回归管理:按标签筛选场景组成回归集
  • 三方评审:业务、开发、测试以场景为共同语言对齐边界
  • 验收交付:场景通过与否作为验收依据之一
  • 接口层验收:用同样的场景语言描述 API 行为,前后端共用一套验收口径

示例

示例
Feature: 会员折扣

  Background:
    Given 商品与会员数据已就绪

  Scenario: 会员订单享 9 折
    Given 用户是会员
    And 订单金额为 200 元
    When 提交订单
    Then 应付金额为 180 元
    # 标题写业务规则,步骤避免写按钮位置等实现细节
    # 一个 Scenario 只讲一条规则,多组数据用 Scenario Outline

关键词速查

关键词作用
Given建立前置状态与数据
When描述被触发的行为
Then断言可观察的结果
And/But延续上一个关键词的语义
Background多个场景共享的前置步骤
Scenario 标题用业务语言描述规则;步骤中避免写按钮位置等实现细节,业务人员才能参与评审。
一个 Scenario 只讲一条规则:规则多时拆成多个场景,或用 Scenario Outline 参数化同一规则的多组输入数据。

易错点

  • 步骤写成 UI 操作脚本,业务人员无法评审
  • 一个 Scenario 断言过多规则,失败后无法判断影响范围
  • 步骤复用过度:一个步骤串联太多动作,失败定位困难
  • 把实现细节(选择器、接口字段名)写进场景,界面或接口调整后大量返工
  • Then 写成实现细节(如某张表更新),业务无法理解结果含义,评审流于形式

数据来源与参考

  • Cucumber 官方文档《Gherkin Reference》(cucumber.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌