如何正确编写技术Gherkin语句?版本2是否符合最佳实践?
技术Gherkin编写规范与场景优化建议
一、技术Gherkin的编写思路
技术Gherkin核心是将业务场景拆解为可落地执行的操作细节,区别于业务层Gherkin聚焦“做什么”,它更侧重“怎么做”,目的是让步骤能直接对应自动化测试的执行逻辑,或是手动测试的具体操作流程。编写时需遵循几个关键原则:
- 步骤要具备可操作性:每个
When/Then步骤都要明确到具体交互动作(比如写“点击保存按钮”而非“保存记录”) - 拒绝模糊表述:避免“修改任意内容”这类边界不清的描述,要明确操作对象和动作
- 平衡原子性与简洁性:既不要把单一操作拆得过碎,也不要把多个独立操作合并成模糊的复合步骤
二、关于场景版本的最佳实践建议
版本2中使用OR运算符的做法不符合Gherkin最佳实践,原因如下:
- Gherkin的每个场景应该对应单一明确的测试路径,
OR会引入分支逻辑,让一个场景变成多个测试用例的集合,不利于测试执行的精准性和结果排查 - 正确的处理方式是把
OR覆盖的两种操作拆分为两个独立场景,或是用Background/场景大纲复用公共步骤
优化方案1:拆分为独立场景
# 场景1:修改权限复选框后保存更新 Given 用户处于"User groups"面板 And 已选中一个用户组 When 用户点击"Editing of user group"按钮 And "User group edit"窗口弹出 And 用户勾选/取消勾选"PERMISSION"区域的任意复选框 And 点击"Save"按钮 Then 显示确认消息 And 用户组权限已更新 # 场景2:修改用户列表后保存更新 Given 用户处于"User groups"面板 And 已选中一个用户组 When 用户点击"Editing of user group"按钮 And "User group edit"窗口弹出 And 用户修改用户列表中的成员(添加/移除用户) And 点击"Save"按钮 Then 显示确认消息 And 用户组权限已更新
优化方案2:用Background复用公共步骤
Background: 进入用户组编辑页面 Given 用户处于"User groups"面板 And 已选中一个用户组 When 用户点击"Editing of user group"按钮 And "User group edit"窗口弹出 Scenario: 修改权限复选框后保存更新 When 用户勾选/取消勾选"PERMISSION"区域的任意复选框 And 点击"Save"按钮 Then 显示确认消息 And 用户组权限已更新 Scenario: 修改用户列表后保存更新 When 用户修改用户列表中的成员(添加/移除用户) And 点击"Save"按钮 Then 显示确认消息 And 用户组权限已更新
内容的提问来源于stack exchange,提问作者eilenart
相关产品推荐
相关产品推荐

