Commit b8b4c69c authored by liguangyu06's avatar liguangyu06
Browse files

新增产品管理全链路自动化资产,并修复详情层/树页/路径串页等稳定问题。

parent 297e887d
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-QOV-001,基础设置 · 产品管理,产品资质一览 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-QOV-002,基础设置 · 产品管理,产品资质一览 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-QOV-003,基础设置 · 产品管理,产品资质一览 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):产品、资质齐全状态、证照相关列(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-QOV-004,基础设置 · 产品管理,产品资质一览 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-QOV-005,基础设置 · 产品管理,产品资质一览 · 行内操作,行内「查看」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「查看」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「查看」可达;关闭后回到列表。,
PRODM-QOV-006,基础设置 · 产品管理,产品资质一览 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-QOV-007,基础设置 · 产品管理,产品资质一览 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-QOV-008,基础设置 · 产品管理,产品资质一览 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-QOV-009,基础设置 · 产品管理,产品资质一览 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-QOV-010,基础设置 · 产品管理,产品资质一览 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
PRODM-QOV-011,基础设置 · 产品管理,产品资质一览 · 资质判断结果,打开「资质判断结果」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview),"1. 确认已加载 storageState(test_1)
2. 点击「资质判断结果」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「资质判断结果」层打开;关键控件可见。,
PRODM-QOV-012,基础设置 · 产品管理,产品资质一览 · 资质判断结果,「资质判断结果」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview),"1. 确认已加载 storageState(test_1)
2. 打开「资质判断结果」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-QOV-013,基础设置 · 产品管理,产品资质一览 · 资质判断结果,「资质判断结果」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质一览」权限;已进入产品资质一览页(/spd/basic/goods/product/overview);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「资质判断结果」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-QRL-001,基础设置 · 产品管理,产品资质齐全规则 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-QRL-002,基础设置 · 产品管理,产品资质齐全规则 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-QRL-003,基础设置 · 产品管理,产品资质齐全规则 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):规则名称、适用范围、齐全判定条件等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-QRL-004,基础设置 · 产品管理,产品资质齐全规则 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-QRL-005,基础设置 · 产品管理,产品资质齐全规则 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-QRL-006,基础设置 · 产品管理,产品资质齐全规则 · 行内操作,行内「日志」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「日志」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「日志」可达;关闭后回到列表。,
PRODM-QRL-007,基础设置 · 产品管理,产品资质齐全规则 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-QRL-008,基础设置 · 产品管理,产品资质齐全规则 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-QRL-009,基础设置 · 产品管理,产品资质齐全规则 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-QRL-010,基础设置 · 产品管理,产品资质齐全规则 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-QRL-011,基础设置 · 产品管理,产品资质齐全规则 · 新增,打开「新增」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules),"1. 确认已加载 storageState(test_1)
2. 点击「新增」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「新增」层打开;关键控件可见。,
PRODM-QRL-012,基础设置 · 产品管理,产品资质齐全规则 · 新增,「新增」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules),"1. 确认已加载 storageState(test_1)
2. 打开「新增」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-QRL-013,基础设置 · 产品管理,产品资质齐全规则 · 新增,「新增」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 产品资质齐全规则」权限;已进入产品资质齐全规则页(/spd/basic/goods/product/rules);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「新增」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-CHD-001,基础设置 · 产品管理,变更单明细查询 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-CHD-002,基础设置 · 产品管理,变更单明细查询 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-CHD-003,基础设置 · 产品管理,变更单明细查询 · 查询条件展开收起,展开后更多条件可见,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change),"1. 确认已加载 storageState(test_1)
2. 点击「展开」
3. 断言额外筛选字段进入可视区且可填写
4. 按钮文案变为「收起」",展开后更多条件可见并可交互。,
PRODM-CHD-004,基础设置 · 产品管理,变更单明细查询 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):变更单号、产品、变更字段、时间等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-CHD-005,基础设置 · 产品管理,变更单明细查询 · 列表,物料名称列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「物料名称」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序指示器与方向一致;列表仍有数据。,
PRODM-CHD-006,基础设置 · 产品管理,变更单明细查询 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-CHD-007,基础设置 · 产品管理,变更单明细查询 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-CHD-008,基础设置 · 产品管理,变更单明细查询 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-CHD-009,基础设置 · 产品管理,变更单明细查询 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-CHD-010,基础设置 · 产品管理,变更单明细查询 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 变更单明细查询」权限;已进入变更单明细查询页(/spd/basic/goods/platform/change),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-PPC-001,基础设置 · 产品管理,外围系统产品变更管理 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-PPC-002,基础设置 · 产品管理,外围系统产品变更管理 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-PPC-003,基础设置 · 产品管理,外围系统产品变更管理 · 查询条件展开收起,展开后更多条件可见,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange),"1. 确认已加载 storageState(test_1)
2. 点击「展开」
3. 断言额外筛选字段进入可视区且可填写
4. 按钮文案变为「收起」",展开后更多条件可见并可交互。,
PRODM-PPC-004,基础设置 · 产品管理,外围系统产品变更管理 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):变更类型、产品、外围字段等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-PPC-005,基础设置 · 产品管理,外围系统产品变更管理 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-PPC-006,基础设置 · 产品管理,外围系统产品变更管理 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-PPC-007,基础设置 · 产品管理,外围系统产品变更管理 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-PPC-008,基础设置 · 产品管理,外围系统产品变更管理 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-PPC-009,基础设置 · 产品管理,外围系统产品变更管理 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-PPC-010,基础设置 · 产品管理,外围系统产品变更管理 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品变更管理」权限;已进入外围系统产品变更管理页(/spd/basic/goods/interface/peripheralChange);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-PPA-001,基础设置 · 产品管理,外围系统产品新增 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-PPA-002,基础设置 · 产品管理,外围系统产品新增 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-PPA-003,基础设置 · 产品管理,外围系统产品新增 · 查询条件展开收起,展开后更多条件可见,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 点击「展开」
3. 断言额外筛选字段进入可视区且可填写
4. 按钮文案变为「收起」",展开后更多条件可见并可交互。,
PRODM-PPA-004,基础设置 · 产品管理,外围系统产品新增 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):外围系统产品、推送状态等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-PPA-005,基础设置 · 产品管理,外围系统产品新增 · 列表,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内操作可达;关闭后回到列表。,
PRODM-PPA-006,基础设置 · 产品管理,外围系统产品新增 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-PPA-007,基础设置 · 产品管理,外围系统产品新增 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-PPA-008,基础设置 · 产品管理,外围系统产品新增 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-PPA-009,基础设置 · 产品管理,外围系统产品新增 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-PPA-010,基础设置 · 产品管理,外围系统产品新增 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
PRODM-PPA-011,基础设置 · 产品管理,外围系统产品新增 · 批量推送,打开「批量推送」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 点击「批量推送」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「批量推送」层打开;关键控件可见。,
PRODM-PPA-012,基础设置 · 产品管理,外围系统产品新增 · 批量推送,「批量推送」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem),"1. 确认已加载 storageState(test_1)
2. 打开「批量推送」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-PPA-013,基础设置 · 产品管理,外围系统产品新增 · 批量推送,「批量推送」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 外围系统产品新增」权限;已进入外围系统产品新增页(/spd/basic/goods/interface/peripheralSystem);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「批量推送」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-MCH-001,基础设置 · 产品管理,物料信息变更 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-MCH-002,基础设置 · 产品管理,物料信息变更 · 高级筛选抽屉,全量查询条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
3. 快捷区填入样本中有值的可见字段
4. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
5. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段",查询正常无报错;查询条件写值正常;查询结果与查询条件一致。,
PRODM-MCH-003,基础设置 · 产品管理,物料信息变更 · 高级筛选抽屉,点击高级筛选打开抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 点击「高级筛选」
3. 断言抽屉标题为「高级筛选」,关键字段可交互
4. 关闭抽屉,快捷区条件不被误清空(以现网为准)",高级筛选抽屉可打开并关闭。,
PRODM-MCH-004,基础设置 · 产品管理,物料信息变更 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):单号、制单时间、状态、物料变更摘要等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-MCH-005,基础设置 · 产品管理,物料信息变更 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-MCH-006,基础设置 · 产品管理,物料信息变更 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-MCH-007,基础设置 · 产品管理,物料信息变更 · 行内操作,行内「日志」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「日志」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「日志」可达;关闭后回到列表。,
PRODM-MCH-008,基础设置 · 产品管理,物料信息变更 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
PRODM-MCH-009,基础设置 · 产品管理,物料信息变更 · 列表,横向滚动与列对齐,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);列表有数据且列超出视口,否则 skip,"1. 确认已加载 storageState(test_1)
2. 宽表场景下横向滚动使远侧列进入视口
3. 断言表头列数与数据列数一致、对齐无重叠",远侧列可进入视口;表头与数据列对齐。,
PRODM-MCH-010,基础设置 · 产品管理,物料信息变更 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-MCH-011,基础设置 · 产品管理,物料信息变更 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-MCH-012,基础设置 · 产品管理,物料信息变更 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-MCH-013,基础设置 · 产品管理,物料信息变更 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-MCH-014,基础设置 · 产品管理,物料信息变更 · 打印,按当前条件打印,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 点击「打 印」或「打印产品码」等页面级打印入口
3. 断言可拉起对话框/预览/toast,无 error",打印流程可启动。,
PRODM-MCH-015,基础设置 · 产品管理,物料信息变更 · 新增,打开「新增」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 点击「新增」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「新增」层打开;关键控件可见。,
PRODM-MCH-016,基础设置 · 产品管理,物料信息变更 · 新增,「新增」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info),"1. 确认已加载 storageState(test_1)
2. 打开「新增」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-MCH-017,基础设置 · 产品管理,物料信息变更 · 新增,「新增」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息变更」权限;已进入物料信息变更页(/spd/basic/goods/platform/zr-product-info);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「新增」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-MAT-001,基础设置 · 产品管理,物料信息管理 · 左侧耗材分类树,树默认有选中或可展开节点,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 断言左侧耗材分类树可见且有选中或可展开节点
3. 读取选中节点名称 `${sampleTreeNode}`
4. 断言右侧列表/表单与当前节点范围一致或为空态",树有选中;右侧不展示其它节点数据为成功态。,
PRODM-MAT-002,基础设置 · 产品管理,物料信息管理 · 左侧耗材分类树,切换树节点刷新右侧,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 记录当前节点与右侧首行(若有)
3. 点选另一树节点(仅 1 个则 skip)
4. 断言右侧数据范围切换,不残留上一节点首行",切换节点后右侧刷新。,
PRODM-MAT-003,基础设置 · 产品管理,物料信息管理 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-MAT-004,基础设置 · 产品管理,物料信息管理 · 高级筛选抽屉,全量查询条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
3. 快捷区填入样本中有值的可见字段
4. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
5. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段",查询正常无报错;查询条件写值正常;查询结果与查询条件一致。,
PRODM-MAT-005,基础设置 · 产品管理,物料信息管理 · 高级筛选抽屉,点击高级筛选打开抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 点击「高级筛选」
3. 断言抽屉标题为「高级筛选」,关键字段可交互
4. 关闭抽屉,快捷区条件不被误清空(以现网为准)",高级筛选抽屉可打开并关闭。,
PRODM-MAT-006,基础设置 · 产品管理,物料信息管理 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):HIS编码、阳采ID、规格型号、单位、耗材类型、品牌、医保相关编码等
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-MAT-007,基础设置 · 产品管理,物料信息管理 · 列表,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内操作可达;关闭后回到列表。,
PRODM-MAT-008,基础设置 · 产品管理,物料信息管理 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
PRODM-MAT-009,基础设置 · 产品管理,物料信息管理 · 列表,横向滚动与列对齐,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog);列表有数据且列超出视口,否则 skip,"1. 确认已加载 storageState(test_1)
2. 宽表场景下横向滚动使远侧列进入视口
3. 断言表头列数与数据列数一致、对齐无重叠",远侧列可进入视口;表头与数据列对齐。,
PRODM-MAT-010,基础设置 · 产品管理,物料信息管理 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-MAT-011,基础设置 · 产品管理,物料信息管理 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-MAT-012,基础设置 · 产品管理,物料信息管理 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-MAT-013,基础设置 · 产品管理,物料信息管理 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-MAT-014,基础设置 · 产品管理,物料信息管理 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
PRODM-MAT-015,基础设置 · 产品管理,物料信息管理 · 添加,打开「添加」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 点击「添加」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「添加」层打开;关键控件可见。,
PRODM-MAT-016,基础设置 · 产品管理,物料信息管理 · 添加,「添加」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog),"1. 确认已加载 storageState(test_1)
2. 打开「添加」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-MAT-017,基础设置 · 产品管理,物料信息管理 · 添加,「添加」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料信息管理」权限;已进入物料信息管理页(/spd/basic/goods/paltform/product/zrcalatog);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「添加」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-MCD-001,基础设置 · 产品管理,物料变更单明细查询 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-MCD-002,基础设置 · 产品管理,物料变更单明细查询 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-MCD-003,基础设置 · 产品管理,物料变更单明细查询 · 查询条件展开收起,展开后更多条件可见,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange),"1. 确认已加载 storageState(test_1)
2. 点击「展开」
3. 断言额外筛选字段进入可视区且可填写
4. 按钮文案变为「收起」",展开后更多条件可见并可交互。,
PRODM-MCD-004,基础设置 · 产品管理,物料变更单明细查询 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):变更单号、物料、变更字段、时间等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-MCD-005,基础设置 · 产品管理,物料变更单明细查询 · 列表,物料编号列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「物料编号」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序指示器与方向一致;列表仍有数据。,
PRODM-MCD-006,基础设置 · 产品管理,物料变更单明细查询 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-MCD-007,基础设置 · 产品管理,物料变更单明细查询 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-MCD-008,基础设置 · 产品管理,物料变更单明细查询 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-MCD-009,基础设置 · 产品管理,物料变更单明细查询 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-MCD-010,基础设置 · 产品管理,物料变更单明细查询 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 物料变更单明细查询」权限;已进入物料变更单明细查询页(/spd/basic/goods/platform/zrchange),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-STL-001,基础设置 · 产品管理,结算点设置 · 左侧规则目录树,树默认有选中或可展开节点,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules),"1. 确认已加载 storageState(test_1)
2. 断言左侧规则目录树可见且有选中或可展开节点
3. 读取选中节点名称 `${sampleTreeNode}`
4. 断言右侧列表/表单与当前节点范围一致或为空态",树有选中;右侧不展示其它节点数据为成功态。,
PRODM-STL-002,基础设置 · 产品管理,结算点设置 · 左侧规则目录树,切换树节点刷新右侧,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules),"1. 确认已加载 storageState(test_1)
2. 记录当前节点与右侧首行(若有)
3. 点选另一树节点(仅 1 个则 skip)
4. 断言右侧数据范围切换,不残留上一节点首行",切换节点后右侧刷新。,
PRODM-STL-003,基础设置 · 产品管理,结算点设置 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-STL-004,基础设置 · 产品管理,结算点设置 · 高级筛选抽屉,全量查询条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
3. 快捷区填入样本中有值的可见字段
4. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
5. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段",查询正常无报错;查询条件写值正常;查询结果与查询条件一致。,
PRODM-STL-005,基础设置 · 产品管理,结算点设置 · 高级筛选抽屉,点击高级筛选打开抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules),"1. 确认已加载 storageState(test_1)
2. 点击「高级筛选」
3. 断言抽屉标题为「高级筛选」,关键字段可交互
4. 关闭抽屉,快捷区条件不被误清空(以现网为准)",高级筛选抽屉可打开并关闭。,
PRODM-STL-006,基础设置 · 产品管理,结算点设置 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):结算点规则、院区/产品范围等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-STL-007,基础设置 · 产品管理,结算点设置 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-STL-008,基础设置 · 产品管理,结算点设置 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-STL-009,基础设置 · 产品管理,结算点设置 · 行内操作,行内「日志」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「日志」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「日志」可达;关闭后回到列表。,
PRODM-STL-010,基础设置 · 产品管理,结算点设置 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
PRODM-STL-011,基础设置 · 产品管理,结算点设置 · 列表,结算规则列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「结算规则」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序指示器与方向一致;列表仍有数据。,
PRODM-STL-012,基础设置 · 产品管理,结算点设置 · 列表,横向滚动与列对齐,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);列表有数据且列超出视口,否则 skip,"1. 确认已加载 storageState(test_1)
2. 宽表场景下横向滚动使远侧列进入视口
3. 断言表头列数与数据列数一致、对齐无重叠",远侧列可进入视口;表头与数据列对齐。,
PRODM-STL-013,基础设置 · 产品管理,结算点设置 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-STL-014,基础设置 · 产品管理,结算点设置 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-STL-015,基础设置 · 产品管理,结算点设置 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-STL-016,基础设置 · 产品管理,结算点设置 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 结算点设置」权限;已进入结算点设置页(/spd/basic/goods/platform/settle/rules);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-STD-001,基础设置 · 产品管理,缺货目录明细 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-STD-002,基础设置 · 产品管理,缺货目录明细 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-STD-003,基础设置 · 产品管理,缺货目录明细 · 查询条件展开收起,展开后更多条件可见,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 点击「展开」
3. 断言额外筛选字段进入可视区且可填写
4. 按钮文案变为「收起」",展开后更多条件可见并可交互。,
PRODM-STD-004,基础设置 · 产品管理,缺货目录明细 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):缺货明细、替代产品相关列(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-STD-005,基础设置 · 产品管理,缺货目录明细 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-STD-006,基础设置 · 产品管理,缺货目录明细 · 行内操作,行内「查看」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「查看」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「查看」可达;关闭后回到列表。,
PRODM-STD-007,基础设置 · 产品管理,缺货目录明细 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-STD-008,基础设置 · 产品管理,缺货目录明细 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-STD-009,基础设置 · 产品管理,缺货目录明细 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-STD-010,基础设置 · 产品管理,缺货目录明细 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-STD-011,基础设置 · 产品管理,缺货目录明细 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
PRODM-STD-012,基础设置 · 产品管理,缺货目录明细 · 打印,按当前条件打印,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 点击「打 印」或「打印产品码」等页面级打印入口
3. 断言可拉起对话框/预览/toast,无 error",打印流程可启动。,
PRODM-STD-013,基础设置 · 产品管理,缺货目录明细 · 替代产品,打开「替代产品」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 点击「替代产品」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「替代产品」层打开;关键控件可见。,
PRODM-STD-014,基础设置 · 产品管理,缺货目录明细 · 替代产品,「替代产品」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList),"1. 确认已加载 storageState(test_1)
2. 打开「替代产品」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-STD-015,基础设置 · 产品管理,缺货目录明细 · 替代产品,「替代产品」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录明细」权限;已进入缺货目录明细页(/spd/basic/goods/paltform/stockoutList);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「替代产品」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-STO-001,基础设置 · 产品管理,缺货目录维护 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-STO-002,基础设置 · 产品管理,缺货目录维护 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-STO-003,基础设置 · 产品管理,缺货目录维护 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):缺货产品、维护状态、替代品等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-STO-004,基础设置 · 产品管理,缺货目录维护 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-STO-005,基础设置 · 产品管理,缺货目录维护 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-STO-006,基础设置 · 产品管理,缺货目录维护 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-STO-007,基础设置 · 产品管理,缺货目录维护 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-STO-008,基础设置 · 产品管理,缺货目录维护 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-STO-009,基础设置 · 产品管理,缺货目录维护 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-STO-010,基础设置 · 产品管理,缺货目录维护 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
PRODM-STO-011,基础设置 · 产品管理,缺货目录维护 · 缺货信息维护,打开「缺货信息维护」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement),"1. 确认已加载 storageState(test_1)
2. 点击「缺货信息维护」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「缺货信息维护」层打开;关键控件可见。,
PRODM-STO-012,基础设置 · 产品管理,缺货目录维护 · 缺货信息维护,「缺货信息维护」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement),"1. 确认已加载 storageState(test_1)
2. 打开「缺货信息维护」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-STO-013,基础设置 · 产品管理,缺货目录维护 · 缺货信息维护,「缺货信息维护」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 缺货目录维护」权限;已进入缺货目录维护页(/spd/basic/goods/paltform/stockoutManagement);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「缺货信息维护」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-RCH-001,基础设置 · 产品管理,请领出库渠道设置 · 左侧规则目录树,树默认有选中或可展开节点,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules),"1. 确认已加载 storageState(test_1)
2. 断言左侧规则目录树可见且有选中或可展开节点
3. 读取选中节点名称 `${sampleTreeNode}`
4. 断言右侧列表/表单与当前节点范围一致或为空态",树有选中;右侧不展示其它节点数据为成功态。,
PRODM-RCH-002,基础设置 · 产品管理,请领出库渠道设置 · 左侧规则目录树,切换树节点刷新右侧,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules),"1. 确认已加载 storageState(test_1)
2. 记录当前节点与右侧首行(若有)
3. 点选另一树节点(仅 1 个则 skip)
4. 断言右侧数据范围切换,不残留上一节点首行",切换节点后右侧刷新。,
PRODM-RCH-003,基础设置 · 产品管理,请领出库渠道设置 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-RCH-004,基础设置 · 产品管理,请领出库渠道设置 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
PRODM-RCH-005,基础设置 · 产品管理,请领出库渠道设置 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):渠道规则、院区/库区、产品范围等(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-RCH-006,基础设置 · 产品管理,请领出库渠道设置 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-RCH-007,基础设置 · 产品管理,请领出库渠道设置 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-RCH-008,基础设置 · 产品管理,请领出库渠道设置 · 行内操作,行内「日志」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「日志」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「日志」可达;关闭后回到列表。,
PRODM-RCH-009,基础设置 · 产品管理,请领出库渠道设置 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
PRODM-RCH-010,基础设置 · 产品管理,请领出库渠道设置 · 列表,横向滚动与列对齐,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);列表有数据且列超出视口,否则 skip,"1. 确认已加载 storageState(test_1)
2. 宽表场景下横向滚动使远侧列进入视口
3. 断言表头列数与数据列数一致、对齐无重叠",远侧列可进入视口;表头与数据列对齐。,
PRODM-RCH-011,基础设置 · 产品管理,请领出库渠道设置 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-RCH-012,基础设置 · 产品管理,请领出库渠道设置 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-RCH-013,基础设置 · 产品管理,请领出库渠道设置 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-RCH-014,基础设置 · 产品管理,请领出库渠道设置 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-RCH-015,基础设置 · 产品管理,请领出库渠道设置 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 请领出库渠道设置」权限;已进入请领出库渠道设置页(/spd/basic/goods/platform/apply/rules),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-PAD-001,基础设置 · 产品管理,调价管理 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-PAD-002,基础设置 · 产品管理,调价管理 · 高级筛选抽屉,全量查询条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
3. 快捷区填入样本中有值的可见字段
4. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
5. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段",查询正常无报错;查询条件写值正常;查询结果与查询条件一致。,
PRODM-PAD-003,基础设置 · 产品管理,调价管理 · 高级筛选抽屉,点击高级筛选打开抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 点击「高级筛选」
3. 断言抽屉标题为「高级筛选」,关键字段可交互
4. 关闭抽屉,快捷区条件不被误清空(以现网为准)",高级筛选抽屉可打开并关闭。,
PRODM-PAD-004,基础设置 · 产品管理,调价管理 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):单号、制单/计划/实际生效时间、备注、状态、销售商、供应商等
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-PAD-005,基础设置 · 产品管理,调价管理 · 行内操作,行内「再次调价」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「再次调价」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「再次调价」可达;关闭后回到列表。,
PRODM-PAD-006,基础设置 · 产品管理,调价管理 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-PAD-007,基础设置 · 产品管理,调价管理 · 行内操作,行内「打印」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「打印」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「打印」可达;关闭后回到列表。,
PRODM-PAD-008,基础设置 · 产品管理,调价管理 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
PRODM-PAD-009,基础设置 · 产品管理,调价管理 · 列表,横向滚动与列对齐,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);列表有数据且列超出视口,否则 skip,"1. 确认已加载 storageState(test_1)
2. 宽表场景下横向滚动使远侧列进入视口
3. 断言表头列数与数据列数一致、对齐无重叠",远侧列可进入视口;表头与数据列对齐。,
PRODM-PAD-010,基础设置 · 产品管理,调价管理 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-PAD-011,基础设置 · 产品管理,调价管理 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-PAD-012,基础设置 · 产品管理,调价管理 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-PAD-013,基础设置 · 产品管理,调价管理 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-PAD-014,基础设置 · 产品管理,调价管理 · 打印,按当前条件打印,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 点击「打 印」或「打印产品码」等页面级打印入口
3. 断言可拉起对话框/预览/toast,无 error",打印流程可启动。,
PRODM-PAD-015,基础设置 · 产品管理,调价管理 · 新增,打开「新增」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 点击「新增」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「新增」层打开;关键控件可见。,
PRODM-PAD-016,基础设置 · 产品管理,调价管理 · 新增,「新增」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price),"1. 确认已加载 storageState(test_1)
2. 打开「新增」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-PAD-017,基础设置 · 产品管理,调价管理 · 新增,「新增」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 调价管理」权限;已进入调价管理页(/spd/basic/goods/platform/price);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「新增」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-CAM-001,基础设置 · 产品管理,院区产品设置 · 左侧请领下发库区树,树默认有选中或可展开节点,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 断言左侧请领下发库区树可见且有选中或可展开节点
3. 读取选中节点名称 `${sampleTreeNode}`
4. 断言右侧列表/表单与当前节点范围一致或为空态",树有选中;右侧不展示其它节点数据为成功态。,
PRODM-CAM-002,基础设置 · 产品管理,院区产品设置 · 左侧请领下发库区树,切换树节点刷新右侧,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 记录当前节点与右侧首行(若有)
3. 点选另一树节点(仅 1 个则 skip)
4. 断言右侧数据范围切换,不残留上一节点首行",切换节点后右侧刷新。,
PRODM-CAM-003,基础设置 · 产品管理,院区产品设置 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-CAM-004,基础设置 · 产品管理,院区产品设置 · 高级筛选抽屉,全量查询条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
3. 快捷区填入样本中有值的可见字段
4. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
5. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段",查询正常无报错;查询条件写值正常;查询结果与查询条件一致。,
PRODM-CAM-005,基础设置 · 产品管理,院区产品设置 · 高级筛选抽屉,点击高级筛选打开抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 点击「高级筛选」
3. 断言抽屉标题为「高级筛选」,关键字段可交互
4. 关闭抽屉,快捷区条件不被误清空(以现网为准)",高级筛选抽屉可打开并关闭。,
PRODM-CAM-006,基础设置 · 产品管理,院区产品设置 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):规格型号、耗材类型、默认上架货位、单位、库存上下限、单元含量、状态等
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-CAM-007,基础设置 · 产品管理,院区产品设置 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-CAM-008,基础设置 · 产品管理,院区产品设置 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-CAM-009,基础设置 · 产品管理,院区产品设置 · 行内操作,行内「日志」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「日志」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「日志」可达;关闭后回到列表。,
PRODM-CAM-010,基础设置 · 产品管理,院区产品设置 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
PRODM-CAM-011,基础设置 · 产品管理,院区产品设置 · 列表,横向滚动与列对齐,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);列表有数据且列超出视口,否则 skip,"1. 确认已加载 storageState(test_1)
2. 宽表场景下横向滚动使远侧列进入视口
3. 断言表头列数与数据列数一致、对齐无重叠",远侧列可进入视口;表头与数据列对齐。,
PRODM-CAM-012,基础设置 · 产品管理,院区产品设置 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-CAM-013,基础设置 · 产品管理,院区产品设置 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-CAM-014,基础设置 · 产品管理,院区产品设置 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-CAM-015,基础设置 · 产品管理,院区产品设置 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-CAM-016,基础设置 · 产品管理,院区产品设置 · 导入医院产品,打开「导入医院产品」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 点击「导入医院产品」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「导入医院产品」层打开;关键控件可见。,
PRODM-CAM-017,基础设置 · 产品管理,院区产品设置 · 导入医院产品,「导入医院产品」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 打开「导入医院产品」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-CAM-018,基础设置 · 产品管理,院区产品设置 · 导入医院产品,「导入医院产品」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「导入医院产品」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
PRODM-CAM-019,基础设置 · 产品管理,院区产品设置 · 一键导入,打开「一键导入」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 点击「一键导入」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「一键导入」层打开;关键控件可见。,
PRODM-CAM-020,基础设置 · 产品管理,院区产品设置 · 一键导入,「一键导入」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 打开「一键导入」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-CAM-021,基础设置 · 产品管理,院区产品设置 · 一键导入,「一键导入」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「一键导入」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
PRODM-CAM-022,基础设置 · 产品管理,院区产品设置 · 批量调整,打开「批量调整」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 点击「批量调整」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「批量调整」层打开;关键控件可见。,
PRODM-CAM-023,基础设置 · 产品管理,院区产品设置 · 批量调整,「批量调整」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog),"1. 确认已加载 storageState(test_1)
2. 打开「批量调整」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-CAM-024,基础设置 · 产品管理,院区产品设置 · 批量调整,「批量调整」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区产品设置」权限;已进入院区产品设置页(/spd/basic/goods/paltform/area/calatog);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「批量调整」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
PRODM-UPK-001,基础设置 · 产品管理,院区单元包设置 · 快捷筛选查询,快捷区重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 任意填写快捷区可见字段后点击「重 置」
3. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)",重置后条件恢复默认;页面无报错。,
PRODM-UPK-002,基础设置 · 产品管理,院区单元包设置 · 高级筛选抽屉,全量查询条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
3. 快捷区填入样本中有值的可见字段
4. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
5. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段",查询正常无报错;查询条件写值正常;查询结果与查询条件一致。,
PRODM-UPK-003,基础设置 · 产品管理,院区单元包设置 · 高级筛选抽屉,点击高级筛选打开抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 点击「高级筛选」
3. 断言抽屉标题为「高级筛选」,关键字段可交互
4. 关闭抽屉,快捷区条件不被误清空(以现网为准)",高级筛选抽屉可打开并关闭。,
PRODM-UPK-004,基础设置 · 产品管理,院区单元包设置 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 断言表头含核心列(抽样):单元包名称/编码、院区、产品含量相关列(以现网为准)
3. 若有数据,抽样首行关键字段非空",核心列完整;列表结构正确。,
PRODM-UPK-005,基础设置 · 产品管理,院区单元包设置 · 行内操作,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「详情」可达;关闭后回到列表。,
PRODM-UPK-006,基础设置 · 产品管理,院区单元包设置 · 行内操作,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「编辑」可达;关闭后回到列表。,
PRODM-UPK-007,基础设置 · 产品管理,院区单元包设置 · 行内操作,行内「日志」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「日志」
3. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
4. 关闭弹层或点返回,列表仍可见",行内「日志」可达;关闭后回到列表。,
PRODM-UPK-008,基础设置 · 产品管理,院区单元包设置 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
PRODM-UPK-009,基础设置 · 产品管理,院区单元包设置 · 列表,横向滚动与列对齐,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);列表有数据且列超出视口,否则 skip,"1. 确认已加载 storageState(test_1)
2. 宽表场景下横向滚动使远侧列进入视口
3. 断言表头列数与数据列数一致、对齐无重叠",远侧列可进入视口;表头与数据列对齐。,
PRODM-UPK-010,基础设置 · 产品管理,院区单元包设置 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
PRODM-UPK-011,基础设置 · 产品管理,院区单元包设置 · 分页,有数据时总条数,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 默认查询后读取「共 N 条」
3. 断言 N 与本次查询匹配条数规则一致(有数据或 0)",「共 N 条」与查询结果一致。,
PRODM-UPK-012,基础设置 · 产品管理,院区单元包设置 · 分页,切换至第 2 页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
PRODM-UPK-013,基础设置 · 产品管理,院区单元包设置 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)","1. 确认已加载 storageState(test_1)
2. 记录「共 N 条」与当前页可见行数
3. 打开每页条数下拉,选择「20 条/页」
4. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同",每页条数切换生效;总数不变;列表同步。,
PRODM-UPK-014,基础设置 · 产品管理,院区单元包设置 · 导出,当前查询条件下导出,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 先执行一次查询
3. 点击「导 出」或「导出」或「导出Excel」
4. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
PRODM-UPK-015,基础设置 · 产品管理,院区单元包设置 · 新增,打开「新增」对应弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 点击「新增」或等价入口
3. 断言弹窗/抽屉/详情可见,关键字段可交互
4. 可见取消/关闭/返回",「新增」层打开;关键控件可见。,
PRODM-UPK-016,基础设置 · 产品管理,院区单元包设置 · 新增,「新增」取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit),"1. 确认已加载 storageState(test_1)
2. 打开「新增」,任意填写非空后点击「取 消」或关闭
3. 断言弹层关闭,列表行数与打开前一致(抽样)",取消后列表无新增/无修改。,
PRODM-UPK-017,基础设置 · 产品管理,院区单元包设置 · 新增,「新增」必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 产品管理 → 院区单元包设置」权限;已进入院区单元包设置页(/spd/basic/goods/paltform/area/unit);该层存在必填提交,否则 skip,"1. 确认已加载 storageState(test_1)
2. 打开「新增」,必填项留空后点击「确 定」
3. 断言出现必填提示,弹层仍打开,列表不刷新为成功态",确定被拦截;不落库。,
# 基础管理-产品管理-中心库上下限建议 UI 自动化测试用例
**来源测试点**:`testpoint/基础管理-产品管理-中心库上下限建议-测试点分析-01.md`
**执行 CSV**:`testcase/基础管理-产品管理-中心库上下限建议-UI自动化测试用例-01.csv`
**页面 URL**:`/spd/basic/goods/paltform/product/centerLimit`
**定位器 YAML**:`locators/spd/prodm-center-limit.locator.yaml`
**元素扫描**:`data/scan/prodm-center-limit-elements.json`(130 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-PRODM-011.md`
**版本**:2026-11-04
**自动化框架**:Playwright + TypeScript(规划 `tests/spd/prodm-center-limit.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:正例账号 `test_1` + `storageState`;具备「基础设置 → 产品管理 → 中心库上下限建议」权限。
**页面约定**:整页渲染;定位在 `page` 上。
**隔离**:每用例独立 context(playwright-storage-state-isolation)。
**菜单导航**:菜单「基础设置 → 产品管理 → 中心库上下限建议」;`openPath('/spd/basic/goods/paltform/product/centerLimit')` 并断言 URL,勿误入兄弟页。
**写操作**:写操作仅打开弹层后取消或做必填拦截,不提交成功落库;导出/打印不校验文件内容。
**动态取数**:查询后从首行读取 `${sampleCode}`/`${sampleName}`;mock:`__NOT_EXIST_PRODM__99999`。
---
## 基础设置 · 产品管理
### 中心库上下限建议 · 快捷筛选查询
#### 功能验证点
##### 【P1】【TC-UI-PRODM-CLM-001】【TP_PRODM_CLM_005】快捷区重置恢复默认
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 任意填写快捷区可见字段后点击「重 置」
2. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)
- 自动化断言:规划与 CSV `PRODM-CLM-001` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
重置后条件恢复默认;页面无报错。
---
##### 【P0】【TC-UI-PRODM-CLM-002】【TP_PRODM_CLM_006】全量可见条件组合查询
- 前置条件:默认查询至少 1 条,否则 skip
- 操作步骤:
1. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
2. 快捷区可见非空条件全部填入后查询
3. 抽样首行同时满足全部已填条件;无未捕获异常
- 自动化断言:规划与 CSV `PRODM-CLM-002` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
查询正常无报错;查询结果与查询条件一致。
---
### 中心库上下限建议 · 查询条件展开收起
#### 功能验证点
##### 【P1】【TC-UI-PRODM-CLM-003】【TP_PRODM_CLM_011】展开后更多条件可见
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 点击「展开」
2. 断言额外筛选字段进入可视区且可填写
3. 按钮文案变为「收起」
- 自动化断言:规划与 CSV `PRODM-CLM-003` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
展开后更多条件可见并可交互。
---
### 中心库上下限建议 · 列表
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLM-004】【TP_PRODM_CLM_022】列表核心列完整
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 断言表头含核心列(抽样):建议上下限、现上下限、状态等(以现网为准)
2. 若有数据,抽样首行关键字段非空
- 自动化断言:规划与 CSV `PRODM-CLM-004` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
核心列完整;列表结构正确。
---
### 中心库上下限建议 · 行内操作
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLM-005】【TP_PRODM_CLM_016】行内「详情」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「详情」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CLM-005` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
行内「详情」可达;关闭后回到列表。
---
##### 【P0】【TC-UI-PRODM-CLM-006】【TP_PRODM_CLM_017】行内「编辑」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「编辑」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CLM-006` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
行内「编辑」可达;关闭后回到列表。
---
##### 【P0】【TC-UI-PRODM-CLM-007】【TP_PRODM_CLM_018】行内「调整」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「调整」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CLM-007` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
行内「调整」可达;关闭后回到列表。
---
### 中心库上下限建议 · 列表
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CLM-008】【TP_PRODM_CLM_023】无匹配空态(mock反例)
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
2. 断言表头仍在,0 行或空态,分页总数为 0
- 自动化断言:规划与 CSV `PRODM-CLM-008` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
无匹配不报错;不展示过期成功态数据。
---
### 中心库上下限建议 · 分页
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLM-009】【TP_PRODM_CLM_024】有数据时总条数
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 默认查询后读取「共 N 条」
2. 断言 N 与本次查询匹配条数规则一致(有数据或 0)
- 自动化断言:规划与 CSV `PRODM-CLM-009` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
「共 N 条」与查询结果一致。
---
##### 【P0】【TC-UI-PRODM-CLM-010】【TP_PRODM_CLM_025】切换至第 2 页
- 前置条件:总条数大于一页,否则 skip
- 操作步骤:
1. 记录第 1 页首行关键字段
2. 点击页码「2」或「下一页」
3. 断言页码高亮正确,首行数据与第 1 页不同
- 自动化断言:规划与 CSV `PRODM-CLM-010` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
翻页成功;数据更换。
---
##### 【P1】【TC-UI-PRODM-CLM-011】【TP_PRODM_CLM_026】切换20条每页页面正常且列表同步
- 前置条件:N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)
- 操作步骤:
1. 记录「共 N 条」与当前页可见行数
2. 打开每页条数下拉,选择「20 条/页」
3. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同
- 自动化断言:规划与 CSV `PRODM-CLM-011` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
每页条数切换生效;总数不变;列表同步。
---
### 中心库上下限建议 · 导出
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLM-012】【TP_PRODM_CLM_031】当前查询条件下导出
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 先执行一次查询
2. 点击「导 出」或「导出」或「导出Excel」
3. 断言无未捕获异常(不校验文件内容)
- 自动化断言:规划与 CSV `PRODM-CLM-012` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
导出流程可启动。
---
### 中心库上下限建议 · 打印
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLM-013】【TP_PRODM_CLM_033】按当前条件打印
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 点击「打 印」或「打印产品码」等页面级打印入口
2. 断言可拉起对话框/预览/toast,无 error
- 自动化断言:规划与 CSV `PRODM-CLM-013` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
打印流程可启动。
---
### 中心库上下限建议 · 全部调整
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLM-014】【TP_PRODM_CLM_034】打开「全部调整」对应弹窗/抽屉
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 点击「全部调整」或等价入口
2. 断言弹窗/抽屉/详情可见,关键字段可交互
3. 可见取消/关闭/返回
- 自动化断言:规划与 CSV `PRODM-CLM-014` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
「全部调整」层打开;关键控件可见。
---
##### 【P1】【TC-UI-PRODM-CLM-015】【TP_PRODM_CLM_035】「全部调整」取消不落库
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 打开「全部调整」,任意填写非空后点击「取 消」或关闭
2. 断言弹层关闭,列表行数与打开前一致(抽样)
- 自动化断言:规划与 CSV `PRODM-CLM-015` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
取消后列表无新增/无修改。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CLM-016】【TP_PRODM_CLM_036】「全部调整」必填为空拦截
- 前置条件:该层存在必填提交,否则 skip
- 操作步骤:
1. 打开「全部调整」,必填项留空后点击「确 定」
2. 断言出现必填提示,弹层仍打开,列表不刷新为成功态
- 自动化断言:规划与 CSV `PRODM-CLM-016` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
确定被拦截;不落库。
---
### 中心库上下限建议 · 批量调整
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLM-017】【TP_PRODM_CLM_040】打开「批量调整」对应弹窗/抽屉
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 点击「批量调整」或等价入口
2. 断言弹窗/抽屉/详情可见,关键字段可交互
3. 可见取消/关闭/返回
- 自动化断言:规划与 CSV `PRODM-CLM-017` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
「批量调整」层打开;关键控件可见。
---
##### 【P1】【TC-UI-PRODM-CLM-018】【TP_PRODM_CLM_041】「批量调整」取消不落库
- 前置条件:已进入中心库上下限建议页
- 操作步骤:
1. 打开「批量调整」,任意填写非空后点击「取 消」或关闭
2. 断言弹层关闭,列表行数与打开前一致(抽样)
- 自动化断言:规划与 CSV `PRODM-CLM-018` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
取消后列表无新增/无修改。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CLM-019】【TP_PRODM_CLM_042】「批量调整」必填为空拦截
- 前置条件:该层存在必填提交,否则 skip
- 操作步骤:
1. 打开「批量调整」,必填项留空后点击「确 定」
2. 断言出现必填提示,弹层仍打开,列表不刷新为成功态
- 自动化断言:规划与 CSV `PRODM-CLM-019` 及 `tests/spd/prodm-center-limit.spec.ts` 一致
###### 预期结果
确定被拦截;不落库。
## 质量与覆盖说明
| 项 | 说明 |
|----|------|
| 用例数 | **19** 条(P0=11 / P1=8) |
| 来源 | 从 49 条测试点选取可稳定自动化场景;H3 与测试点同名 |
| 未纳入自动化 | 会话过期、无菜单权限、菜单进入单条、未登录探针、接口失败注入、导出文件内容、写操作成功落库、弹窗全字段 |
| 列排序 | 测试点 1 条「各可排序列升序降序」;本 MD **每 sorter 列一条** `{列名}列升序降序切换`(3.6) |
| 每页条数 | 有 size-changer 时标题「切换20条每页…」,绑定 TP「切换每页条数」(3.7) |
| 单一职责 | 每条只断言一个核心业务结果 |
# 基础管理-产品管理-中心库上下限建议(AI) UI 自动化测试用例
**来源测试点**:`testpoint/基础管理-产品管理-中心库上下限建议(AI)-测试点分析-01.md`
**执行 CSV**:`testcase/基础管理-产品管理-中心库上下限建议(AI)-UI自动化测试用例-01.csv`
**页面 URL**:`/spd/basic/goods/paltform/product/centerLimitAi`
**定位器 YAML**:`locators/spd/prodm-center-limit-ai.locator.yaml`
**元素扫描**:`data/scan/prodm-center-limit-ai-elements.json`(142 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-PRODM-009.md`
**版本**:2026-11-04
**自动化框架**:Playwright + TypeScript(规划 `tests/spd/prodm-center-limit-ai.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:正例账号 `test_1` + `storageState`;具备「基础设置 → 产品管理 → 中心库上下限建议(AI)」权限。
**页面约定**:整页渲染;定位在 `page` 上。
**隔离**:每用例独立 context(playwright-storage-state-isolation)。
**菜单导航**:菜单「基础设置 → 产品管理 → 中心库上下限建议(AI)」;`openPath('/spd/basic/goods/paltform/product/centerLimitAi')` 并断言 URL,勿误入兄弟页。
**写操作**:写操作仅打开弹层后取消或做必填拦截,不提交成功落库;导出/打印不校验文件内容。
**动态取数**:查询后从首行读取 `${sampleCode}`/`${sampleName}`;mock:`__NOT_EXIST_PRODM__99999`。
---
## 基础设置 · 产品管理
### 中心库上下限建议(AI) · 快捷筛选查询
#### 功能验证点
##### 【P1】【TC-UI-PRODM-CLA-001】【TP_PRODM_CLA_005】快捷区重置恢复默认
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 任意填写快捷区可见字段后点击「重 置」
2. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)
- 自动化断言:规划与 CSV `PRODM-CLA-001` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
重置后条件恢复默认;页面无报错。
---
##### 【P0】【TC-UI-PRODM-CLA-002】【TP_PRODM_CLA_006】全量可见条件组合查询
- 前置条件:默认查询至少 1 条,否则 skip
- 操作步骤:
1. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
2. 快捷区可见非空条件全部填入后查询
3. 抽样首行同时满足全部已填条件;无未捕获异常
- 自动化断言:规划与 CSV `PRODM-CLA-002` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
查询正常无报错;查询结果与查询条件一致。
---
### 中心库上下限建议(AI) · 查询条件展开收起
#### 功能验证点
##### 【P1】【TC-UI-PRODM-CLA-003】【TP_PRODM_CLA_011】展开后更多条件可见
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 点击「展开」
2. 断言额外筛选字段进入可视区且可填写
3. 按钮文案变为「收起」
- 自动化断言:规划与 CSV `PRODM-CLA-003` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
展开后更多条件可见并可交互。
---
### 中心库上下限建议(AI) · 列表
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-004】【TP_PRODM_CLA_022】列表核心列完整
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 断言表头含核心列(抽样):建议上下限、现上下限、采纳状态等(以现网为准)
2. 若有数据,抽样首行关键字段非空
- 自动化断言:规划与 CSV `PRODM-CLA-004` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
核心列完整;列表结构正确。
---
### 中心库上下限建议(AI) · 行内操作
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-005】【TP_PRODM_CLA_016】行内「详情」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「详情」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CLA-005` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
行内「详情」可达;关闭后回到列表。
---
##### 【P0】【TC-UI-PRODM-CLA-006】【TP_PRODM_CLA_017】行内「编辑」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「编辑」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CLA-006` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
行内「编辑」可达;关闭后回到列表。
---
##### 【P0】【TC-UI-PRODM-CLA-007】【TP_PRODM_CLA_018】行内「调整」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「调整」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CLA-007` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
行内「调整」可达;关闭后回到列表。
---
### 中心库上下限建议(AI) · 列表
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CLA-008】【TP_PRODM_CLA_023】无匹配空态(mock反例)
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
2. 断言表头仍在,0 行或空态,分页总数为 0
- 自动化断言:规划与 CSV `PRODM-CLA-008` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
无匹配不报错;不展示过期成功态数据。
---
### 中心库上下限建议(AI) · 分页
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-009】【TP_PRODM_CLA_024】有数据时总条数
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 默认查询后读取「共 N 条」
2. 断言 N 与本次查询匹配条数规则一致(有数据或 0)
- 自动化断言:规划与 CSV `PRODM-CLA-009` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
「共 N 条」与查询结果一致。
---
##### 【P0】【TC-UI-PRODM-CLA-010】【TP_PRODM_CLA_025】切换至第 2 页
- 前置条件:总条数大于一页,否则 skip
- 操作步骤:
1. 记录第 1 页首行关键字段
2. 点击页码「2」或「下一页」
3. 断言页码高亮正确,首行数据与第 1 页不同
- 自动化断言:规划与 CSV `PRODM-CLA-010` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
翻页成功;数据更换。
---
##### 【P1】【TC-UI-PRODM-CLA-011】【TP_PRODM_CLA_026】切换20条每页页面正常且列表同步
- 前置条件:N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)
- 操作步骤:
1. 记录「共 N 条」与当前页可见行数
2. 打开每页条数下拉,选择「20 条/页」
3. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同
- 自动化断言:规划与 CSV `PRODM-CLA-011` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
每页条数切换生效;总数不变;列表同步。
---
### 中心库上下限建议(AI) · 导出
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-012】【TP_PRODM_CLA_031】当前查询条件下导出
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 先执行一次查询
2. 点击「导 出」或「导出」或「导出Excel」
3. 断言无未捕获异常(不校验文件内容)
- 自动化断言:规划与 CSV `PRODM-CLA-012` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
导出流程可启动。
---
### 中心库上下限建议(AI) · 打印
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-013】【TP_PRODM_CLA_033】按当前条件打印
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 点击「打 印」或「打印产品码」等页面级打印入口
2. 断言可拉起对话框/预览/toast,无 error
- 自动化断言:规划与 CSV `PRODM-CLA-013` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
打印流程可启动。
---
### 中心库上下限建议(AI) · 全部调整
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-014】【TP_PRODM_CLA_034】打开「全部调整」对应弹窗/抽屉
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 点击「全部调整」或等价入口
2. 断言弹窗/抽屉/详情可见,关键字段可交互
3. 可见取消/关闭/返回
- 自动化断言:规划与 CSV `PRODM-CLA-014` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
「全部调整」层打开;关键控件可见。
---
##### 【P1】【TC-UI-PRODM-CLA-015】【TP_PRODM_CLA_035】「全部调整」取消不落库
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 打开「全部调整」,任意填写非空后点击「取 消」或关闭
2. 断言弹层关闭,列表行数与打开前一致(抽样)
- 自动化断言:规划与 CSV `PRODM-CLA-015` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
取消后列表无新增/无修改。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CLA-016】【TP_PRODM_CLA_036】「全部调整」必填为空拦截
- 前置条件:该层存在必填提交,否则 skip
- 操作步骤:
1. 打开「全部调整」,必填项留空后点击「确 定」
2. 断言出现必填提示,弹层仍打开,列表不刷新为成功态
- 自动化断言:规划与 CSV `PRODM-CLA-016` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
确定被拦截;不落库。
---
### 中心库上下限建议(AI) · 批量调整
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-017】【TP_PRODM_CLA_040】打开「批量调整」对应弹窗/抽屉
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 点击「批量调整」或等价入口
2. 断言弹窗/抽屉/详情可见,关键字段可交互
3. 可见取消/关闭/返回
- 自动化断言:规划与 CSV `PRODM-CLA-017` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
「批量调整」层打开;关键控件可见。
---
##### 【P1】【TC-UI-PRODM-CLA-018】【TP_PRODM_CLA_041】「批量调整」取消不落库
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 打开「批量调整」,任意填写非空后点击「取 消」或关闭
2. 断言弹层关闭,列表行数与打开前一致(抽样)
- 自动化断言:规划与 CSV `PRODM-CLA-018` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
取消后列表无新增/无修改。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CLA-019】【TP_PRODM_CLA_042】「批量调整」必填为空拦截
- 前置条件:该层存在必填提交,否则 skip
- 操作步骤:
1. 打开「批量调整」,必填项留空后点击「确 定」
2. 断言出现必填提示,弹层仍打开,列表不刷新为成功态
- 自动化断言:规划与 CSV `PRODM-CLA-019` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
确定被拦截;不落库。
---
### 中心库上下限建议(AI) · 采纳
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CLA-020】【TP_PRODM_CLA_046】打开「采纳」对应弹窗/抽屉
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 点击「采纳」或等价入口
2. 断言弹窗/抽屉/详情可见,关键字段可交互
3. 可见取消/关闭/返回
- 自动化断言:规划与 CSV `PRODM-CLA-020` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
「采纳」层打开;关键控件可见。
---
##### 【P1】【TC-UI-PRODM-CLA-021】【TP_PRODM_CLA_047】「采纳」取消不落库
- 前置条件:已进入中心库上下限建议(AI)页
- 操作步骤:
1. 打开「采纳」,任意填写非空后点击「取 消」或关闭
2. 断言弹层关闭,列表行数与打开前一致(抽样)
- 自动化断言:规划与 CSV `PRODM-CLA-021` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
取消后列表无新增/无修改。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CLA-022】【TP_PRODM_CLA_048】「采纳」必填为空拦截
- 前置条件:该层存在必填提交,否则 skip
- 操作步骤:
1. 打开「采纳」,必填项留空后点击「确 定」
2. 断言出现必填提示,弹层仍打开,列表不刷新为成功态
- 自动化断言:规划与 CSV `PRODM-CLA-022` 及 `tests/spd/prodm-center-limit-ai.spec.ts` 一致
###### 预期结果
确定被拦截;不落库。
## 质量与覆盖说明
| 项 | 说明 |
|----|------|
| 用例数 | **22** 条(P0=12 / P1=10) |
| 来源 | 从 55 条测试点选取可稳定自动化场景;H3 与测试点同名 |
| 未纳入自动化 | 会话过期、无菜单权限、菜单进入单条、未登录探针、接口失败注入、导出文件内容、写操作成功落库、弹窗全字段 |
| 列排序 | 测试点 1 条「各可排序列升序降序」;本 MD **每 sorter 列一条** `{列名}列升序降序切换`(3.6) |
| 每页条数 | 有 size-changer 时标题「切换20条每页…」,绑定 TP「切换每页条数」(3.7) |
| 单一职责 | 每条只断言一个核心业务结果 |
# 基础管理-产品管理-中心库库区产品设置 UI 自动化测试用例
**来源测试点**:`testpoint/基础管理-产品管理-中心库库区产品设置-测试点分析-01.md`
**执行 CSV**:`testcase/基础管理-产品管理-中心库库区产品设置-UI自动化测试用例-01.csv`
**页面 URL**:`/spd/basic/goods/platform/area/product`
**定位器 YAML**:`locators/spd/prodm-center-zone.locator.yaml`
**元素扫描**:`data/scan/prodm-center-zone-elements.json`(203 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-PRODM-020.md`
**版本**:2026-11-04
**自动化框架**:Playwright + TypeScript(规划 `tests/spd/prodm-center-zone.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:正例账号 `test_1` + `storageState`;具备「基础设置 → 产品管理 → 中心库库区产品设置」权限。
**页面约定**:整页渲染;定位在 `page` 上。
**隔离**:每用例独立 context(playwright-storage-state-isolation)。
**菜单导航**:菜单「基础设置 → 产品管理 → 中心库库区产品设置」;`openPath('/spd/basic/goods/platform/area/product')` 并断言 URL,勿误入兄弟页。
**写操作**:写操作仅打开弹层后取消或做必填拦截,不提交成功落库;导出/打印不校验文件内容。
**动态取数**:查询后从首行读取 `${sampleCode}`/`${sampleName}`;mock:`__NOT_EXIST_PRODM__99999`。
---
## 基础设置 · 产品管理
### 中心库库区产品设置 · 快捷筛选查询
#### 功能验证点
##### 【P1】【TC-UI-PRODM-CZO-001】【TP_PRODM_CZO_005】快捷区重置恢复默认
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 任意填写快捷区可见字段后点击「重 置」
2. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)
- 自动化断言:规划与 CSV `PRODM-CZO-001` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
重置后条件恢复默认;页面无报错。
---
### 中心库库区产品设置 · 高级筛选抽屉
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CZO-002】【TP_PRODM_CZO_012】全量查询条件组合查询
- 前置条件:默认查询至少 1 条,否则 skip
- 操作步骤:
1. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
2. 快捷区填入样本中有值的可见字段
3. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
4. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段
- 自动化断言:规划与 CSV `PRODM-CZO-002` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
查询正常无报错;查询条件写值正常;查询结果与查询条件一致。
---
##### 【P0】【TC-UI-PRODM-CZO-003】【TP_PRODM_CZO_010】点击高级筛选打开抽屉
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 点击「高级筛选」
2. 断言抽屉标题为「高级筛选」,关键字段可交互
3. 关闭抽屉,快捷区条件不被误清空(以现网为准)
- 自动化断言:规划与 CSV `PRODM-CZO-003` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
高级筛选抽屉可打开并关闭。
---
### 中心库库区产品设置 · 列表
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CZO-004】【TP_PRODM_CZO_019】列表核心列完整
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 断言表头含核心列(抽样):库区、产品、上下限/货位等(以现网为准)
2. 若有数据,抽样首行关键字段非空
- 自动化断言:规划与 CSV `PRODM-CZO-004` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
核心列完整;列表结构正确。
---
### 中心库库区产品设置 · 行内操作
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CZO-005】【TP_PRODM_CZO_014】行内「详情」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「详情」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CZO-005` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
行内「详情」可达;关闭后回到列表。
---
##### 【P0】【TC-UI-PRODM-CZO-006】【TP_PRODM_CZO_015】行内「编辑」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「编辑」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-CZO-006` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
行内「编辑」可达;关闭后回到列表。
---
### 中心库库区产品设置 · 列表
#### 功能验证点
##### 【P2】【TC-UI-PRODM-CZO-007】【TP_PRODM_CZO_020】列设置隐藏后再恢复
- 前置条件:列表表头已加载
- 操作步骤:
1. 默认查询后点击表格工具栏列设置(齿轮)
2. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
3. 再次打开列设置勾选恢复并关闭,断言表头恢复
- 自动化断言:规划与 CSV `PRODM-CZO-007` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
勾选状态与表头一致。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CZO-008】【TP_PRODM_CZO_022】横向滚动与列对齐
- 前置条件:列表有数据且列超出视口,否则 skip
- 操作步骤:
1. 宽表场景下横向滚动使远侧列进入视口
2. 断言表头列数与数据列数一致、对齐无重叠
- 自动化断言:规划与 CSV `PRODM-CZO-008` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
远侧列可进入视口;表头与数据列对齐。
---
##### 【P1】【TC-UI-PRODM-CZO-009】【TP_PRODM_CZO_021】无匹配空态(mock反例)
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
2. 断言表头仍在,0 行或空态,分页总数为 0
- 自动化断言:规划与 CSV `PRODM-CZO-009` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
无匹配不报错;不展示过期成功态数据。
---
### 中心库库区产品设置 · 分页
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CZO-010】【TP_PRODM_CZO_023】有数据时总条数
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 默认查询后读取「共 N 条」
2. 断言 N 与本次查询匹配条数规则一致(有数据或 0)
- 自动化断言:规划与 CSV `PRODM-CZO-010` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
「共 N 条」与查询结果一致。
---
##### 【P0】【TC-UI-PRODM-CZO-011】【TP_PRODM_CZO_024】切换至第 2 页
- 前置条件:总条数大于一页,否则 skip
- 操作步骤:
1. 记录第 1 页首行关键字段
2. 点击页码「2」或「下一页」
3. 断言页码高亮正确,首行数据与第 1 页不同
- 自动化断言:规划与 CSV `PRODM-CZO-011` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
翻页成功;数据更换。
---
##### 【P1】【TC-UI-PRODM-CZO-012】【TP_PRODM_CZO_025】切换20条每页页面正常且列表同步
- 前置条件:N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)
- 操作步骤:
1. 记录「共 N 条」与当前页可见行数
2. 打开每页条数下拉,选择「20 条/页」
3. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同
- 自动化断言:规划与 CSV `PRODM-CZO-012` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
每页条数切换生效;总数不变;列表同步。
---
### 中心库库区产品设置 · 导出
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CZO-013】【TP_PRODM_CZO_030】当前查询条件下导出
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 先执行一次查询
2. 点击「导 出」或「导出」或「导出Excel」
3. 断言无未捕获异常(不校验文件内容)
- 自动化断言:规划与 CSV `PRODM-CZO-013` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
导出流程可启动。
---
### 中心库库区产品设置 · 添加中心库库区产品
#### 功能验证点
##### 【P0】【TC-UI-PRODM-CZO-014】【TP_PRODM_CZO_032】打开「添加中心库库区产品」对应弹窗/抽屉
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 点击「添加中心库库区产品」或等价入口
2. 断言弹窗/抽屉/详情可见,关键字段可交互
3. 可见取消/关闭/返回
- 自动化断言:规划与 CSV `PRODM-CZO-014` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
「添加中心库库区产品」层打开;关键控件可见。
---
##### 【P1】【TC-UI-PRODM-CZO-015】【TP_PRODM_CZO_033】「添加中心库库区产品」取消不落库
- 前置条件:已进入中心库库区产品设置页
- 操作步骤:
1. 打开「添加中心库库区产品」,任意填写非空后点击「取 消」或关闭
2. 断言弹层关闭,列表行数与打开前一致(抽样)
- 自动化断言:规划与 CSV `PRODM-CZO-015` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
取消后列表无新增/无修改。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-CZO-016】【TP_PRODM_CZO_034】「添加中心库库区产品」必填为空拦截
- 前置条件:该层存在必填提交,否则 skip
- 操作步骤:
1. 打开「添加中心库库区产品」,必填项留空后点击「确 定」
2. 断言出现必填提示,弹层仍打开,列表不刷新为成功态
- 自动化断言:规划与 CSV `PRODM-CZO-016` 及 `tests/spd/prodm-center-zone.spec.ts` 一致
###### 预期结果
确定被拦截;不落库。
## 质量与覆盖说明
| 项 | 说明 |
|----|------|
| 用例数 | **16** 条(P0=9 / P1=6 / P2=1) |
| 来源 | 从 41 条测试点选取可稳定自动化场景;H3 与测试点同名 |
| 未纳入自动化 | 会话过期、无菜单权限、菜单进入单条、未登录探针、接口失败注入、导出文件内容、写操作成功落库、弹窗全字段 |
| 列排序 | 测试点 1 条「各可排序列升序降序」;本 MD **每 sorter 列一条** `{列名}列升序降序切换`(3.6) |
| 每页条数 | 有 size-changer 时标题「切换20条每页…」,绑定 TP「切换每页条数」(3.7) |
| 单一职责 | 每条只断言一个核心业务结果 |
# 基础管理-产品管理-产品DI变更 UI 自动化测试用例
**来源测试点**:`testpoint/基础管理-产品管理-产品DI变更-测试点分析-01.md`
**执行 CSV**:`testcase/基础管理-产品管理-产品DI变更-UI自动化测试用例-01.csv`
**页面 URL**:`/spd/basic/goods/platform/dichange`
**定位器 YAML**:`locators/spd/prodm-di-change.locator.yaml`
**元素扫描**:`data/scan/prodm-di-change-elements.json`(109 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-PRODM-023.md`
**版本**:2026-11-04
**自动化框架**:Playwright + TypeScript(规划 `tests/spd/prodm-di-change.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:正例账号 `test_1` + `storageState`;具备「基础设置 → 产品管理 → 产品DI变更」权限。
**页面约定**:整页渲染;定位在 `page` 上。
**隔离**:每用例独立 context(playwright-storage-state-isolation)。
**菜单导航**:菜单「基础设置 → 产品管理 → 产品DI变更」;`openPath('/spd/basic/goods/platform/dichange')` 并断言 URL,勿误入兄弟页。
**写操作**:写操作仅打开弹层后取消或做必填拦截,不提交成功落库;导出/打印不校验文件内容。
**动态取数**:查询后从首行读取 `${sampleCode}`/`${sampleName}`;mock:`__NOT_EXIST_PRODM__99999`。
---
## 基础设置 · 产品管理
### 产品DI变更 · 快捷筛选查询
#### 功能验证点
##### 【P1】【TC-UI-PRODM-DIC-001】【TP_PRODM_DIC_005】快捷区重置恢复默认
- 前置条件:已进入产品DI变更页
- 操作步骤:
1. 任意填写快捷区可见字段后点击「重 置」
2. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)
- 自动化断言:规划与 CSV `PRODM-DIC-001` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
重置后条件恢复默认;页面无报错。
---
##### 【P0】【TC-UI-PRODM-DIC-002】【TP_PRODM_DIC_006】全量可见条件组合查询
- 前置条件:默认查询至少 1 条,否则 skip
- 操作步骤:
1. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
2. 快捷区可见非空条件全部填入后查询
3. 抽样首行同时满足全部已填条件;无未捕获异常
- 自动化断言:规划与 CSV `PRODM-DIC-002` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
查询正常无报错;查询结果与查询条件一致。
---
### 产品DI变更 · 查询条件展开收起
#### 功能验证点
##### 【P1】【TC-UI-PRODM-DIC-003】【TP_PRODM_DIC_011】展开后更多条件可见
- 前置条件:已进入产品DI变更页
- 操作步骤:
1. 点击「展开」
2. 断言额外筛选字段进入可视区且可填写
3. 按钮文案变为「收起」
- 自动化断言:规划与 CSV `PRODM-DIC-003` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
展开后更多条件可见并可交互。
---
### 产品DI变更 · 列表
#### 功能验证点
##### 【P0】【TC-UI-PRODM-DIC-004】【TP_PRODM_DIC_022】列表核心列完整
- 前置条件:已进入产品DI变更页
- 操作步骤:
1. 断言表头含核心列(抽样):DI 变更单号、状态、产品等(以现网为准)
2. 若有数据,抽样首行关键字段非空
- 自动化断言:规划与 CSV `PRODM-DIC-004` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
核心列完整;列表结构正确。
---
### 产品DI变更 · 行内操作
#### 功能验证点
##### 【P0】【TC-UI-PRODM-DIC-005】【TP_PRODM_DIC_016】行内「详情」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「详情」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-DIC-005` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
行内「详情」可达;关闭后回到列表。
---
##### 【P0】【TC-UI-PRODM-DIC-006】【TP_PRODM_DIC_017】行内「编辑」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「编辑」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-DIC-006` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
行内「编辑」可达;关闭后回到列表。
---
##### 【P0】【TC-UI-PRODM-DIC-007】【TP_PRODM_DIC_018】行内「日志」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「日志」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-DIC-007` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
行内「日志」可达;关闭后回到列表。
---
### 产品DI变更 · 列表
#### 功能验证点
##### 【P2】【TC-UI-PRODM-DIC-008】【TP_PRODM_DIC_023】列设置隐藏后再恢复
- 前置条件:列表表头已加载
- 操作步骤:
1. 默认查询后点击表格工具栏列设置(齿轮)
2. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
3. 再次打开列设置勾选恢复并关闭,断言表头恢复
- 自动化断言:规划与 CSV `PRODM-DIC-008` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
勾选状态与表头一致。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-DIC-009】【TP_PRODM_DIC_025】横向滚动与列对齐
- 前置条件:列表有数据且列超出视口,否则 skip
- 操作步骤:
1. 宽表场景下横向滚动使远侧列进入视口
2. 断言表头列数与数据列数一致、对齐无重叠
- 自动化断言:规划与 CSV `PRODM-DIC-009` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
远侧列可进入视口;表头与数据列对齐。
---
##### 【P1】【TC-UI-PRODM-DIC-010】【TP_PRODM_DIC_024】无匹配空态(mock反例)
- 前置条件:已进入产品DI变更页
- 操作步骤:
1. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
2. 断言表头仍在,0 行或空态,分页总数为 0
- 自动化断言:规划与 CSV `PRODM-DIC-010` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
无匹配不报错;不展示过期成功态数据。
---
### 产品DI变更 · 分页
#### 功能验证点
##### 【P0】【TC-UI-PRODM-DIC-011】【TP_PRODM_DIC_026】有数据时总条数
- 前置条件:已进入产品DI变更页
- 操作步骤:
1. 默认查询后读取「共 N 条」
2. 断言 N 与本次查询匹配条数规则一致(有数据或 0)
- 自动化断言:规划与 CSV `PRODM-DIC-011` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
「共 N 条」与查询结果一致。
---
##### 【P0】【TC-UI-PRODM-DIC-012】【TP_PRODM_DIC_027】切换至第 2 页
- 前置条件:总条数大于一页,否则 skip
- 操作步骤:
1. 记录第 1 页首行关键字段
2. 点击页码「2」或「下一页」
3. 断言页码高亮正确,首行数据与第 1 页不同
- 自动化断言:规划与 CSV `PRODM-DIC-012` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
翻页成功;数据更换。
---
##### 【P1】【TC-UI-PRODM-DIC-013】【TP_PRODM_DIC_028】切换20条每页页面正常且列表同步
- 前置条件:N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)
- 操作步骤:
1. 记录「共 N 条」与当前页可见行数
2. 打开每页条数下拉,选择「20 条/页」
3. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同
- 自动化断言:规划与 CSV `PRODM-DIC-013` 及 `tests/spd/prodm-di-change.spec.ts` 一致
###### 预期结果
每页条数切换生效;总数不变;列表同步。
## 质量与覆盖说明
| 项 | 说明 |
|----|------|
| 用例数 | **13** 条(P0=7 / P1=5 / P2=1) |
| 来源 | 从 36 条测试点选取可稳定自动化场景;H3 与测试点同名 |
| 未纳入自动化 | 会话过期、无菜单权限、菜单进入单条、未登录探针、接口失败注入、导出文件内容、写操作成功落库、弹窗全字段 |
| 列排序 | 测试点 1 条「各可排序列升序降序」;本 MD **每 sorter 列一条** `{列名}列升序降序切换`(3.6) |
| 每页条数 | 有 size-changer 时标题「切换20条每页…」,绑定 TP「切换每页条数」(3.7) |
| 单一职责 | 每条只断言一个核心业务结果 |
# 基础管理-产品管理-产品DI查询 UI 自动化测试用例
**来源测试点**:`testpoint/基础管理-产品管理-产品DI查询-测试点分析-01.md`
**执行 CSV**:`testcase/基础管理-产品管理-产品DI查询-UI自动化测试用例-01.csv`
**页面 URL**:`/spd/basic/goods/platform/diSearch`
**定位器 YAML**:`locators/spd/prodm-di-query.locator.yaml`
**元素扫描**:`data/scan/prodm-di-query-elements.json`(127 项)
**关联规范**:`knowledge-base/08-UI专项规范库/UI-SPEC-SPD-PRODM-018.md`
**版本**:2026-11-04
**自动化框架**:Playwright + TypeScript(规划 `tests/spd/prodm-di-query.spec.ts`,依赖 `auth.setup` 登录态)
**通用前置**:正例账号 `test_1` + `storageState`;具备「基础设置 → 产品管理 → 产品DI查询」权限。
**页面约定**:整页渲染;定位在 `page` 上。
**隔离**:每用例独立 context(playwright-storage-state-isolation)。
**菜单导航**:菜单「基础设置 → 产品管理 → 产品DI查询」;`openPath('/spd/basic/goods/platform/diSearch')` 并断言 URL,勿误入兄弟页。
**写操作**:写操作仅打开弹层后取消或做必填拦截,不提交成功落库;导出/打印不校验文件内容。
**动态取数**:查询后从首行读取 `${sampleCode}`/`${sampleName}`;mock:`__NOT_EXIST_PRODM__99999`。
---
## 基础设置 · 产品管理
### 产品DI查询 · 快捷筛选查询
#### 功能验证点
##### 【P1】【TC-UI-PRODM-DIQ-001】【TP_PRODM_DIQ_005】快捷区重置恢复默认
- 前置条件:已进入产品DI查询页
- 操作步骤:
1. 任意填写快捷区可见字段后点击「重 置」
2. 断言条件恢复默认;列表是否刷新按产品规则(未定则记待评审)
- 自动化断言:规划与 CSV `PRODM-DIQ-001` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
重置后条件恢复默认;页面无报错。
---
##### 【P0】【TC-UI-PRODM-DIQ-002】【TP_PRODM_DIQ_006】全量可见条件组合查询
- 前置条件:默认查询至少 1 条,否则 skip
- 操作步骤:
1. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件)
2. 快捷区可见非空条件全部填入后查询
3. 抽样首行同时满足全部已填条件;无未捕获异常
- 自动化断言:规划与 CSV `PRODM-DIQ-002` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
查询正常无报错;查询结果与查询条件一致。
---
### 产品DI查询 · 查询条件展开收起
#### 功能验证点
##### 【P1】【TC-UI-PRODM-DIQ-003】【TP_PRODM_DIQ_011】展开后更多条件可见
- 前置条件:已进入产品DI查询页
- 操作步骤:
1. 点击「展开」
2. 断言额外筛选字段进入可视区且可填写
3. 按钮文案变为「收起」
- 自动化断言:规划与 CSV `PRODM-DIQ-003` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
展开后更多条件可见并可交互。
---
### 产品DI查询 · 列表
#### 功能验证点
##### 【P0】【TC-UI-PRODM-DIQ-004】【TP_PRODM_DIQ_016】列表核心列完整
- 前置条件:已进入产品DI查询页
- 操作步骤:
1. 断言表头含核心列(抽样):DI、产品、注册相关列(以现网为准)
2. 若有数据,抽样首行关键字段非空
- 自动化断言:规划与 CSV `PRODM-DIQ-004` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
核心列完整;列表结构正确。
---
#### 集成验证点
##### 【P0】【TC-UI-PRODM-DIQ-005】【TP_PRODM_DIQ_018】行内「详情」可达(只读冒烟)
- 前置条件:列表至少 1 条
- 操作步骤:
1. 首行有数据时点击「详情」
2. 断言进入预期弹窗/抽屉/详情,可见取消/关闭/返回
3. 关闭弹层或点返回,列表仍可见
- 自动化断言:规划与 CSV `PRODM-DIQ-005` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
行内操作可达;关闭后回到列表。
---
#### 边界验证点
##### 【P1】【TC-UI-PRODM-DIQ-006】【TP_PRODM_DIQ_017】无匹配空态(mock反例)
- 前置条件:已进入产品DI查询页
- 操作步骤:
1. 名称/编号类关键字填入 `__NOT_EXIST_PRODM__99999` 后查询
2. 断言表头仍在,0 行或空态,分页总数为 0
- 自动化断言:规划与 CSV `PRODM-DIQ-006` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
无匹配不报错;不展示过期成功态数据。
---
### 产品DI查询 · 分页
#### 功能验证点
##### 【P0】【TC-UI-PRODM-DIQ-007】【TP_PRODM_DIQ_019】有数据时总条数
- 前置条件:已进入产品DI查询页
- 操作步骤:
1. 默认查询后读取「共 N 条」
2. 断言 N 与本次查询匹配条数规则一致(有数据或 0)
- 自动化断言:规划与 CSV `PRODM-DIQ-007` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
「共 N 条」与查询结果一致。
---
##### 【P0】【TC-UI-PRODM-DIQ-008】【TP_PRODM_DIQ_020】切换至第 2 页
- 前置条件:总条数大于一页,否则 skip
- 操作步骤:
1. 记录第 1 页首行关键字段
2. 点击页码「2」或「下一页」
3. 断言页码高亮正确,首行数据与第 1 页不同
- 自动化断言:规划与 CSV `PRODM-DIQ-008` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
翻页成功;数据更换。
---
##### 【P1】【TC-UI-PRODM-DIQ-009】【TP_PRODM_DIQ_021】切换20条每页页面正常且列表同步
- 前置条件:N>10 且切换前可见行数 > min(N,20),否则 skip(见 3.7)
- 操作步骤:
1. 记录「共 N 条」与当前页可见行数
2. 打开每页条数下拉,选择「20 条/页」
3. 断言分页器显示 20 条/页;N 不变;当前页行数=min(N,20) 且与切换前不同
- 自动化断言:规划与 CSV `PRODM-DIQ-009` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
每页条数切换生效;总数不变;列表同步。
---
### 产品DI查询 · 导出
#### 功能验证点
##### 【P0】【TC-UI-PRODM-DIQ-010】【TP_PRODM_DIQ_026】当前查询条件下导出
- 前置条件:已进入产品DI查询页
- 操作步骤:
1. 先执行一次查询
2. 点击「导 出」或「导出」或「导出Excel」
3. 断言无未捕获异常(不校验文件内容)
- 自动化断言:规划与 CSV `PRODM-DIQ-010` 及 `tests/spd/prodm-di-query.spec.ts` 一致
###### 预期结果
导出流程可启动。
## 质量与覆盖说明
| 项 | 说明 |
|----|------|
| 用例数 | **10** 条(P0=6 / P1=4) |
| 来源 | 从 31 条测试点选取可稳定自动化场景;H3 与测试点同名 |
| 未纳入自动化 | 会话过期、无菜单权限、菜单进入单条、未登录探针、接口失败注入、导出文件内容、写操作成功落库、弹窗全字段 |
| 列排序 | 测试点 1 条「各可排序列升序降序」;本 MD **每 sorter 列一条** `{列名}列升序降序切换`(3.6) |
| 每页条数 | 有 size-changer 时标题「切换20条每页…」,绑定 TP「切换每页条数」(3.7) |
| 单一职责 | 每条只断言一个核心业务结果 |
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment