基础介绍
Gherkin(行为驱动开发语言)是一种业务可读的领域特定语言(DSL),用于描述软件的行为而不涉及具体实现细节,使用Given-When-Then的形式来描述场景,这种格式让业务人员、测试人员和开发人员都能清晰理解需求,连接业务、开发、测试的桥梁,能够有效提升软件开发的质量和效率。
- Given:描述前置条件
- When:描述触发的动作
- Then:描述预期的结果
举例说明
以一个电商系统的购物车功能为例说明Gherkin是如何应用的,
- 基本购物车功能场景:
Feature: 购物车功能
作为一个在线商城用户
我想要管理我的购物车
以便能够购买我想要的商品
Scenario: 添加商品到购物车
Given 用户已经登录系统
And 用户正在浏览商品详情页
And 商品"iPhone 14"库存为10件
When 用户点击"加入购物车"按钮
And 选择数量为2件
Then 购物车中应该新增"iPhone 14" 2件
And 系统显示"添加成功"的提示信息
And 购物车图标上显示商品总数为2
Scenario: 购物车商品数量超出库存
Given 用户已经登录系统
And 商品"iPhone 14"库存为5件
When 用户尝试添加6件到购物车
Then 系统应该显示"库存不足"的错误提示
And 购物车商品数量不变
- 结算流程场景:
Feature: 购物车结算
作为一个购物者
我想要结算购物车中的商品
以便完成购买流程
Scenario Outline: 使用不同支付方式结算
Given 用户的购物车中有商品
And 总金额为"<总金额>"元
When 用户选择"<支付方式>"支付
Then 系统显示支付二维码
And 订单状态更新为"待支付"
Examples:
| 支付方式 | 总金额 |
| 支付宝 | 1000 |
| 微信支付 | 1000 |
Gherkin场景的特点:
- 清晰的结构
- 每个Feature都有明确的目标
- 场景描述具体且可测试
- 使用自然语言描述业务规则
- 完整的测试覆盖
- 包含正常流程
- 包含异常情况
- 包含边界条件
- 业务价值明确
- 从用户角度描述功能
- 清晰表达业务规则
- 便于沟通和理解
- 可执行性强
- 场景可直接转化为自动化测试
- 步骤明确可操作
- 结果可验证