数据表与 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 报文体建议格式化后再放进场景,便于比对。