首页/开发/软件测试速查/数据表与 DocString 表达
用例设计方法62 条

数据表与 DocString 表达

Gherkin 支持用 Data Table 传递结构化数据、用 DocString 传递长文本;两者让步骤参数结构化,适合表单与报文类场景。

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

数据表与 DocString 是什么

Gherkin 用数据表(Data Table)传递结构化数据、用 DocString 传递长文本:两者都是步骤参数的一种形式,让表单、报文类场景的表达更接近数据结构本身。数据表适合少量结构化数据;批次数据建议放外部文件(CSV/JSON),在步骤中引用文件路径。

基本信息

语法载体| 列1 | 列2 | 的表格行;DocString 用三引号包长文本
适用数据少量结构化数据、多行报文、长段文本
类型转换步骤实现里把表格转换为对象、列表或映射
转义规则单元格内竖线写 \|,反斜杠写 \\
与 Outline 区别Examples 是同一场景的多组参数,Data Table 是单场景的一次性数据
大规模数据放外部文件并在步骤中引用路径

数据表与 DocString 示例

数据表与 DocString 示例
Given 创建以下用户:
  | 姓名 | 角色   | 状态 |
  | 张三 | 管理员 | 启用 |
  | 李四 | 访客   | 停用 |

And 提交以下报文:
  """
  { "orderId": 1001, "amount": 88.5 }
  """

# 单元格内竖线需转义;大量数据放外部文件引用

典型使用场景

  • 表单类场景:一次提交多行数据,表格比多个步骤更清晰。
  • 批量接口场景:小批量样本直接内联在场景里。
  • 报文类场景:DocString 保存 JSON/XML 报文体。
  • 配置类前置:用表格描述环境或账号配置。
  • 评审沟通:表格与报文直接可读,业务人员能参与核对。
  • 参数化对比:同一表格数据配合不同场景验证多条路径。

形式与注意

形式用途注意
Data Table多行结构化数据转义特殊字符,控制行数
DocString长文本或报文主体保留缩进与换行语义
Scenario Outline Examples同一场景多组参数与 Data Table 不要混用
外部文件大批量测试数据步骤里引用路径,文件版本化
表格适合少量结构化数据;大批量数据建议放外部文件(CSV/JSON)并在步骤中引用路径。
Data Table 的内容变化轻,Examples 表变化影响参数组合:评审时区分两者的变更成本。
DocString 保留原文缩进:JSON 报文体建议格式化后再放进场景,便于比对。

易错点

  • 表格单元格包含逗号或引号等特殊字符时转义处理不当:竖线与反斜杠按规则转义。
  • 用 Data Table 堆积几十行数据,可读性与维护性下降:超过一屏的数据移到外部文件。
  • 混淆 Data Table 与 Examples:执行数据与参数化混在一起,维护混乱。
  • DocString 里的报文与接口定义脱节:报文变更后同步更新,或改用外部文件引用。

数据来源与参考

  • Cucumber 官方文档《Gherkin Reference》(Data Tables 与 Doc Strings)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌