从 PRD 需求文档(Figma 链接、本地文档或文字描述)中,运用等价类、边界值、场景法、判定表、错误推测等测试方法梳理测试用例,通过 lark-cli 在用户提供的飞书模板表格文档内复制模板工作表并写入。当用户提供需求文档或设计图并要求生成测试点/测试用例时使用。用法参考:帮我写一份测试用例,prd链接为...,飞书模板链接为...。
从 PRD 需求文档生成测试用例(飞书在线表格)是一项面向实际任务的技能,主要用于流程 :前置检查 → 获取需求 → 搭整体结构 → 按测试方法写用例 → 自检 → 写入飞书表格;一、前置检查;
未提供先索要,拿到前不要开。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
流程:前置检查 → 获取需求 → 搭整体结构 → 按测试方法写用例 → 自检 → 写入飞书表格
https://xxx.feishu.cn/sheets/{spreadsheet_token}?sheet={sheet_id}。未提供先索要,拿到前不要开始生成用例。/sheets/ 后的段为 spreadsheet_token,?sheet= 为模板 sheet_id(缺失时询问用哪个工作表)。lark-cli --version;未安装则 npm install -g @larksuite/cli。lark-cli auth status:lark-cli config init --new --lang zh,把输出中的 https://open.feishu.cn/page/cli?user_code=... 链接发给用户,等待完成。lark-cli auth login --recommend,取输出中的授权链接,并用 lark-cli auth qrcode "<链接>" --output qrcode.png 生成二维码,链接 + 二维码一并发给用户,等待完成。auth status 确认 bot/user 均 ready,记下 user 的 openId 与 userName(写执行人用)。--output、@file 只接受当前目录内相对路径;文件内容优先走 stdin(--csv -、--cells -)。get_design_context 获取说明与截图。/design/{fileKey}/ 段为 fileKey;node-id=51033-172112 → nodeId 51033:172112。按以下顺序搭结构,写完一个功能点再写下一个:
| 方法 | 怎么用 |
|---|---|
| 等价类 | 每个输入项/状态/角色拆有效、无效等价类,各至少 1 条;有效预期成功,无效预期提示/拦截 |
| 边界值 | 有范围的取 最小值-1、最小值、中间值、最大值、最大值+1;长度/个数取 空、1、上限、上限+1 |
| 场景法 | 主流程端到端至少 1 条;关键分支(不同角色/状态/选择)各 1 条;前置不满足、顺序颠倒、重复操作各 1 条 |
| 判定表 | 多条件组合影响结果时(组合筛选、多开关叠加),列组合逐条验证 |
| 错误推测(专项异常) | 防抖/重复提交、弱网超时、断网、中途刷新/离开、接口 4xx/5xx、越权与注入、多端并发、无权限/无数据空态 |
专项异常写在对应功能点内;全局性的(整站断网、整站权限)可单独一小节,不重复。
常见控件模板(识别到即至少覆盖,业务独有逻辑在此之上追加):
| 控件 | 至少覆盖 |
|---|---|
| 输入框 | 默认文案、输入回显、长度限制、必填提示 |
| 下拉/级联选择 | 默认状态、选项与层级、选择回显、必填 |
| 图片/文件上传 | 点击上传、格式限制、大小限制、必填与回显 |
| 保存/提交按钮 | 全空点击提示、仅必填保存、全部填完保存、重复点击防抖 |
| 列表/表格+筛选 | 默认排序与分页、单条件筛选、组合筛选、空状态 |
| 列 | 规则 |
|---|---|
| 用例名称 | 统一「验证xxx」 |
| 用例属性 | 主流程/界面/功能/接口 |
| 优先级 | 高/中/低 |
| 前置条件 | 写明页面与数据状态,可据此还原起点;从已登录、有权限之后写起 |
| 操作步骤 | 「在哪里 + 做什么 + 对象/取值」,他人可直接执行 |
| 预期结果 | 可观测可判断(具体文案、条数、状态),禁止只写「正常」「正确」「成功」 |
模板布局:第 1 行表头(A~I 为 模块、测试点、用例名称、用例属性、优先级、前置条件、操作步骤、预期结果、备注,其后为执行时填写列)、第 2 行执行人、第 3 行需求目标,数据从第 4 行开始。写入前用 +csv-get 读模板前 4 行确认,布局不同以实际为准。
1. 复制模板工作表(返回的新 sheet_id 即写入目标;同名已存在时改用「{需求名}-日期」):
lark-cli sheets +sheet-copy --spreadsheet-token {spreadsheet_token}
--sheet-id {模板sheet_id} --title "{需求名}"
2. 写表头信息(A1:B3 一次写入,{} 表示不修改):
echo '[
[{"value":"模块"}, {}],
[{}, {"rich_text":[{"type":"text","text":"测试:用例&一轮执行人:"},{"type":"mention","mention_type":0,"mention_token":"{openId}","text":"@{userName}","notify":false},{"type":"text","text":" 二轮执行人: "}]}],
[{}, {"value":"{需求名}"}]
]' | lark-cli sheets +cells-set --spreadsheet-token {spreadsheet_token}
--sheet-id {新sheet_id} --range "A1:B3" --cells -
3. 写用例数据:先用 Python 把用例组织成 rows(每条一个 list,与 9 列对齐,继承列填 ""),写 CSV(csv.writer 自动转义换行与逗号):
import csv
rows = [
["题目列表-筛选", "题目ID筛选", "验证题目ID筛选-有效ID", "功能", "高",
"列表中存在ID为1001的题目",
"1.进入题目列表页n2.在题目ID输入框输入1001n3.点击查询",
"列表仅展示ID为1001的1条记录", ""],
]
with open('/tmp/cases.csv', 'w', newline='', encoding='utf-8') as f:
csv.writer(f).writerows(rows)
cat /tmp/cases.csv | lark-cli sheets +csv-put
--spreadsheet-token {spreadsheet_token} --sheet-id {新sheet_id} --start-cell A4 --csv -
# 校验返回 updated_range == A4:I{3+用例数}
4. 合并模块/测试点单元格:按 rows 计算 A、B 列连续同组区间(组内首行有值、后续为空,行号 = 数据下标 + 4),对每个跨多行区间执行:
lark-cli sheets +cells-merge --spreadsheet-token {spreadsheet_token}
--sheet-id {新sheet_id} --range "A4:A6"
5. 核对与汇报:+csv-get 回读首尾几行比对,确认数据区后一行为空;汇报新工作表链接 https://xxx.feishu.cn/sheets/{spreadsheet_token}?sheet={新sheet_id}、用例总数、各优先级/属性条数、覆盖的功能点、合并处数;清理临时文件(CSV、二维码等)。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章