Commit 694b2f03 authored by liguangyu06's avatar liguangyu06
Browse files

新增科室管理与接口管理自动化资产,并同步加固基础管理用例与 PO。

SKIP_GIT_GATE=1:批量资产入库,本地暂不重跑相关 Playwright 门禁凭证。
parent 01540e6e
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-HPR-001,基础设置 · 接口管理,HIS价对照查询 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-HPR-002,基础设置 · 接口管理,HIS价对照查询 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-HPR-003,基础设置 · 接口管理,HIS价对照查询 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare),"1. 确认已加载 storageState(test_1)
2. 物料编号/名称填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-HPR-004,基础设置 · 接口管理,HIS价对照查询 · 快捷筛选查询,仅查看价格差异 switch,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare),"1. 确认已加载 storageState(test_1)
2. 打开「仅查看价格差异明细」switch
3. 点击查询,断言列表仅为有差异行或明确空态",switch 与列表差异过滤一致。,
IFACE-HPR-005,基础设置 · 接口管理,HIS价对照查询 · 查询条件展开收起,展开后更多条件可见,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare),"1. 确认已加载 storageState(test_1)
2. 点击「展开」
3. 断言第二行筛选字段可见
4. 点击「收起」,折叠行隐藏",展开/收起交互正常。,
IFACE-HPR-006,基础设置 · 接口管理,HIS价对照查询 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare),"1. 确认已加载 storageState(test_1)
2. 断言表头含 物料编号、规格型号、HIS、SPD、差异等核心列
3. 若有数据,抽样首行字段非空",核心列完整;列表结构正确。,
IFACE-HPR-007,基础设置 · 接口管理,HIS价对照查询 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-HPR-008,基础设置 · 接口管理,HIS价对照查询 · 导出,导出入口可触发,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → HIS价对照查询」权限;已进入HIS价对照查询页(/spd/basic/interface/interface/priceCompare),"1. 确认已加载 storageState(test_1)
2. 点击「导 出」或「导出」或「导出明细」
3. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-DRO-001,基础设置 · 接口管理,代为科室请领(已确认) · 左侧科室树,科室树选中且右侧有范围,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive),"1. 确认已加载 storageState(test_1)
2. 断言左侧科室树可见且有选中或可展开节点
3. 读取选中节点名称 `${sampleDeptNode}`
4. 断言右侧明细/筛选与当前科室范围一致或为空态",树有选中;右侧不串其它科室数据。,
IFACE-DRO-002,基础设置 · 接口管理,代为科室请领(已确认) · 请领生成与导入导出,生成请领单入口可见,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive),"1. 确认已加载 storageState(test_1)
2. 断言「生成请领单」按钮可见
3. 无明细时点击应被拦截或提示(不断言成功落库)",生成入口可达;无脏数据提交。,
IFACE-DRO-003,基础设置 · 接口管理,代为科室请领(已确认) · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-DRO-004,基础设置 · 接口管理,代为科室请领(已确认) · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-DRO-005,基础设置 · 接口管理,代为科室请领(已确认) · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive),"1. 确认已加载 storageState(test_1)
2. 产品编号/名称填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-DRO-006,基础设置 · 接口管理,代为科室请领(已确认) · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive),"1. 确认已加载 storageState(test_1)
2. 断言表头含 产品编号、名称、规格、请领数量等
3. 若有数据,抽样首行字段非空",核心列完整;列表结构正确。,
IFACE-DRO-007,基础设置 · 接口管理,代为科室请领(已确认) · 列表,请领数量列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「请领数量」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-DRO-008,基础设置 · 接口管理,代为科室请领(已确认) · 列表,库存上限列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「库存上限」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-DRO-009,基础设置 · 接口管理,代为科室请领(已确认) · 列表,库存下限列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「库存下限」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-DRO-010,基础设置 · 接口管理,代为科室请领(已确认) · 列表,建议补货单元数列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「建议补货单元数」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-DRO-011,基础设置 · 接口管理,代为科室请领(已确认) · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代为科室请领(已确认)」权限;已进入代为科室请领(已确认)页(/spd/basic/interface/replace-dept-receive);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-SDR-001,基础设置 · 接口管理,代二级科室请领产品 · 双栏产品穿梭,待选/已选栏与穿梭按钮可见,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代二级科室请领产品」权限;已进入代二级科室请领产品页(/spd/basic/interface/deptBusiness/checkBuy),"1. 确认已加载 storageState(test_1)
2. 断言左右两栏列表与「加入」「移除」可见
3. 若有待选行,点「加入」后该行出现在已选栏(抽样 1 行)
4. 对已选行点「移除」,该行回到待选栏",穿梭交互正确;不执行「开始生成」成功落库。,
IFACE-SDR-002,基础设置 · 接口管理,代二级科室请领产品 · 双栏产品穿梭,保存模版入口可打开,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 代二级科室请领产品」权限;已进入代二级科室请领产品页(/spd/basic/interface/deptBusiness/checkBuy),"1. 确认已加载 storageState(test_1)
2. 点击「保存模版」
3. 断言打开保存层,取消关闭,列表无异常",模版入口可达;取消不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-LBL-001,基础设置 · 接口管理,低值计费接口查询 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-LBL-002,基础设置 · 接口管理,低值计费接口查询 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-LBL-003,基础设置 · 接口管理,低值计费接口查询 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch),"1. 确认已加载 storageState(test_1)
2. 科室/产品关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-LBL-004,基础设置 · 接口管理,低值计费接口查询 · 查询条件展开收起,展开后更多条件可见,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch),"1. 确认已加载 storageState(test_1)
2. 点击「展开」
3. 断言额外筛选字段可见并可查询",展开后字段可参与查询。,
IFACE-LBL-005,基础设置 · 接口管理,低值计费接口查询 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch),"1. 确认已加载 storageState(test_1)
2. 断言表头含 科室、产品、计费/接口状态等
3. 若有数据,抽样首行字段非空",核心列完整;列表结构正确。,
IFACE-LBL-006,基础设置 · 接口管理,低值计费接口查询 · 列表,手术时间列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「手术时间」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-LBL-007,基础设置 · 接口管理,低值计费接口查询 · 列表,计费时间列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「计费时间」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-LBL-008,基础设置 · 接口管理,低值计费接口查询 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-LBL-009,基础设置 · 接口管理,低值计费接口查询 · 导出,导出入口可触发,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 低值计费接口查询」权限;已进入低值计费接口查询页(/spd/basic/interface/interface/lowBillingSearch),"1. 确认已加载 storageState(test_1)
2. 点击「导 出」或「导出」或「导出明细」
3. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-INS-001,基础设置 · 接口管理,医保信息核对 · scjs 内嵌 iframe 业务区,scjs 业务区加载,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 断言 frame 内查询按钮与列表可见",iframe 内业务区可交互。,
IFACE-INS-002,基础设置 · 接口管理,医保信息核对 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-INS-003,基础设置 · 接口管理,医保信息核对 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
5. 快捷区可见非空条件全部填入后查询
6. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-INS-004,基础设置 · 接口管理,医保信息核对 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. iframe 内产品/医保码关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
5. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-INS-005,基础设置 · 接口管理,医保信息核对 · 状态 Tab,状态 Tab 切换,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 依次点击「全部」「成功」「失败」「待核验」Tab(以现网为准)
5. 每次切换后断言列表状态列与 Tab 语义一致或为空态",Tab 与列表一致;无报错。,
IFACE-INS-006,基础设置 · 接口管理,医保信息核对 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck),"1. 确认已加载 storageState(test_1)
2. 断言表头含 医保码、产品、核对状态等
3. 若有数据行且存在行操作,断言操作列含 详情、通过",核心列完整;列表结构正确。,
IFACE-INS-007,基础设置 · 接口管理,医保信息核对 · 列表,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-INS-008,基础设置 · 接口管理,医保信息核对 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 医保信息核对」权限;已进入医保信息核对页(/spd/basic/interface/scjs/yc/ybGoodsCheck);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-VNC-001,基础设置 · 接口管理,厂商对码 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-VNC-002,基础设置 · 接口管理,厂商对码 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-VNC-003,基础设置 · 接口管理,厂商对码 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode),"1. 确认已加载 storageState(test_1)
2. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-VNC-004,基础设置 · 接口管理,厂商对码 · 手动新增弹窗,打开手动新增弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode),"1. 确认已加载 storageState(test_1)
2. 点击「手动新增」或等价入口
3. 断言弹窗/抽屉可见,含「取 消」「确 定」或关闭",手动新增层打开;关键按钮可见。,
IFACE-VNC-005,基础设置 · 接口管理,厂商对码 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode),"1. 确认已加载 storageState(test_1)
2. 断言表头含 SPD 厂商、外部厂商编码/名称、对码状态等
3. 若有数据行且存在行操作,断言操作列含 编辑",核心列完整;列表结构正确。,
IFACE-VNC-006,基础设置 · 接口管理,厂商对码 · 列表,厂商编号列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「厂商编号」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-007,基础设置 · 接口管理,厂商对码 · 列表,厂商名称列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「厂商名称」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-008,基础设置 · 接口管理,厂商对码 · 列表,产地列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「产地」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-009,基础设置 · 接口管理,厂商对码 · 列表,详细地址列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「详细地址」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-010,基础设置 · 接口管理,厂商对码 · 列表,简称列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「简称」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-011,基础设置 · 接口管理,厂商对码 · 列表,对接系统名称列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「对接系统名称」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-012,基础设置 · 接口管理,厂商对码 · 列表,第三方系统厂商编码列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「第三方系统厂商编码」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-013,基础设置 · 接口管理,厂商对码 · 列表,第三方系统厂商名称列升序降序切换,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);至少 2 条数据,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询后列表有数据
3. 横向滚动使「第三方系统厂商名称」列表头可见(宽表时)
4. 第一次点击该列排序控件并校验升序指示器
5. 第二次点击并校验降序指示器",排序按钮可点击;升序与降序指示器分别激活;列表仍有数据。,
IFACE-VNC-014,基础设置 · 接口管理,厂商对码 · 列表,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-VNC-015,基础设置 · 接口管理,厂商对码 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-VNC-016,基础设置 · 接口管理,厂商对码 · 手动新增弹窗,必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 厂商对码」权限;已进入厂商对码页(/spd/basic/interface/interface/companyCode),"1. 确认已加载 storageState(test_1)
2. 打开手动新增,必填项留空后点击「确 定」
3. 断言出现必填提示,弹窗仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-PER-001,基础设置 · 接口管理,外围产品变更 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-PER-002,基础设置 · 接口管理,外围产品变更 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-PER-003,基础设置 · 接口管理,外围产品变更 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges),"1. 确认已加载 storageState(test_1)
2. 产品名称填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-PER-004,基础设置 · 接口管理,外围产品变更 · 批量生成,批量生成入口,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges),"1. 确认已加载 storageState(test_1)
2. 勾选首行(若有)
3. 点击「批量生成」
4. 断言有反馈或提示,不断言外围回写成功",批量入口可达。,
IFACE-PER-005,基础设置 · 接口管理,外围产品变更 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges),"1. 确认已加载 storageState(test_1)
2. 断言表头含 变更类型、产品、外围字段等
3. 若有数据行且存在行操作,断言操作列含 详情",核心列完整;列表结构正确。,
IFACE-PER-006,基础设置 · 接口管理,外围产品变更 · 列表,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-PER-007,基础设置 · 接口管理,外围产品变更 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-PER-008,基础设置 · 接口管理,外围产品变更 · 导出,导出变更明细,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外围产品变更」权限;已进入外围产品变更页(/spd/basic/interface/interface/peripheralProductChanges),"1. 确认已加载 storageState(test_1)
2. 点击「导 出」或「导出」或「导出明细」
3. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-EXT-001,基础设置 · 接口管理,外部变更明细信息查询 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外部变更明细信息查询」权限;已进入外部变更明细信息查询页(/spd/basic/interface/interface/peripheralChangeDetail),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-EXT-002,基础设置 · 接口管理,外部变更明细信息查询 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外部变更明细信息查询」权限;已进入外部变更明细信息查询页(/spd/basic/interface/interface/peripheralChangeDetail);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-EXT-003,基础设置 · 接口管理,外部变更明细信息查询 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外部变更明细信息查询」权限;已进入外部变更明细信息查询页(/spd/basic/interface/interface/peripheralChangeDetail),"1. 确认已加载 storageState(test_1)
2. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-EXT-004,基础设置 · 接口管理,外部变更明细信息查询 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外部变更明细信息查询」权限;已进入外部变更明细信息查询页(/spd/basic/interface/interface/peripheralChangeDetail),"1. 确认已加载 storageState(test_1)
2. 断言表头含 变更单号、产品、变更字段、时间等
3. 若有数据,抽样首行字段非空",核心列完整;列表结构正确。,
IFACE-EXT-005,基础设置 · 接口管理,外部变更明细信息查询 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外部变更明细信息查询」权限;已进入外部变更明细信息查询页(/spd/basic/interface/interface/peripheralChangeDetail);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-EXT-006,基础设置 · 接口管理,外部变更明细信息查询 · 导出,导出入口可触发,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 外部变更明细信息查询」权限;已进入外部变更明细信息查询页(/spd/basic/interface/interface/peripheralChangeDetail),"1. 确认已加载 storageState(test_1)
2. 点击「导 出」或「导出」或「导出明细」
3. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-PPD-001,基础设置 · 接口管理,平台产品价格差异查询 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 平台产品价格差异查询」权限;已进入平台产品价格差异查询页(/spd/basic/interface/interface/platformPriceCompare),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-PPD-002,基础设置 · 接口管理,平台产品价格差异查询 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 平台产品价格差异查询」权限;已进入平台产品价格差异查询页(/spd/basic/interface/interface/platformPriceCompare);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-PPD-003,基础设置 · 接口管理,平台产品价格差异查询 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 平台产品价格差异查询」权限;已进入平台产品价格差异查询页(/spd/basic/interface/interface/platformPriceCompare),"1. 确认已加载 storageState(test_1)
2. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-PPD-004,基础设置 · 接口管理,平台产品价格差异查询 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 平台产品价格差异查询」权限;已进入平台产品价格差异查询页(/spd/basic/interface/interface/platformPriceCompare),"1. 确认已加载 storageState(test_1)
2. 断言表头含 平台价、SPD 价、差异幅度等
3. 若有数据,抽样首行字段非空",核心列完整;列表结构正确。,
IFACE-PPD-005,基础设置 · 接口管理,平台产品价格差异查询 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 平台产品价格差异查询」权限;已进入平台产品价格差异查询页(/spd/basic/interface/interface/platformPriceCompare);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-PPD-006,基础设置 · 接口管理,平台产品价格差异查询 · 导出,导出入口可触发,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 平台产品价格差异查询」权限;已进入平台产品价格差异查询页(/spd/basic/interface/interface/platformPriceCompare),"1. 确认已加载 storageState(test_1)
2. 点击「导 出」或「导出」或「导出明细」
3. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-LOG-001,基础设置 · 接口管理,接口日志 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-LOG-002,基础设置 · 接口管理,接口日志 · 高级筛选抽屉,全量查询条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(不写死业务数据,见 rules 3.4)
3. 快捷区填入样本中有值的可见字段
4. 高级筛选抽屉填入样本中所有非空字段(文本直接填、下拉选同值;禁用字段记录默认)
5. 「查询/筛选」后抽样首行;首行同时满足样本中全部已填字段",查询正常无报错;查询条件写值正常;查询结果与查询条件一致。,
IFACE-LOG-003,基础设置 · 接口管理,接口日志 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log),"1. 确认已加载 storageState(test_1)
2. 接口名称填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-LOG-004,基础设置 · 接口管理,接口日志 · 高级筛选抽屉,点击高级筛选打开抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log),"1. 确认已加载 storageState(test_1)
2. 点击「高级筛选」
3. 断言抽屉/面板打开,关键字段可交互
4. 关闭抽屉,快捷区条件不被误清空(以现网为准)",高级筛选可打开。,
IFACE-LOG-005,基础设置 · 接口管理,接口日志 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log),"1. 确认已加载 storageState(test_1)
2. 断言表头含 接口名称、请求时间、状态、耗时等
3. 若有数据行且存在行操作,断言操作列含 查看",核心列完整;列表结构正确。,
IFACE-LOG-006,基础设置 · 接口管理,接口日志 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
IFACE-LOG-007,基础设置 · 接口管理,接口日志 · 列表,行内「查看」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「查看」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-LOG-008,基础设置 · 接口管理,接口日志 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-LOG-009,基础设置 · 接口管理,接口日志 · 导出,导出明细可触发,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 接口日志」权限;已进入接口日志页(/spd/basic/interface/interface/log),"1. 确认已加载 storageState(test_1)
2. 点击「导 出」或「导出」或「导出明细」
3. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-PSH-001,基础设置 · 接口管理,推送物价 · scjs 内嵌 iframe 业务区,scjs 业务区加载,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 断言 frame 内 Tab 与查询区可见",iframe 内业务区可交互。,
IFACE-PSH-002,基础设置 · 接口管理,推送物价 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-PSH-003,基础设置 · 接口管理,推送物价 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
5. 快捷区可见非空条件全部填入后查询
6. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-PSH-004,基础设置 · 接口管理,推送物价 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 产品名称/编号关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
5. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-PSH-005,基础设置 · 接口管理,推送物价 · 状态 Tab,推送状态 Tab 切换,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 切换「全部」「待推送」「推送成功」「推送失败」「不处理」Tab
5. 断言列表与 Tab 语义一致或空态",Tab 切换正常。,
IFACE-PSH-006,基础设置 · 接口管理,推送物价 · 行内操作,行内「推送」层打开后取消,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 首行点「推送」
5. 断言出现确认/表单层,点击取消或关闭
6. 列表行状态不误改为成功",推送入口可达;取消不落库。,
IFACE-PSH-007,基础设置 · 接口管理,推送物价 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification),"1. 确认已加载 storageState(test_1)
2. 断言表头含 物价项目、推送状态等
3. 若有数据,抽样首行字段非空",核心列完整;列表结构正确。,
IFACE-PSH-008,基础设置 · 接口管理,推送物价 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 推送物价」权限;已进入推送物价页(/spd/basic/interface/scjs/yc/priceverification);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-CHC-001,基础设置 · 接口管理,收费项目对码 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-CHC-002,基础设置 · 接口管理,收费项目对码 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-CHC-003,基础设置 · 接口管理,收费项目对码 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode),"1. 确认已加载 storageState(test_1)
2. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-CHC-004,基础设置 · 接口管理,收费项目对码 · 手动新增弹窗,打开手动新增弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode),"1. 确认已加载 storageState(test_1)
2. 点击「手动新增」或等价入口
3. 断言弹窗/抽屉可见,含「取 消」「确 定」或关闭",手动新增层打开;关键按钮可见。,
IFACE-CHC-005,基础设置 · 接口管理,收费项目对码 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode),"1. 确认已加载 storageState(test_1)
2. 断言表头含 HIS 收费项、SPD 收费项、对码关系
3. 若有数据行且存在行操作,断言操作列含 编辑",核心列完整;列表结构正确。,
IFACE-CHC-006,基础设置 · 接口管理,收费项目对码 · 列表,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-CHC-007,基础设置 · 接口管理,收费项目对码 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-CHC-008,基础设置 · 接口管理,收费项目对码 · 手动新增弹窗,必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 收费项目对码」权限;已进入收费项目对码页(/spd/basic/interface/interface/hisCode),"1. 确认已加载 storageState(test_1)
2. 打开手动新增,必填项留空后点击「确 定」
3. 断言出现必填提示,弹窗仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-CZN-001,基础设置 · 接口管理,智能柜与库区对码 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-CZN-002,基础设置 · 接口管理,智能柜与库区对码 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-CZN-003,基础设置 · 接口管理,智能柜与库区对码 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area),"1. 确认已加载 storageState(test_1)
2. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-CZN-004,基础设置 · 接口管理,智能柜与库区对码 · 新增弹窗,打开新增弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area),"1. 确认已加载 storageState(test_1)
2. 点击「新增」或等价入口
3. 断言弹窗/抽屉可见,含「取 消」「确 定」或关闭",新增层打开;关键按钮可见。,
IFACE-CZN-005,基础设置 · 接口管理,智能柜与库区对码 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area),"1. 确认已加载 storageState(test_1)
2. 断言表头含 智能柜、库区、对码关系
3. 若有数据行且存在行操作,断言操作列含 编辑、删除",核心列完整;列表结构正确。,
IFACE-CZN-006,基础设置 · 接口管理,智能柜与库区对码 · 列表,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-CZN-007,基础设置 · 接口管理,智能柜与库区对码 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-CZN-008,基础设置 · 接口管理,智能柜与库区对码 · 导出,导出入口可触发,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area),"1. 确认已加载 storageState(test_1)
2. 点击「导 出」或「导出」或「导出明细」
3. 断言无未捕获异常(不校验文件内容)",导出流程可启动。,
IFACE-CZN-009,基础设置 · 接口管理,智能柜与库区对码 · 新增弹窗,必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 智能柜与库区对码」权限;已进入智能柜与库区对码页(/spd/basic/interface/interface/cabinet-area),"1. 确认已加载 storageState(test_1)
2. 打开新增,必填项留空后点击「确 定」
3. 断言出现必填提示,弹窗仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-MAT-001,基础设置 · 接口管理,物资字典推送记录 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 物资字典推送记录」权限;已进入物资字典推送记录页(/spd/basic/interface/scjs/yc/pushGoods),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-MAT-002,基础设置 · 接口管理,物资字典推送记录 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 物资字典推送记录」权限;已进入物资字典推送记录页(/spd/basic/interface/scjs/yc/pushGoods);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-MAT-003,基础设置 · 接口管理,物资字典推送记录 · scjs 内嵌 iframe 业务区,scjs 业务区加载,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 物资字典推送记录」权限;已进入物资字典推送记录页(/spd/basic/interface/scjs/yc/pushGoods),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 断言 frame 内查询与列表可见",iframe 业务区可交互。,
IFACE-MAT-004,基础设置 · 接口管理,物资字典推送记录 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 物资字典推送记录」权限;已进入物资字典推送记录页(/spd/basic/interface/scjs/yc/pushGoods),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
5. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-MAT-005,基础设置 · 接口管理,物资字典推送记录 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 物资字典推送记录」权限;已进入物资字典推送记录页(/spd/basic/interface/scjs/yc/pushGoods),"1. 确认已加载 storageState(test_1)
2. 断言表头含 推送批次、产品、推送状态、时间等
3. 若有数据行且存在行操作,断言操作列含 详情",核心列完整;列表结构正确。,
IFACE-MAT-006,基础设置 · 接口管理,物资字典推送记录 · 列表,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 物资字典推送记录」权限;已进入物资字典推送记录页(/spd/basic/interface/scjs/yc/pushGoods);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-MAT-007,基础设置 · 接口管理,物资字典推送记录 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 物资字典推送记录」权限;已进入物资字典推送记录页(/spd/basic/interface/scjs/yc/pushGoods);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-REQ-001,基础设置 · 接口管理,请领单接口查询 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 请领单接口查询」权限;已进入请领单接口查询页(/spd/basic/interface/scjs/yc/deptBuy),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-REQ-002,基础设置 · 接口管理,请领单接口查询 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 请领单接口查询」权限;已进入请领单接口查询页(/spd/basic/interface/scjs/yc/deptBuy);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-REQ-003,基础设置 · 接口管理,请领单接口查询 · scjs 内嵌 iframe 业务区,scjs 业务区加载,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 请领单接口查询」权限;已进入请领单接口查询页(/spd/basic/interface/scjs/yc/deptBuy),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 断言 frame 内查询与列表可见",iframe 业务区可交互。,
IFACE-REQ-004,基础设置 · 接口管理,请领单接口查询 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 请领单接口查询」权限;已进入请领单接口查询页(/spd/basic/interface/scjs/yc/deptBuy),"1. 确认已加载 storageState(test_1)
2. 获取 scjs 业务 frame(`page.frameLocator('iframe[src*=""scjs""]')` 或 PO 封装)
3. 在 frame 内执行后续操作,不在 SPD 壳层菜单上断言业务列表
4. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
5. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-REQ-005,基础设置 · 接口管理,请领单接口查询 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 请领单接口查询」权限;已进入请领单接口查询页(/spd/basic/interface/scjs/yc/deptBuy),"1. 确认已加载 storageState(test_1)
2. 断言表头含 请领单号、科室、接口状态等
3. 若有数据行且存在行操作,断言操作列含 详情",核心列完整;列表结构正确。,
IFACE-REQ-006,基础设置 · 接口管理,请领单接口查询 · 列表,行内「详情」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 请领单接口查询」权限;已进入请领单接口查询页(/spd/basic/interface/scjs/yc/deptBuy);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「详情」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-REQ-007,基础设置 · 接口管理,请领单接口查询 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 请领单接口查询」权限;已进入请领单接口查询页(/spd/basic/interface/scjs/yc/deptBuy);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
IFACE-CMP-001,基础设置 · 接口管理,院区对码 · 快捷筛选查询,默认条件查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping),"1. 确认已加载 storageState(test_1)
2. 点击「查 询」或「查询」
3. 断言列表有数据或明确空态,「共 N 条」与当前结果一致",默认查询无报错;总数与列表一致。,
IFACE-CMP-002,基础设置 · 接口管理,院区对码 · 快捷筛选查询,全量可见条件组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping);默认查询至少 1 条,否则 skip,"1. 确认已加载 storageState(test_1)
2. 默认查询 → 从首行提取全量样本(只填当前结果里有值的条件,见 rules 3.2)
3. 快捷区可见非空条件全部填入后查询
4. 抽样首行同时满足全部已填条件;无未捕获异常",查询正常无报错;查询结果与查询条件一致。,
IFACE-CMP-003,基础设置 · 接口管理,院区对码 · 列表,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping),"1. 确认已加载 storageState(test_1)
2. 筛选关键字填入 `__NOT_EXIST_IFACE__99999` 后查询
3. 断言表头仍在,0 行或空态,分页总数为 0",无匹配不报错;不展示过期成功态数据。,
IFACE-CMP-004,基础设置 · 接口管理,院区对码 · 新增对码弹窗,打开新增对码弹窗/抽屉,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping),"1. 确认已加载 storageState(test_1)
2. 点击「新增对码」或等价入口
3. 断言弹窗/抽屉可见,含「取 消」「确 定」或关闭",新增对码层打开;关键按钮可见。,
IFACE-CMP-005,基础设置 · 接口管理,院区对码 · 列表,列表核心列完整,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping),"1. 确认已加载 storageState(test_1)
2. 断言表头含 SPD 院区、外部院区编码/名称
3. 若有数据行且存在行操作,断言操作列含 编辑、删除",核心列完整;列表结构正确。,
IFACE-CMP-006,基础设置 · 接口管理,院区对码 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping);列表表头已加载,"1. 确认已加载 storageState(test_1)
2. 默认查询后点击表格工具栏列设置(齿轮)
3. 取消勾选一列非核心字段并关闭面板,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
IFACE-CMP-007,基础设置 · 接口管理,院区对码 · 列表,行内「编辑」可达(只读冒烟),高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping);列表至少 1 条,"1. 确认已加载 storageState(test_1)
2. 首行有数据时点击「编辑」
3. 断言进入预期弹窗/抽屉/详情,可见取消或关闭
4. 关闭弹层,列表仍可见",行内操作可达;关闭后回到列表。,
IFACE-CMP-008,基础设置 · 接口管理,院区对码 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping);总条数大于一页,否则 skip,"1. 确认已加载 storageState(test_1)
2. 记录第 1 页首行关键字段
3. 点击页码「2」或「下一页」
4. 断言页码高亮正确,首行数据与第 1 页不同",翻页成功;数据更换。,
IFACE-CMP-009,基础设置 · 接口管理,院区对码 · 新增对码弹窗,必填为空拦截,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState;具备「基础设置 → 接口管理 → 院区对码」权限;已进入院区对码页(/spd/basic/interface/interface/branchMapping),"1. 确认已加载 storageState(test_1)
2. 打开新增对码,必填项留空后点击「确 定」
3. 断言出现必填提示,弹窗仍打开,列表不刷新为成功态",确定被拦截;不落库。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
FLOW-INS-001,基础设置 · 流程设置,审批流实例 · 筛选与查询,重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
FLOW-INS-001,基础设置 · 流程设置,审批流实例 · 快捷筛选查询,重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 填写单据编号等条件后点击「重 置」
3. 断言日期回到默认区间,其余条件清空,列表刷新",重置后日期与其它条件恢复默认。,
FLOW-INS-002,基础设置 · 流程设置,审批流实例 · 筛选与查询,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
3. 断言日期回到默认区间,其余条件清空,列表刷新",重置后日期与其它条件恢复默认。,
FLOW-INS-002,基础设置 · 流程设置,审批流实例 · 快捷筛选查询,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 单据编号填入 `__NOT_EXIST_FLOW__99999`,点击「查 询」
3. 断言空态且分页总数为 0",无匹配不报错;总数为 0。,
FLOW-INS-003,基础设置 · 流程设置,审批流实例 · 列表与分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);总条数大于一页,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
3. 断言空态且分页总数为 0",无匹配不报错;总数为 0。,
FLOW-INS-003,基础设置 · 流程设置,审批流实例 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);总条数大于一页,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 记录第 1 页首行单据编号
3. 翻到第 2 页
4. 断言数据更换;筛选条件保持",翻页成功;筛选不丢失。,
4. 断言数据更换;筛选条件保持",翻页成功;筛选不丢失。,
FLOW-INS-004,基础设置 · 流程设置,审批流实例 · 审批详情,打开详情对应当前行,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);列表至少 1 条,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 记录首行 `${sampleOrderNo}`
3. 点击「详情」
4. 断言打开该单审批过程,标题或单号含 `${sampleOrderNo}`",详情单号与当前行一致。,
4. 断言打开该单审批过程,标题或单号含 `${sampleOrderNo}`",详情单号与当前行一致。,
FLOW-INS-005,基础设置 · 流程设置,审批流实例 · 审批详情,关闭详情保留列表状态,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);列表至少 1 条,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 填写单据编号查询后打开详情
3. 点返回/关闭
4. 断言筛选条件与列表仍是打开前的查询结果",返回后条件与页码保持。,
4. 断言筛选条件与列表仍是打开前的查询结果",返回后条件与页码保持。,
FLOW-INS-006,基础设置 · 流程设置,审批流实例 · 审批详情,详情只读,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);列表至少 1 条,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 打开首行详情
3. 断言无保存审批人/改条件的提交按钮,或此类控件不可用
4. 返回列表",详情只读;改配置须到审批流程设置。,
FLOW-INS-007,基础设置 · 流程设置,审批流实例 · 列设置,列设置取消勾选后再勾选列表列恢复,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);列表表头已加载;存在可隐藏的非核心列(如发起部门),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
4. 返回列表",详情只读;改配置须到审批流程设置。,
FLOW-INS-007,基础设置 · 流程设置,审批流实例 · 列表,列设置取消勾选后再勾选列表列恢复,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);列表表头已加载;存在可隐藏的非核心列(如发起部门),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」并等待列表稳定
3. 打开列设置,取消勾选一列非核心字段并关闭
4. 断言表头隐藏该列
5. 再次打开列设置,勾选恢复并关闭
6. 断言表头恢复显示",列设置 toggle 后列表列展示与勾选状态一致。,
FLOW-INS-008,基础设置 · 流程设置,审批流实例 · 列表与分页,切换20条每页页面正常且列表同步,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);总条数大于 20,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」并等待列表稳定
3. 记录总条数与当前页可见行数
4. 分页切换为「20 条/页」
5. 断言每页条数显示为 20;当前页行数=min(总条数,20);总条数不变",切换后列表与分页文案同步。,
FLOW-INS-009,基础设置 · 流程设置,审批流实例 · 筛选与查询,首行五项组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);默认查询至少 1 条且首行单据编号、审批状态、业务类型、发起时间非空,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
6. 断言表头恢复显示",列设置 toggle 后列表列展示与勾选状态一致。,
FLOW-INS-008,基础设置 · 流程设置,审批流实例 · 分页,切换20条每页页面正常且列表同步,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);总条数大于 20,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」,记录分页「共 N 条」与当前页可见行数
3. 分页区切换每页条数为「20 条/页」
4. 断言分页显示 20 条/页;总条数 N 不变;当前页行数为 min(N,20) 且与切换前不同;筛选区、表头可见无报错",切换 20 条/页成功;页面正常;列表可见行数随每页条数同步变化且总数不变。,
FLOW-INS-009,基础设置 · 流程设置,审批流实例 · 快捷筛选查询,首行五项组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流实例」权限;已进入审批流实例页(/spd/basic/flowSet/workflow/flowCase,无 iframe);默认查询至少 1 条且首行单据编号、审批状态、业务类型、发起时间非空,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 默认查询后读取首行 `${sampleOrderNo}`、审批状态、业务类型、发起时间、摘要(摘要为 `--` 时可不参与)
3. 重置后填入上述条件组合,点击「查 询」
4. 断言结果至多 1 条,且单据编号、审批状态、业务类型与首行一致;发起时间落在所选日内",组合查询命中首行。,
4. 断言结果至多 1 条,且单据编号、审批状态、业务类型与首行一致;发起时间落在所选日内",组合查询命中首行。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
FLOW-DEF-001,基础设置 · 流程设置,审批流程设置 · 页面进入,菜单进入审批流程设置页,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 按菜单「基础设置 → 流程设置 → 审批流程设置」进入,或 `openPath` 打开 `/spd/basic/flowSet/workflow/flowSet`
3. 断言 URL 含 `/spd/basic/flowSet/workflow/flowSet`
4. 断言左侧业务类型、右侧默认审批流与自定义审批流、「保 存」「重 置」可见",进入审批流程设置;不误入审批流实例。,
FLOW-DEF-002,基础设置 · 流程设置,审批流程设置 · 页面进入,未登录访问拦截,高,测试环境可访问;使用独立 context,storageState 为空(不加载 test_1 登录态),"1. 新建独立 BrowserContext,不加载 auth/user.json
2. 清除登录态后直接打开 `/spd/basic/flowSet/workflow/flowSet`
3. 断言跳转登录或不展示审批流配置",未登录不可见审批流配置。,
FLOW-DEF-003,基础设置 · 流程设置,审批流程设置 · 左侧业务类型,业务类型列表可见,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
FLOW-DEF-001,基础设置 · 流程设置,审批流程设置 · 左侧业务类型,业务类型列表可见,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 断言左侧可见采购计划等类型且有当前高亮项
3. 读取 `${sampleBizType}`",类型列表可见;当前项高亮。,
FLOW-DEF-004,基础设置 · 流程设置,审批流程设置 · 左侧业务类型,清空关键字恢复全量,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
3. 读取 `${sampleBizType}`",类型列表可见;当前项高亮。,
FLOW-DEF-002,基础设置 · 流程设置,审批流程设置 · 左侧业务类型,清空关键字恢复全量,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 记录过滤前类型数量
3. 输入关键字后再清空
4. 断言数量恢复",清空后类型列表恢复全量。,
FLOW-DEF-005,基础设置 · 流程设置,审批流程设置 · 默认审批流,默认审批流节点可见,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
4. 断言数量恢复",清空后类型列表恢复全量。,
FLOW-DEF-003,基础设置 · 流程设置,审批流程设置 · 默认审批流,默认审批流节点可见,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 选中「采购计划」(或当前默认类型)
3. 断言「默认审批流」区域可见节点卡片,含节点/账号/人员三行信息(按卡片容器取文本)",默认流节点结构可见;不点保存。,
FLOW-DEF-006,基础设置 · 流程设置,审批流程设置 · 自定义审批流,新增流程增加一行后重置,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
3. 断言「默认审批流」区域可见节点卡片,含节点/账号/人员三行信息(按卡片容器取文本)",默认流节点结构可见;不点保存。,
FLOW-DEF-004,基础设置 · 流程设置,审批流程设置 · 自定义审批流,新增流程增加一行后重置,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 记录当前自定义流行数
3. 点击「新增流程」
4. 断言行数 +1,新行含流程名称、条件、审批流程、删除
5. 点击「重 置」,断言行数回到操作前,不点「保 存」",可新增行;重置放弃未保存行。,
FLOW-DEF-007,基础设置 · 流程设置,审批流程设置 · 自定义审批流,空行保存被拦截后重置,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
5. 点击「重 置」,断言行数回到操作前,不点「保 存」",可新增行;重置放弃未保存行。,
FLOW-DEF-005,基础设置 · 流程设置,审批流程设置 · 自定义审批流,空行保存被拦截后重置,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「新增流程」得到空行
3. 点击「保 存」
4. 断言出现必填拦截提示,配置未按成功态关闭
5. 点击「重 置」,放弃该空行",空名称/条件/节点不能落库;拦截后重置恢复。,
FLOW-DEF-008,基础设置 · 流程设置,审批流程设置 · 条件配置,打开条件配置后取消,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe);当前类型至少 1 条自定义流,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
5. 点击「重 置」,放弃该空行",空名称/条件/节点不能落库;拦截后重置恢复。,
FLOW-DEF-006,基础设置 · 流程设置,审批流程设置 · 条件配置,打开条件配置后取消,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe);当前类型至少 1 条自定义流,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 若无自定义行则 skip
3. 点击首条自定义流条件列「编辑」
4. 断言打开「条件配置」
5. 点「取 消」,断言行内条件文案与打开前一致",条件配置可打开;取消不改行内条件。,
FLOW-DEF-009,基础设置 · 流程设置,审批流程设置 · 保存与重置,重置放弃未保存改动,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
5. 点「取 消」,断言行内条件文案与打开前一致",条件配置可打开;取消不改行内条件。,
FLOW-DEF-007,基础设置 · 流程设置,审批流程设置 · 保存与重置,重置放弃未保存改动,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 流程设置 → 审批流程设置」权限;已进入审批流程设置页(/spd/basic/flowSet/workflow/flowSet,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「新增流程」增加一行
3. 点击「重 置」
4. 断言自定义流行回到上次保存结果",重置不提交;未保存行消失。,
4. 断言自定义流行回到上次保存结果",重置不提交;未保存行消失。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
USER-UNI-001,基础设置 · 用户管理,医共体用户管理 · 筛选与查询,默认查询列表有数据或空态明确,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-UNI-001,基础设置 · 用户管理,医共体用户管理 · 快捷筛选查询,默认查询列表有数据或空态明确,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」并等待列表稳定
3. 断言出现数据行,或空态且分页总数为 0",查询无报错;有数据时「共 N 条」N≥1。,
USER-UNI-002,基础设置 · 用户管理,医共体用户管理 · 筛选与查询,重置恢复默认医院,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-UNI-002,基础设置 · 用户管理,医共体用户管理 · 快捷筛选查询,重置恢复默认医院,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 更改所属医院或姓名后点击「重 置」
3. 断言所属医院恢复进入页时的默认值,列表刷新",医院等条件恢复默认。,
USER-UNI-003,基础设置 · 用户管理,医共体用户管理 · 筛选与查询,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-UNI-003,基础设置 · 用户管理,医共体用户管理 · 快捷筛选查询,无匹配空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 姓名框填入 `__NOT_EXIST_USER__99999`,点击「查 询」
3. 断言空态且分页总数为 0",无匹配不报错;总数为 0。,
USER-UNI-004,基础设置 · 用户管理,医共体用户管理 · 列表与分页,列表列顺序含所属医院,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-UNI-004,基础设置 · 用户管理,医共体用户管理 · 列表,列表列顺序含所属医院,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 断言列顺序为登录账号、姓名、联系方式、所属医院、所属科室、医院员工编号、角色、科室任职数、操作
3. 勿用用户管理页列断言(用户管理无所属医院且姓名在登录账号前)",列顺序与用户管理页不同;含所属医院。,
USER-UNI-005,基础设置 · 用户管理,医共体用户管理 · 列表与分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);总条数大于一页,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-UNI-005,基础设置 · 用户管理,医共体用户管理 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);总条数大于一页,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 记录第 1 页首行登录账号
3. 翻到第 2 页
4. 断言数据更换且所属医院筛选仍保持",翻页成功;医院条件不丢失。,
USER-UNI-006,基础设置 · 用户管理,医共体用户管理 · 列表与分页,与用户管理页同一用户字段一致,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);两页都能查到同一账号,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-UNI-006,基础设置 · 用户管理,医共体用户管理 · 列表,与用户管理页同一用户字段一致,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);两页都能查到同一账号,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 记录本页首行 `${sampleLoginName}`、姓名、所属科室、角色
3. 打开用户管理页,按登录账号查询同一用户
4. 断言姓名、角色、所属科室一致;本页仅多「所属医院」",同一登录账号跨页字段一致。,
......@@ -25,10 +25,10 @@ USER-UNI-007,基础设置 · 用户管理,医共体用户管理 · 新增与编
USER-UNI-008,基础设置 · 用户管理,医共体用户管理 · 新增与编辑,新增取消不落库,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 打开新增,账号填 `${uniqLogin}` 后点「取 消」
3. 当前医院下列表查询该账号,断言不存在",取消后当前医院列表不出现该账号。,
USER-UNI-009,基础设置 · 用户管理,医共体用户管理 · 列表与分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);默认查询总条数大于 10 且切换前可见行数不等于 min(N,20),否则 skip","1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-UNI-009,基础设置 · 用户管理,医共体用户管理 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);默认查询总条数大于 10 且切换前可见行数不等于 min(N,20),否则 skip","1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」,记录分页「共 N 条」与当前页可见行数
3. 分页区切换每页条数为「20 条/页」
4. 断言分页显示 20 条/页;总条数 N 不变;当前页行数为 min(N,20) 且与切换前不同;所属医院筛选、表头可见无报错",切换 20 条/页成功;页面正常;列表可见行数随每页条数同步变化且总数不变。,
4. 断言分页显示 20 条/页;总条数 N 不变;当前页行数为 min(N,20) 且与切换前不同;筛选区、表头可见无报错",切换 20 条/页成功;页面正常;列表可见行数随每页条数同步变化且总数不变。,
USER-UNI-010,基础设置 · 用户管理,医共体用户管理 · 授权,打开授权后取消不生效,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);列表至少 1 条,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击首行「授权」
3. 断言打开用户角色授权层,可见可勾选菜单/功能
......@@ -39,3 +39,7 @@ USER-UNI-011,基础设置 · 用户管理,医共体用户管理 · 授权,授权
3. 点击该行「授权」
4. 断言弹出用户角色授权弹框,弹框展示的账号信息与所选行登录账号、姓名一致
5. 关闭弹框",用户角色授权弹框打开;弹框账号与所选列表行一致。,
USER-UNI-012,基础设置 · 用户管理,医共体用户管理 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 医共体用户管理」权限;已进入医共体用户管理页(/spd/basic/user/platform/personCom,无 iframe);列表表头已加载;存在可隐藏的非核心列,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」并等待列表稳定
3. 打开列设置,取消勾选一列非核心字段并关闭,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
USER-USR-001,基础设置 · 用户管理,用户管理 · 筛选与查询,重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-USR-001,基础设置 · 用户管理,用户管理 · 快捷筛选查询,重置恢复默认,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 填写姓名等筛选条件后点击「重 置」
3. 断言筛选字段恢复默认,列表按默认规则刷新",条件恢复默认;列表刷新。,
USER-USR-002,基础设置 · 用户管理,用户管理 · 筛选与查询,高级筛选按状态过滤,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-USR-002,基础设置 · 用户管理,用户管理 · 快捷筛选查询,高级筛选按状态过滤,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 展开高级筛选,状态下拉选择「启用」或「禁用」
3. 点击「筛 选」
4. 断言列表仅保留对应状态用户(无匹配则空态且总数为 0)",按状态过滤成功;无报错。,
USER-USR-003,基础设置 · 用户管理,用户管理 · 筛选与查询,无匹配结果空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-USR-003,基础设置 · 用户管理,用户管理 · 快捷筛选查询,无匹配结果空态(mock反例),中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe),"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 姓名框填入 `__NOT_EXIST_USER__99999`
3. 点击「查 询」
4. 断言空态或「暂无数据」,分页总数为 0",无匹配时不报错;空态明确;总数为 0。,
USER-USR-004,基础设置 · 用户管理,用户管理 · 列表与分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);默认查询总条数大于一页,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-USR-004,基础设置 · 用户管理,用户管理 · 分页,分页翻至第 2 页,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);默认查询总条数大于一页,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 记录第 1 页首行登录账号
3. 点击页码「2」或「下一页」
4. 断言页码高亮为 2,首行账号与第 1 页不同",翻页成功;数据更换。,
......@@ -24,16 +24,17 @@ USER-USR-006,基础设置 · 用户管理,用户管理 · 新增用户,新增取
USER-USR-007,基础设置 · 用户管理,用户管理 · 编辑用户,编辑时账号只读,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);列表至少 1 条,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 打开首行编辑
3. 断言登录账号不可改(disabled/readonly 或无法输入)",编辑态登录账号只读。,
USER-USR-008,基础设置 · 用户管理,用户管理 · 编辑用户,编辑弹窗可见签名图片,中,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);列表至少 1 条,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 打开首行编辑
3. 断言可见「签名图片」区域(有图则展示,无图则上传入口可见)
4. 点「取 消」,不保存",签名图片控件可见;本条不上传、不保存。,
USER-USR-008,基础设置 · 用户管理,用户管理 · 编辑用户,编辑弹框账号与列表登录账号一致,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);列表至少 1 条且登录账号非空,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」,任选列表一条登录账号非空的行,记录 `${sampleLoginName}`
3. 点击该行「编辑」
4. 断言弹出编辑弹框,弹框内账号与所选行登录账号一致
5. 点「取 消」,不保存",编辑弹框打开;弹框账号与所选列表行登录账号一致;本条不保存。,
USER-USR-009,基础设置 · 用户管理,用户管理 · 授权,打开授权后取消不生效,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);列表至少 1 条,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击首行「授权」
3. 断言打开授权层(弹窗或权限树),可见可勾选菜单/功能
4. 如可勾选则改一处勾选后点取消/关闭
5. 再次打开同一用户授权,断言勾选与操作前一致",授权层可打开;取消后勾选不落库。,
USER-USR-010,基础设置 · 用户管理,用户管理 · 列表与分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);默认查询总条数大于 10 且切换前可见行数不等于 min(N,20),否则 skip","1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
USER-USR-010,基础设置 · 用户管理,用户管理 · 分页,切换20条每页页面正常且列表同步,中,"测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);默认查询总条数大于 10 且切换前可见行数不等于 min(N,20),否则 skip","1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」,记录分页「共 N 条」与当前页可见行数
3. 分页区切换每页条数为「20 条/页」
4. 断言分页显示 20 条/页;总条数 N 不变;当前页行数为 min(N,20) 且与切换前不同;筛选区、表头可见无报错",切换 20 条/页成功;页面正常;列表可见行数随每页条数同步变化且总数不变。,
......@@ -42,3 +43,13 @@ USER-USR-011,基础设置 · 用户管理,用户管理 · 授权,授权弹框账
3. 点击该行「授权」
4. 断言弹出用户角色授权弹框,弹框展示的账号信息与所选行登录账号、姓名一致
5. 关闭弹框",用户角色授权弹框打开;弹框账号与所选列表行一致。,
USER-USR-012,基础设置 · 用户管理,用户管理 · 列表,列设置隐藏后再恢复,低,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);列表表头已加载;存在可隐藏的非核心列,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」并等待列表稳定
3. 打开列设置,取消勾选一列非核心字段并关闭,断言表头隐藏
4. 再次打开列设置勾选恢复并关闭,断言表头恢复",勾选状态与表头一致。,
USER-USR-013,基础设置 · 用户管理,用户管理 · 快捷筛选查询,姓名科室角色状态组合查询,高,测试环境可访问;正例账号 test_1 已通过 auth.setup 写入 storageState 登录(密码仅存 .env TEST_PASS,勿写入本表);具备「基础设置 → 用户管理 → 用户管理」权限;已进入用户管理页(/spd/basic/user/platform/person,无 iframe);默认查询至少 1 条且存在姓名、所属科室、角色均非空的样本行,否则 skip,"1. 确认 chromium 已加载 storageState(auth.setup,正例账号 test_1),无需在用例内重复登录
2. 点击「查 询」,从样本行读取 `${sampleUserName}`、`${sampleDept}`、`${sampleRole}`(所属科室/角色为空或 `--` 则另选有效行)
3. 姓名框填入 `${sampleUserName}`;科室下拉选择 `${sampleDept}`;角色下拉选择 `${sampleRole}`
4. 展开高级筛选,状态下拉选择「启用」或与样本一致的状态
5. 点击「查 询」或高级筛选「筛 选」
6. 断言结果行同时满足:姓名含关键字、所属科室与所选一致、角色列含所选角色、状态与所选一致(无匹配则空态且总数为 0);条件之间为「且」关系",组合查询无报错;姓名、科室、角色、状态条件同时生效;结果与已填条件一致或明确空态。,
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