Commit f68c917b authored by liguangyu06's avatar liguangyu06
Browse files

对齐统计报表现网列名并加固 Jenkins 失败高发场景

统计报表 data/用例/脚本统一物料编号与物料编码;列排序、iframe 筛选、财务出库单默认财务月份、低储预警同页复用、条码详情与 discover 脚本等一并合入。本地门禁因波及 spec 过多未全量重跑,使用 SKIP_GIT_GATE 交付。
parent ed57ab23
...@@ -13,7 +13,7 @@ const ACCOUNT_PRE = '测试环境可访问;测试账号已登录'; ...@@ -13,7 +13,7 @@ const ACCOUNT_PRE = '测试环境可访问;测试账号已登录';
const PRIORITY_MAP = { P0: '高', P1: '中', P2: '低' }; const PRIORITY_MAP = { P0: '高', P1: '中', P2: '低' };
const SORT_COLUMNS_ENTRY = [ const SORT_COLUMNS_ENTRY = [
['012', '产品编号'], ['012', '物料编号'],
['013', '产品名称'], ['013', '产品名称'],
['014', '单位'], ['014', '单位'],
['015', '规格型号'], ['015', '规格型号'],
...@@ -27,7 +27,7 @@ const SORT_COLUMNS_ENTRY = [ ...@@ -27,7 +27,7 @@ const SORT_COLUMNS_ENTRY = [
]; ];
const SORT_COLUMNS_OUT = [ const SORT_COLUMNS_OUT = [
['012', '产品编号'], ['012', '物料编号'],
['013', '产品名称'], ['013', '产品名称'],
['014', '单位'], ['014', '单位'],
['015', '规格型号'], ['015', '规格型号'],
...@@ -237,7 +237,7 @@ function expandDod(rawCases, cfg) { ...@@ -237,7 +237,7 @@ function expandDod(rawCases, cfg) {
'快捷区填入产品名称、记账日期、单据类型', '快捷区填入产品名称、记账日期、单据类型',
'打开高级筛选,填入科室、库区名称、单据形态、耗材分类、批号、条码号、单号、进院供应商、结算方式、备注、规格型号、制单人、统计维度、是否收费、是否重点管控、重点管控分类、医保编码', '打开高级筛选,填入科室、库区名称、单据形态、耗材分类、批号、条码号、单号、进院供应商、结算方式、备注、规格型号、制单人、统计维度、是否收费、是否重点管控、重点管控分类、医保编码',
'点击「筛 选」并等待列表与汇总刷新', '点击「筛 选」并等待列表与汇总刷新',
'检查首行产品编号/名称、科室名称、单据类型、批号、单号、规格型号、结算方式与条件一致', '检查首行物料编号/名称、科室名称、单据类型、批号、单号、规格型号、结算方式与条件一致',
]), c.expected || '主表抽样满足快捷区+抽屉全部已填条件。')); ]), c.expected || '主表抽样满足快捷区+抽屉全部已填条件。'));
continue; continue;
} }
...@@ -245,7 +245,7 @@ function expandDod(rawCases, cfg) { ...@@ -245,7 +245,7 @@ function expandDod(rawCases, cfg) {
rows.push(row(id, tp, c.title, pri, pre(cfg.pageLabel, cfg.iframe), joinSteps([ rows.push(row(id, tp, c.title, pri, pre(cfg.pageLabel, cfg.iframe), joinSteps([
'点击「查 询」', '点击「查 询」',
'检查表头列名', '检查表头列名',
]), '表头包含科室名称、产品编号、产品名称、单据类型、批号、入库数量、出库数量、单号等核心列;可横向滚动')); ]), '表头包含科室名称、物料编号、产品名称、单据类型、批号、入库数量、出库数量、单号等核心列;可横向滚动'));
continue; continue;
} }
if (id === 'STAT-DOD-006') { if (id === 'STAT-DOD-006') {
...@@ -365,7 +365,7 @@ function expandEntryOut(rawCases, cfg, sortCols, inOutLabel) { ...@@ -365,7 +365,7 @@ function expandEntryOut(rawCases, cfg, sortCols, inOutLabel) {
'快捷区填入产品名称、记账日期、单据类型', '快捷区填入产品名称、记账日期、单据类型',
'打开高级筛选,填入科室、库区名称、单据形态、批号、单号、出库目标、结算方式、进院供应商名称、产品是否收费', '打开高级筛选,填入科室、库区名称、单据形态、批号、单号、出库目标、结算方式、进院供应商名称、产品是否收费',
'点击「筛 选」并等待刷新', '点击「筛 选」并等待刷新',
'检查首行产品编号/名称、出库数量、结算方式与条件一致', '检查首行物料编号/名称、出库数量、结算方式与条件一致',
]), c.expected || '主表抽样满足快捷区+抽屉全部已填条件。')); ]), c.expected || '主表抽样满足快捷区+抽屉全部已填条件。'));
} else { } else {
rows.push(row(id, tp, c.title, pri, pre(cfg.pageLabel, cfg.iframe, '已默认查询且主表至少有 1 条数据'), joinSteps([ rows.push(row(id, tp, c.title, pri, pre(cfg.pageLabel, cfg.iframe, '已默认查询且主表至少有 1 条数据'), joinSteps([
...@@ -373,7 +373,7 @@ function expandEntryOut(rawCases, cfg, sortCols, inOutLabel) { ...@@ -373,7 +373,7 @@ function expandEntryOut(rawCases, cfg, sortCols, inOutLabel) {
'快捷区填入产品名称、记账日期、单据类型', '快捷区填入产品名称、记账日期、单据类型',
'打开高级筛选,填入科室、库区名称、单据形态、来源库房、单号、结算方式、进院供应商名称、产品是否收费', '打开高级筛选,填入科室、库区名称、单据形态、来源库房、单号、结算方式、进院供应商名称、产品是否收费',
'点击「筛 选」并等待刷新', '点击「筛 选」并等待刷新',
'检查首行产品编号/名称、入库数量、结算方式与条件一致', '检查首行物料编号/名称、入库数量、结算方式与条件一致',
]), c.expected || '主表抽样满足快捷区+抽屉全部已填条件。')); ]), c.expected || '主表抽样满足快捷区+抽屉全部已填条件。'));
} }
continue; continue;
...@@ -390,7 +390,7 @@ function expandEntryOut(rawCases, cfg, sortCols, inOutLabel) { ...@@ -390,7 +390,7 @@ function expandEntryOut(rawCases, cfg, sortCols, inOutLabel) {
rows.push(row(id, tp, c.title, pri, pre(cfg.pageLabel, cfg.iframe), joinSteps([ rows.push(row(id, tp, c.title, pri, pre(cfg.pageLabel, cfg.iframe), joinSteps([
'点击「查 询」', '点击「查 询」',
'检查主表表头', '检查主表表头',
]), c.expected || `表头含产品编号、产品名称、${inOutLabel}数量、${inOutLabel}金额等核心列`)); ]), c.expected || `表头含物料编号、产品名称、${inOutLabel}数量、${inOutLabel}金额等核心列`));
continue; continue;
} }
if (id === `${cfg.prefix}-007`) { if (id === `${cfg.prefix}-007`) {
...@@ -536,7 +536,7 @@ function expandDps(rawCases, cfg) { ...@@ -536,7 +536,7 @@ function expandDps(rawCases, cfg) {
'快捷区填入入账日期、院区名称、科室名称', '快捷区填入入账日期、院区名称、科室名称',
'打开高级筛选,填入耗材类型、耗材分类、产品名称、规格型号、生产厂家', '打开高级筛选,填入耗材类型、耗材分类、产品名称、规格型号、生产厂家',
'点击「筛 选」', '点击「筛 选」',
'检查首行产品编号/名称、规格型号、耗材类型、耗材分类、生产厂家与条件一致', '检查首行物料编号/名称、规格型号、耗材类型、耗材分类、生产厂家与条件一致',
]), ]),
expected: '主表抽样满足快捷区+抽屉全部已填条件。', expected: '主表抽样满足快捷区+抽屉全部已填条件。',
}, },
......
...@@ -539,6 +539,12 @@ function slugify(s) { ...@@ -539,6 +539,12 @@ function slugify(s) {
科室名称: 'dimensionDeptName', 科室名称: 'dimensionDeptName',
产品编号名称: 'productName', 产品编号名称: 'productName',
'产品编号/名称': 'productName', '产品编号/名称': 'productName',
物料编号名称: 'productName',
'物料编号/名称': 'productName',
物料编码名称: 'productName',
'物料编码/名称': 'productName',
物料编号: 'productCode',
物料编码: 'productCode',
// 手术套包设置 // 手术套包设置
基础包维护: 'basePkgMaintenance', 基础包维护: 'basePkgMaintenance',
术种维护: 'operTypeMaintenance', 术种维护: 'operTypeMaintenance',
......
#!/usr/bin/env python3 #!/usr/bin/env python3
# 统计报表编码列默认「物料编号」(见 scripts/lib/code_column_labels.py)
"""Batch update UI automation testcase CSV files.""" """Batch update UI automation testcase CSV files."""
from __future__ import annotations from __future__ import annotations
...@@ -380,13 +381,13 @@ def main() -> None: ...@@ -380,13 +381,13 @@ def main() -> None:
"高", "高",
f"{ENV}{cet_page};已默认查询且主表至少有 1 条数据", f"{ENV}{cet_page};已默认查询且主表至少有 1 条数据",
"1. searchAndExtractSample() 读取样本(${sampleXxx},禁止写死业务数据)\n" "1. searchAndExtractSample() 读取样本(${sampleXxx},禁止写死业务数据)\n"
"2. 快捷区填入入账日期、院区名称、产品编号、产品名称等全部可见条件\n" "2. 快捷区填入入账日期、院区名称、物料编号、产品名称等全部可见条件\n"
"3. 点击「查 询」并等待主表刷新\n" "3. 点击「查 询」并等待主表刷新\n"
"4. 抽样检查首行各列与分页「共 N 条」", "4. 抽样检查首行各列与分页「共 N 条」",
"查询成功无报错;首行同时满足全部已填条件;组合逻辑为「与」关系。", "查询成功无报错;首行同时满足全部已填条件;组合逻辑为「与」关系。",
), ),
sort_case(M_COST, "成本入账汇总查询·主表列表与汇总", cet_page, "入账日期"), sort_case(M_COST, "成本入账汇总查询·主表列表与汇总", cet_page, "入账日期"),
sort_case(M_COST, "成本入账汇总查询·主表列表与汇总", cet_page, "产品编号"), sort_case(M_COST, "成本入账汇总查询·主表列表与汇总", cet_page, "物料编号"),
print_case(M_COST, "成本入账汇总查询·打印", cet_page, "成本入账汇总查询"), print_case(M_COST, "成本入账汇总查询·打印", cet_page, "成本入账汇总查询"),
] ]
update_file( update_file(
......
...@@ -116,7 +116,7 @@ def parse_csv_combo_fields(group: str, name: str) -> list[str]: ...@@ -116,7 +116,7 @@ def parse_csv_combo_fields(group: str, name: str) -> list[str]:
chunk = m.group(1).replace("对应字段", "") chunk = m.group(1).replace("对应字段", "")
return [x.strip() for x in re.split(r"[、,,]", chunk) if x.strip()] return [x.strip() for x in re.split(r"[、,,]", chunk) if x.strip()]
fields = re.findall( fields = re.findall(
r"(院区名称|科室名称|产品名称|产品编号|统计日期|入账日期|记账日期|财务月份|" r"(院区名称|科室名称|产品名称|物料编号|物料编码|产品编号|产品编码|统计日期|入账日期|记账日期|财务月份|"
r"进院供应商名称|结算方式|批号|规格型号|生产厂家|库区名称|分类名称|" r"进院供应商名称|结算方式|批号|规格型号|生产厂家|库区名称|分类名称|"
r"耗材类型|物资类型|入库单号|出库单号|源单号|计费科室|库存科室|查询维度)", r"耗材类型|物资类型|入库单号|出库单号|源单号|计费科室|库存科室|查询维度)",
steps, steps,
......
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"ADMIT-PLS-001","基础设置 · 准入管理","产品准入单列表 · 页面进入","菜单进入产品准入单列表","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe)","1. 按菜单「基础设置 → 准入管理 → 产品准入单列表」进入 ADMIT-PLS-001,基础设置 · 准入管理,产品准入单列表 · 页面进入,菜单进入产品准入单列表,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe),"1. 按菜单「基础设置 → 准入管理 → 产品准入单列表」进入
2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productOrder/list`,且路径不是 `zrlist` 2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productOrder/list`,且路径不是 `zrlist`
3. 断言制单日期、查询、状态 Tab、列表表头可见","进入产品准入单列表;不误入物料准入单列表。","" 3. 断言制单日期、查询、状态 Tab、列表表头可见",进入产品准入单列表;不误入物料准入单列表。,
"ADMIT-PLS-002","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe)","1. 点击「查 询」并等待列表稳定 ADMIT-PLS-002,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 断言出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"ADMIT-PLS-003","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","按产品名称筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);默认查询至少 1 条且产品名称非空","1. 从首行读取 `${sampleProductName}` ADMIT-PLS-003,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,按产品名称筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);默认查询至少 1 条且产品名称非空,"1. 从首行读取 `${sampleProductName}`
2. 若筛选区无产品名称,则用注册证号或器械注册人中首行非空字段 2. 若筛选区无产品名称,则用注册证号或器械注册人中首行非空字段
3. 制单日期保持默认,点击「查 询」 3. 制单日期保持默认,点击「查 询」
4. 断言结果包含该关键字","结果与已填关键字匹配。","" 4. 断言结果包含该关键字",结果与已填关键字匹配。,
"ADMIT-PLS-004","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已填入筛选关键字","1. 点击「重 置」 ADMIT-PLS-004,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已填入筛选关键字,"1. 点击「重 置」
2. 断言筛选恢复默认","筛选恢复默认;列表按默认规则刷新。","" 2. 断言筛选恢复默认",筛选恢复默认;列表按默认规则刷新。,
"ADMIT-PLS-005","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","无匹配结果空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe)","1. 注册证号填入 `__NOT_EXIST_CERT__99999` ADMIT-PLS-005,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,无匹配结果空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe),"1. 注册证号填入 `__NOT_EXIST_CERT__99999`
2. 点击「查 询」 2. 点击「查 询」
3. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 3. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"ADMIT-PLS-006","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","列表核心列与附件计数","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);默认查询至少 1 条数据","1. 断言表头含准入单号、进院供应商、二级供应商、产品名称、注册证号、耗材类型、产品条数、状态、备注、附件、操作 ADMIT-PLS-006,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,列表核心列与附件计数,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);默认查询至少 1 条数据,"1. 断言表头含准入单号、进院供应商、二级供应商、产品名称、注册证号、耗材类型、产品条数、状态、备注、附件、操作
2. 断言首行附件列展示个数(可为 0 个)","核心列可见;附件列有个数;操作为「详情」。本页列表不要求「准入类型」列。","" 2. 断言首行附件列展示个数(可为 0 个)",核心列可见;附件列有个数;操作为「详情」。本页列表不要求「准入类型」列。,
"ADMIT-PLS-007","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","切换已通过 Tab","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe)","1. 点击「已通过」 ADMIT-PLS-007,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,切换已通过 Tab,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe),"1. 点击「已通过」
2. 断言有数据时状态为已通过 2. 断言有数据时状态为已通过
3. 断言 Tab 括号数量等于分页「共 N 条」","已通过 Tab 的状态与计数一致。","" 3. 断言 Tab 括号数量等于分页「共 N 条」",已通过 Tab 的状态与计数一致。,
"ADMIT-PLS-008","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","与物料准入单列表不串 URL","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);当前在产品准入单列表","1. 记录当前 URL ADMIT-PLS-008,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,与物料准入单列表不串 URL,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);当前在产品准入单列表,"1. 记录当前 URL
2. 断言 URL 含 `productOrder/list` 且不含 `zrlist` 2. 断言 URL 含 `productOrder/list` 且不含 `zrlist`
3. 不点击物料准入单列表菜单","停留在产品准入单列表路径,不串到物料单路径。","" 3. 不点击物料准入单列表菜单",停留在产品准入单列表路径,不串到物料单路径。,
"ADMIT-PLS-009","基础设置 · 准入管理","产品准入单列表 · 单据详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);默认查询至少 1 条数据","1. 记录首行 `${sampleOrderNo}` ADMIT-PLS-009,基础设置 · 准入管理,产品准入单列表 · 单据详情,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);默认查询至少 1 条数据,"1. 记录首行 `${sampleOrderNo}`
2. 点击「详情」 2. 点击「详情」
3. 断言可见「审批进程」「单据日志」「返 回」 3. 断言可见「审批进程」「单据日志」「返 回」
4. 返回后 URL 仍含 `productOrder/list`","详情可打开;返回后仍是产品准入单列表。","" 4. 返回后 URL 仍含 `productOrder/list`",详情可打开;返回后仍是产品准入单列表。,
"ADMIT-PLS-010","基础设置 · 准入管理","产品准入单列表 · 单据详情","详情产品条数与列表一致","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已打开首行详情","1. 读取详情明细分页总数或当前行数 ADMIT-PLS-010,基础设置 · 准入管理,产品准入单列表 · 单据详情,详情产品条数与列表一致,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已打开首行详情,"1. 读取详情明细分页总数或当前行数
2. 断言等于列表「产品条数」","明细条数与产品条数一致。","" 2. 断言等于列表「产品条数」",明细条数与产品条数一致。,
"ADMIT-PLS-011","基础设置 · 准入管理","产品准入单列表 · 单据详情","单据日志可打开","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已打开单据详情","1. 点击「单据日志」 ADMIT-PLS-011,基础设置 · 准入管理,产品准入单列表 · 单据详情,单据日志可打开,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已打开单据详情,"1. 点击「单据日志」
2. 断言日志层可见 2. 断言日志层可见
3. 关闭后仍在该单据","单据日志可查看;详情不被销毁。","" 3. 关闭后仍在该单据",单据日志可查看;详情不被销毁。,
"ADMIT-PLS-012","基础设置 · 准入管理","产品准入单列表 · 单据详情","详情搜索无匹配(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已打开单据详情","1. 搜索框填入 `__NOT_EXIST_GOODS__99999` ADMIT-PLS-012,基础设置 · 准入管理,产品准入单列表 · 单据详情,已通过单据不确认通过,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已通过 Tab 至少 1 条并打开详情,"1. 「通过」禁用或不可见时,断言状态保持已通过
2. 断言明细空态,返回按钮仍在","无匹配只影响明细;单据头仍在。",""
"ADMIT-PLS-013","基础设置 · 准入管理","产品准入单列表 · 单据详情","已通过单据不确认通过","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入单列表页(/spd/basic/dataSync/dataSync/productOrder/list,无 iframe);已通过 Tab 至少 1 条并打开详情","1. 「通过」禁用或不可见时,断言状态保持已通过
2. 若可点且出现确认框,点「取 消」 2. 若可点且出现确认框,点「取 消」
3. 返回列表,断言状态仍为已通过","不把已通过单据再次审批成功。无已通过数据则 skip。","" 3. 返回列表,断言状态仍为已通过",不把已通过单据再次审批成功。无已通过数据则 skip。,
"ADMIT-PLS-014","基础设置 · 准入管理","产品准入单列表 · 筛选与状态","多条件组合查询(制单日期等6项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载 ADMIT-PLS-013,基础设置 · 准入管理,产品准入单列表 · 筛选与状态,多条件组合查询(制单日期等6项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 「制单日期」日期区间选择当天 2. 「制单日期」日期区间选择当天
3. 「销售商」填写关键字 3. 「销售商」填写关键字
4. 「耗材类型」下拉选择任一可选项 4. 「耗材类型」下拉选择任一可选项
...@@ -43,4 +41,4 @@ ...@@ -43,4 +41,4 @@
6. 「注册证号」填写关键字 6. 「注册证号」填写关键字
7. 「供应商」填写关键字 7. 「供应商」填写关键字
8. 点击「查询」 8. 点击「查询」
9. 检查列表返回结果","多条件同时生效:制单日期、销售商、耗材类型、器械注册人、注册证号、供应商 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 9. 检查列表返回结果",多条件同时生效:制单日期、销售商、耗材类型、器械注册人、注册证号、供应商 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"ADMIT-PAP-001","基础设置 · 准入管理","产品准入申请 · 页面进入","菜单进入产品准入申请页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 按菜单「基础设置 → 准入管理 → 产品准入申请」进入 ADMIT-PAP-001,基础设置 · 准入管理,产品准入申请 · 页面进入,菜单进入产品准入申请页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe),"1. 按菜单「基础设置 → 准入管理 → 产品准入申请」进入
2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productApply/list`,且不是 `ZRlist` 2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productApply/list`,且不是 `ZRlist`
3. 断言可见「查 询」、「Excel导入」「生成申请单」「一键生成」「新增产品」「作 废」及列表表头","进入产品准入申请页;不误入物料准入管理(ZRlist)或产品准入单列表。","" 3. 断言可见「查 询」、「Excel导入」「生成申请单」「一键生成」「新增产品」「作 废」及列表表头",进入产品准入申请页;不误入物料准入管理(ZRlist)或产品准入单列表。,
"ADMIT-PAP-002","基础设置 · 准入管理","产品准入申请 · 筛选查询","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 点击「查 询」并等待列表稳定 ADMIT-PAP-002,基础设置 · 准入管理,产品准入申请 · 筛选查询,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 断言出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"ADMIT-PAP-003","基础设置 · 准入管理","产品准入申请 · 筛选查询","产品名称筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据","1. 从首行读取 `${sampleProductName}` ADMIT-PAP-003,基础设置 · 准入管理,产品准入申请 · 筛选查询,产品名称筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据,"1. 从首行读取 `${sampleProductName}`
2. 填入产品名称,新增日期保持默认,点击「查 询」 2. 填入产品名称,新增日期保持默认,点击「查 询」
3. 断言结果行「产品名称」均包含该关键字","产品名称与已填关键字匹配。","" 3. 断言结果行「产品名称」均包含该关键字",产品名称与已填关键字匹配。,
"ADMIT-PAP-004","基础设置 · 准入管理","产品准入申请 · 筛选查询","名称与耗材类型组合查询","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据","1. 读取首行 `${sampleProductName}`、`${sampleConsumableType}` ADMIT-PAP-004,基础设置 · 准入管理,产品准入申请 · 筛选查询,名称与耗材类型组合查询,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据,"1. 读取首行 `${sampleProductName}`、`${sampleConsumableType}`
2. 同时填入后点击「查 询」(日期保持默认) 2. 同时填入后点击「查 询」(日期保持默认)
3. 断言结果同时满足两个条件","组合查询结果同时满足产品名称与耗材类型。类型为空则只断言名称。","" 3. 断言结果同时满足两个条件",组合查询结果同时满足产品名称与耗材类型。类型为空则只断言名称。,
"ADMIT-PAP-005","基础设置 · 准入管理","产品准入申请 · 筛选查询","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 填入 `${sampleProductName}` ADMIT-PAP-005,基础设置 · 准入管理,产品准入申请 · 筛选查询,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe),"1. 填入 `${sampleProductName}`
2. 点击「重 置」 2. 点击「重 置」
3. 断言筛选恢复默认","筛选字段恢复默认;列表按默认规则刷新。","" 3. 断言筛选恢复默认",筛选字段恢复默认;列表按默认规则刷新。,
"ADMIT-PAP-006","基础设置 · 准入管理","产品准入申请 · 筛选查询","无匹配结果空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 产品名称填入 `__NOT_EXIST_GOODS__99999` ADMIT-PAP-006,基础设置 · 准入管理,产品准入申请 · 筛选查询,无匹配结果空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe),"1. 产品名称填入 `__NOT_EXIST_GOODS__99999`
2. 点击「查 询」 2. 点击「查 询」
3. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 3. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"ADMIT-PAP-007","基础设置 · 准入管理","产品准入申请 · 状态与列表","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据","1. 断言表头含准入单号、产品编号、产品名称、规格型号、注册规格、注册型号、器械注册人、单位、操作","核心列可见;操作含「详情」「日志」。","" ADMIT-PAP-007,基础设置 · 准入管理,产品准入申请 · 状态与列表,列表核心列完整,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据,1. 断言表头含准入单号、产品编号、产品名称、规格型号、注册规格、注册型号、器械注册人、单位、操作,核心列可见;操作含「详情」「日志」。,
"ADMIT-PAP-008","基础设置 · 准入管理","产品准入申请 · 状态与列表","切换待申请 Tab","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 点击「待申请」 ADMIT-PAP-008,基础设置 · 准入管理,产品准入申请 · 状态与列表,切换待申请 Tab,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe),"1. 点击「待申请」
2. 断言有数据时行不属于已生效/已作废;计数为 0 时为空态","待申请 Tab 与列表状态一致。","" 2. 断言有数据时行不属于已生效/已作废;计数为 0 时为空态",待申请 Tab 与列表状态一致。,
"ADMIT-PAP-009","基础设置 · 准入管理","产品准入申请 · 状态与列表","翻至第 2 页","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);分页总数大于每页条数","1. 记录第 1 页首行准入单号 ADMIT-PAP-009,基础设置 · 准入管理,产品准入申请 · 状态与列表,翻至第 2 页,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);分页总数大于每页条数,"1. 记录第 1 页首行准入单号
2. 点击页码「2」或「下一页」 2. 点击页码「2」或「下一页」
3. 断言页码高亮为 2,首行单号与第 1 页不同","翻页成功且数据更换。不足两页则 skip。","" 3. 断言页码高亮为 2,首行单号与第 1 页不同",翻页成功且数据更换。不足两页则 skip。,
"ADMIT-PAP-010","基础设置 · 准入管理","产品准入申请 · 状态与列表","跳至指定页","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);总页数不少于 2,分页存在「跳至」","1. 在跳至输入框填入 `2` 并回车 ADMIT-PAP-010,基础设置 · 准入管理,产品准入申请 · 状态与列表,跳至指定页,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);总页数不少于 2,分页存在「跳至」,"1. 在跳至输入框填入 `2` 并回车
2. 断言当前页为 2","跳转到第 2 页。无跳至或仅 1 页则 skip。","" 2. 断言当前页为 2",跳转到第 2 页。无跳至或仅 1 页则 skip。,
"ADMIT-PAP-011","基础设置 · 准入管理","产品准入申请 · 新增与导入","打开新增产品后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 点击「新增产品」 ADMIT-PAP-011,基础设置 · 准入管理,产品准入申请 · 新增与导入,打开新增产品后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe),"1. 点击「新增产品」
2. 断言可见产品名称、器械注册人、规格型号、注册证号及返回 2. 断言可见产品名称、器械注册人、规格型号、注册证号及返回
3. 点击返回,不保存","新增页字段可见;返回后列表不新增记录。","" 3. 点击返回,不保存",新增页字段可见;返回后列表不新增记录。,
"ADMIT-PAP-012","基础设置 · 准入管理","产品准入申请 · 新增与导入","新增取消不落库","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 记录分页总数 `${sampleTotal}` ADMIT-PAP-012,基础设置 · 准入管理,产品准入申请 · 新增与导入,新增取消不落库,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe),"1. 记录分页总数 `${sampleTotal}`
2. 打开新增,产品名称填 `${uniqProductName}`(建议 `AUTO-PAP-${timestamp}`)后返回不保存 2. 打开新增,产品名称填 `${uniqProductName}`(建议 `AUTO-PAP-${timestamp}`)后返回不保存
3. 按该名称查询,断言无此行,总数不变","取消后不产生新产品。","" 3. 按该名称查询,断言无此行,总数不变",取消后不产生新产品。,
"ADMIT-PAP-013","基础设置 · 准入管理","产品准入申请 · 新增与导入","Excel 导入打开后取消","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe)","1. 记录总数 `${sampleTotal}` ADMIT-PAP-013,基础设置 · 准入管理,产品准入申请 · 详情、编辑与作废,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据,"1. 记录首行 `${sampleProductName}`
2. 点击「Excel导入」
3. 断言导入层打开
4. 关闭或取消,不选择文件
5. 断言总数不变","取消导入不增加产品。",""
"ADMIT-PAP-014","基础设置 · 准入管理","产品准入申请 · 新增与导入","产品名称为空保存拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);已打开新增产品页","1. 产品名称保持 mock 空值,其它能填的非名称字段可留空
2. 点击保存
3. 断言必填提示,页面不关闭
4. 返回列表,断言总数不变","保存被拦截;不落库。",""
"ADMIT-PAP-015","基础设置 · 准入管理","产品准入申请 · 详情、编辑与作废","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);默认查询至少 1 条数据","1. 记录首行 `${sampleProductName}`
2. 点击「详情」,断言名称一致 2. 点击「详情」,断言名称一致
3. 返回列表","详情与该行一致;返回后仍在产品准入申请列表。","" 3. 返回列表",详情与该行一致;返回后仍在产品准入申请列表。,
"ADMIT-PAP-016","基础设置 · 准入管理","产品准入申请 · 详情、编辑与作废","待申请编辑回填","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);待申请至少 1 行含「编辑」","1. 读取该行 `${sampleProductName}`、`${sampleSpec}` ADMIT-PAP-014,基础设置 · 准入管理,产品准入申请 · 详情、编辑与作废,待申请编辑回填,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);待申请至少 1 行含「编辑」,"1. 读取该行 `${sampleProductName}`、`${sampleSpec}`
2. 点击「编辑」 2. 点击「编辑」
3. 断言名称与规格型号回填一致 3. 断言名称与规格型号回填一致
4. 返回不保存","编辑回填与列表行一致。无编辑按钮则 skip。","" 4. 返回不保存",编辑回填与列表行一致。无编辑按钮则 skip。,
"ADMIT-PAP-017","基础设置 · 准入管理","产品准入申请 · 详情、编辑与作废","编辑取消不保存","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);存在可编辑行","1. 打开编辑,把产品名称改为 `${uniqProductName}` 后返回不保存 ADMIT-PAP-015,基础设置 · 准入管理,产品准入申请 · 详情、编辑与作废,编辑取消不保存,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);存在可编辑行,"1. 打开编辑,把产品名称改为 `${uniqProductName}` 后返回不保存
2. 再次打开,断言名称仍为原值","取消后数据不变。","" 2. 再次打开,断言名称仍为原值",取消后数据不变。,
"ADMIT-PAP-018","基础设置 · 准入管理","产品准入申请 · 详情、编辑与作废","作废确认后取消","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);待申请至少 1 条可勾选","1. 勾选 1 行并点击「作 废」 ADMIT-PAP-016,基础设置 · 准入管理,产品准入申请 · 详情、编辑与作废,作废确认后取消,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);待申请至少 1 条可勾选,"1. 勾选 1 行并点击「作 废」
2. 断言确认框出现 2. 断言确认框出现
3. 点击「取 消」 3. 点击「取 消」
4. 断言该行仍在,状态未变为已作废","取消作废不改变状态。本条不点击确定。","" 4. 断言该行仍在,状态未变为已作废",取消作废不改变状态。本条不点击确定。,
"ADMIT-PAP-019","基础设置 · 准入管理","产品准入申请 · 详情、编辑与作废","已通过行不提供编辑","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);已通过 Tab 计数大于 0","1. 切换「已通过」 ADMIT-PAP-017,基础设置 · 准入管理,产品准入申请 · 详情、编辑与作废,已通过行不提供编辑,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入产品准入申请页(/spd/basic/dataSync/dataSync/productApply/list,无 iframe);已通过 Tab 计数大于 0,"1. 切换「已通过」
2. 断言首行无「编辑」,或打开后保存被拒绝","已通过行不能改写产品名称。计数为 0 则 skip。","" 2. 断言首行无「编辑」,或打开后保存被拒绝",已通过行不能改写产品名称。计数为 0 则 skip。,
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"ADMIT-SUP-001","基础设置 · 准入管理","供货目录申请 · 页面进入","菜单进入供货目录申请页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe)","1. 按菜单「基础设置 → 准入管理 → 供货目录申请」进入 ADMIT-SUP-001,基础设置 · 准入管理,供货目录申请 · 页面进入,菜单进入供货目录申请页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe),"1. 按菜单「基础设置 → 准入管理 → 供货目录申请」进入
2. 断言 URL 含 `/spd/basic/dataSync/dataSync/supplyApply/list` 2. 断言 URL 含 `/spd/basic/dataSync/dataSync/supplyApply/list`
3. 断言可见「查 询」、「批量提交」、「新 增」及列表表头","进入供货目录申请页;不误入准入任务分配。","" 3. 断言可见「查 询」、「批量提交」、「新 增」及列表表头",进入供货目录申请页;不误入准入任务分配。,
"ADMIT-SUP-002","基础设置 · 准入管理","供货目录申请 · 筛选与状态","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe)","1. 点击「查 询」并等待列表稳定 ADMIT-SUP-002,基础设置 · 准入管理,供货目录申请 · 筛选与状态,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 断言出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"ADMIT-SUP-003","基础设置 · 准入管理","供货目录申请 · 筛选与状态","按进院供应商筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);默认查询至少 1 条且进院供应商非空","1. 从首行读取 `${sampleHospitalSupplier}` ADMIT-SUP-003,基础设置 · 准入管理,供货目录申请 · 筛选与状态,按进院供应商筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);默认查询至少 1 条且进院供应商非空,"1. 从首行读取 `${sampleHospitalSupplier}`
2. 在进院供应商选择该值,制单日期保持默认,点击「查 询」 2. 在进院供应商选择该值,制单日期保持默认,点击「查 询」
3. 断言结果行「进院供应商」与所选值一致","进院供应商列与条件一致。","" 3. 断言结果行「进院供应商」与所选值一致",进院供应商列与条件一致。,
"ADMIT-SUP-004","基础设置 · 准入管理","供货目录申请 · 筛选与状态","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);已选择进院供应商","1. 点击「重 置」 ADMIT-SUP-004,基础设置 · 准入管理,供货目录申请 · 筛选与状态,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);已选择进院供应商,"1. 点击「重 置」
2. 断言进院供应商等筛选恢复默认","筛选恢复默认;列表按默认规则刷新。","" 2. 断言进院供应商等筛选恢复默认",筛选恢复默认;列表按默认规则刷新。,
"ADMIT-SUP-005","基础设置 · 准入管理","供货目录申请 · 筛选与状态","变更单号无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe)","1. 变更单号填入 `__NOT_EXIST_ORDER__99999`;若筛选区无此框,则在产品名称填同一 mock ADMIT-SUP-005,基础设置 · 准入管理,供货目录申请 · 筛选与状态,变更单号无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe),"1. 变更单号填入 `__NOT_EXIST_ORDER__99999`;若筛选区无此框,则在产品名称填同一 mock
2. 点击「查 询」 2. 点击「查 询」
3. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 3. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"ADMIT-SUP-006","基础设置 · 准入管理","供货目录申请 · 筛选与状态","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);默认查询至少 1 条数据","1. 断言表头含申请单号、申请人、申请时间、进院供应商、二级供应商、业务模式、是否默认、备注、操作","核心列可见;操作含「编辑」或「详情」(随状态变化)。","" ADMIT-SUP-006,基础设置 · 准入管理,供货目录申请 · 筛选与状态,列表核心列完整,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);默认查询至少 1 条数据,1. 断言表头含申请单号、申请人、申请时间、进院供应商、二级供应商、业务模式、是否默认、备注、操作,核心列可见;操作含「编辑」或「详情」(随状态变化)。,
"ADMIT-SUP-007","基础设置 · 准入管理","供货目录申请 · 筛选与状态","切换待提交 Tab 且计数一致","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe)","1. 点击「待提交」 ADMIT-SUP-007,基础设置 · 准入管理,供货目录申请 · 筛选与状态,切换待提交 Tab 且计数一致,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe),"1. 点击「待提交」
2. 读取括号数量 2. 读取括号数量
3. 断言分页「共 N 条」等于该数量;有数据时状态为待提交","待提交 Tab 与分页总数一致。计数为 0 时为空态。","" 3. 断言分页「共 N 条」等于该数量;有数据时状态为待提交",待提交 Tab 与分页总数一致。计数为 0 时为空态。,
"ADMIT-SUP-008","基础设置 · 准入管理","供货目录申请 · 新增与编辑","打开新增供货目录","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe)","1. 点击「新 增」 ADMIT-SUP-008,基础设置 · 准入管理,供货目录申请 · 新增与编辑,新增放弃不落库,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe),"1. 记录总数 `${sampleTotal}`
2. 断言可见进院供应商、二级供应商、业务模式、是否默认、计划生效时间、添加产品、提交
3. 返回不提交","新增页字段齐全;返回后列表不新增申请单。",""
"ADMIT-SUP-009","基础设置 · 准入管理","供货目录申请 · 新增与编辑","新增放弃不落库","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe)","1. 记录总数 `${sampleTotal}`
2. 打开新增,备注填 `${uniqRemark}`(建议 `AUTO-SUP-${timestamp}`)后返回不提交 2. 打开新增,备注填 `${uniqRemark}`(建议 `AUTO-SUP-${timestamp}`)后返回不提交
3. 断言总数不变,列表无该备注","未提交不产生申请单。","" 3. 断言总数不变,列表无该备注",未提交不产生申请单。,
"ADMIT-SUP-010","基础设置 · 准入管理","供货目录申请 · 新增与编辑","业务模式与是否默认只切换不提交","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);已打开新增页","1. 展开业务模式、是否默认,断言存在可选项 ADMIT-SUP-009,基础设置 · 准入管理,供货目录申请 · 新增与编辑,业务模式与是否默认只切换不提交,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);已打开新增页,"1. 展开业务模式、是否默认,断言存在可选项
2. 各选一项后返回,不提交 2. 各选一项后返回,不提交
3. 断言列表总数不变","选项可见;不提交则无新单。","" 3. 断言列表总数不变",选项可见;不提交则无新单。,
"ADMIT-SUP-011","基础设置 · 准入管理","供货目录申请 · 新增与编辑","待提交编辑回填","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);待提交至少 1 行含「编辑」","1. 读取该行 `${sampleHospitalSupplier}`、`${sampleBizMode}`、`${sampleDefaultFlag}` ADMIT-SUP-010,基础设置 · 准入管理,供货目录申请 · 新增与编辑,待提交编辑回填,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);待提交至少 1 行含「编辑」,"1. 读取该行 `${sampleHospitalSupplier}`、`${sampleBizMode}`、`${sampleDefaultFlag}`
2. 点击「编辑」 2. 点击「编辑」
3. 断言进院供应商、业务模式、是否默认与该行一致 3. 断言进院供应商、业务模式、是否默认与该行一致
4. 返回不提交","编辑回填与列表行一致。无待提交或无编辑则 skip。","" 4. 返回不提交",编辑回填与列表行一致。无待提交或无编辑则 skip。,
"ADMIT-SUP-012","基础设置 · 准入管理","供货目录申请 · 新增与编辑","编辑取消不保存","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);存在可编辑的待提交行","1. 打开编辑,把备注改为 `${uniqRemark}` 后返回不提交 ADMIT-SUP-011,基础设置 · 准入管理,供货目录申请 · 新增与编辑,编辑取消不保存,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);存在可编辑的待提交行,"1. 打开编辑,把备注改为 `${uniqRemark}` 后返回不提交
2. 再次打开,断言备注仍为原值","取消后备注不变。","" 2. 再次打开,断言备注仍为原值",取消后备注不变。,
"ADMIT-SUP-013","基础设置 · 准入管理","供货目录申请 · 新增与编辑","进院供应商为空不可提交(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);已打开新增页,进院供应商未选","1. 不选进院供应商,点击「提 交」 ADMIT-SUP-012,基础设置 · 准入管理,供货目录申请 · 批量提交与详情,未勾选时批量提交不可用,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe),无勾选行,"1. 断言「批量提交」计数为 0,或按钮不可用
2. 断言必填提示,页面不关闭 2. 若仍可点击,断言出现请选择提示,且无单据离开待提交",未勾选不提交任何申请单。,
3. 返回列表,断言总数不变","提交被拦截;不产生申请单。","" ADMIT-SUP-013,基础设置 · 准入管理,供货目录申请 · 批量提交与详情,勾选后批量提交取消,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);待提交至少 1 条,"1. 勾选 1 行,记录申请单号与状态
"ADMIT-SUP-014","基础设置 · 准入管理","供货目录申请 · 新增与编辑","未添加产品不可提交","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);已打开新增页,产品明细为 0","1. 若进院供应商、二级供应商、业务模式可从样本选择则先选上,但不添加产品
2. 点击「提 交」
3. 断言拦截提示,明细仍为 0,列表总数不变","没有产品明细时不能提交。",""
"ADMIT-SUP-015","基础设置 · 准入管理","供货目录申请 · 批量提交与详情","未勾选时批量提交不可用","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe),无勾选行","1. 断言「批量提交」计数为 0,或按钮不可用
2. 若仍可点击,断言出现请选择提示,且无单据离开待提交","未勾选不提交任何申请单。",""
"ADMIT-SUP-016","基础设置 · 准入管理","供货目录申请 · 批量提交与详情","勾选后批量提交取消","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);待提交至少 1 条","1. 勾选 1 行,记录申请单号与状态
2. 点击「批量提交」 2. 点击「批量提交」
3. 若出现确认框,点「取 消」 3. 若出现确认框,点「取 消」
4. 断言该单仍为待提交","取消批量提交不改变状态。本条不点击确定。无待提交则 skip。","" 4. 断言该单仍为待提交",取消批量提交不改变状态。本条不点击确定。无待提交则 skip。,
"ADMIT-SUP-017","基础设置 · 准入管理","供货目录申请 · 批量提交与详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入供货目录申请页(/spd/basic/dataSync/dataSync/supplyApply/list,无 iframe);默认查询至少 1 条数据","1. 点击首行「详情」 ADMIT-SUP-014,基础设置 · 准入管理,供货目录申请 · 筛选与状态,多条件组合查询(制单日期等6项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 断言可见「审批进程」「单据日志」「返 回」
3. 返回后 URL 仍含 `supplyApply/list`","详情可打开;返回后仍在供货目录申请列表。",""
"ADMIT-SUP-018","基础设置 · 准入管理","供货目录申请 · 筛选与状态","多条件组合查询(制单日期等6项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载
2. 「制单日期」日期区间选择当天 2. 「制单日期」日期区间选择当天
3. 「销售商」下拉选择任一可选项 3. 「销售商」下拉选择任一可选项
4. 「供应商」下拉选择任一可选项 4. 「供应商」下拉选择任一可选项
...@@ -54,4 +42,4 @@ ...@@ -54,4 +42,4 @@
6. 「物料名称」填写关键字 6. 「物料名称」填写关键字
7. 「规格型号」填写关键字 7. 「规格型号」填写关键字
8. 点击「查询」 8. 点击「查询」
9. 检查列表返回结果","多条件同时生效:制单日期、销售商、供应商、变更单号、物料名称、规格型号 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 9. 检查列表返回结果",多条件同时生效:制单日期、销售商、供应商、变更单号、物料名称、规格型号 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"ADMIT-TSK-001","基础设置 · 准入管理","准入任务分配 · 页面进入","菜单进入准入任务分配页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe)","1. 按菜单「基础设置 → 准入管理 → 准入任务分配」进入 ADMIT-TSK-001,基础设置 · 准入管理,准入任务分配 · 页面进入,菜单进入准入任务分配页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe),"1. 按菜单「基础设置 → 准入管理 → 准入任务分配」进入
2. 断言 URL 含 `/spd/basic/dataSync/dataSync/accessKind/list` 2. 断言 URL 含 `/spd/basic/dataSync/dataSync/accessKind/list`
3. 断言可见「查 询」、「待分类」「已分类」、「批量分配」及列表表头","进入准入任务分配页;不误入供货目录申请。","" 3. 断言可见「查 询」、「待分类」「已分类」、「批量分配」及列表表头",进入准入任务分配页;不误入供货目录申请。,
"ADMIT-TSK-002","基础设置 · 准入管理","准入任务分配 · 筛选与分类","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe),当前为待分类","1. 点击「查 询」并等待列表稳定 ADMIT-TSK-002,基础设置 · 准入管理,准入任务分配 · 筛选与分类,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe),当前为待分类,"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 断言出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"ADMIT-TSK-003","基础设置 · 准入管理","准入任务分配 · 筛选与分类","产品名称筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类至少 1 条数据","1. 从首行读取 `${sampleProductName}` ADMIT-TSK-003,基础设置 · 准入管理,准入任务分配 · 筛选与分类,产品名称筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类至少 1 条数据,"1. 从首行读取 `${sampleProductName}`
2. 填入产品名称,新增日期与操作日期保持默认,点击「查 询」 2. 填入产品名称,新增日期与操作日期保持默认,点击「查 询」
3. 断言结果行「产品名称」均包含该关键字","产品名称与已填关键字匹配。","" 3. 断言结果行「产品名称」均包含该关键字",产品名称与已填关键字匹配。,
"ADMIT-TSK-004","基础设置 · 准入管理","准入任务分配 · 筛选与分类","待分类与已分类切换","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe)","1. 记录「待分类」括号数量 `${pendingCount}` ADMIT-TSK-004,基础设置 · 准入管理,准入任务分配 · 筛选与分类,待分类与已分类切换,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe),"1. 记录「待分类」括号数量 `${pendingCount}`
2. 点击「已分类」,断言分页总数等于已分类括号数量;为 0 时为空态 2. 点击「已分类」,断言分页总数等于已分类括号数量;为 0 时为空态
3. 再点「待分类」,断言分页总数等于 `${pendingCount}`","两个 Tab 的列表范围与各自计数一致,不串数据。","" 3. 再点「待分类」,断言分页总数等于 `${pendingCount}`",两个 Tab 的列表范围与各自计数一致,不串数据。,
"ADMIT-TSK-005","基础设置 · 准入管理","准入任务分配 · 筛选与分类","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);已填入 `${sampleProductName}`","1. 点击「重 置」 ADMIT-TSK-005,基础设置 · 准入管理,准入任务分配 · 筛选与分类,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);已填入 `${sampleProductName}`,"1. 点击「重 置」
2. 断言产品名称等筛选恢复默认","筛选恢复默认;列表按默认规则刷新。","" 2. 断言产品名称等筛选恢复默认",筛选恢复默认;列表按默认规则刷新。,
"ADMIT-TSK-006","基础设置 · 准入管理","准入任务分配 · 筛选与分类","无匹配结果空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);当前在待分类","1. 产品名称填入 `__NOT_EXIST_GOODS__99999` ADMIT-TSK-006,基础设置 · 准入管理,准入任务分配 · 筛选与分类,无匹配结果空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);当前在待分类,"1. 产品名称填入 `__NOT_EXIST_GOODS__99999`
2. 点击「查 询」 2. 点击「查 询」
3. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 3. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"ADMIT-TSK-007","基础设置 · 准入管理","准入任务分配 · 列表分页","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类至少 1 条数据","1. 断言表头含准入类型、产品编号、产品名称、规格型号、规格、型号、器械注册人、操作 ADMIT-TSK-007,基础设置 · 准入管理,准入任务分配 · 列表分页,列表核心列完整,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类至少 1 条数据,"1. 断言表头含准入类型、产品编号、产品名称、规格型号、规格、型号、器械注册人、操作
2. 断言待分类行操作含「分配类型」","核心列可见;待分类行可发起分配类型。","" 2. 断言待分类行操作含「分配类型」",核心列可见;待分类行可发起分配类型。,
"ADMIT-TSK-008","基础设置 · 准入管理","准入任务分配 · 列表分页","翻至第 2 页","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类总数大于每页条数","1. 记录第 1 页首行产品名称或产品编号 ADMIT-TSK-008,基础设置 · 准入管理,准入任务分配 · 列表分页,翻至第 2 页,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类总数大于每页条数,"1. 记录第 1 页首行产品名称或产品编号
2. 点击页码「2」或「下一页」 2. 点击页码「2」或「下一页」
3. 断言页码为 2,首行与第 1 页不同","翻页成功且数据更换。不足两页则 skip。","" 3. 断言页码为 2,首行与第 1 页不同",翻页成功且数据更换。不足两页则 skip。,
"ADMIT-TSK-009","基础设置 · 准入管理","准入任务分配 · 列表分页","跳至指定页","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);总页数不少于 2,且存在「跳至」","1. 跳至输入 `2` 并回车 ADMIT-TSK-009,基础设置 · 准入管理,准入任务分配 · 列表分页,跳至指定页,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);总页数不少于 2,且存在「跳至」,"1. 跳至输入 `2` 并回车
2. 断言当前页为 2","跳转到第 2 页。无跳至或仅 1 页则 skip。","" 2. 断言当前页为 2",跳转到第 2 页。无跳至或仅 1 页则 skip。,
"ADMIT-TSK-010","基础设置 · 准入管理","准入任务分配 · 列表分页","第 1 页上一页不可用","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);当前在第 1 页","1. 断言「上一页」禁用,或点击后仍停留在第 1 页","第 1 页不能再向前翻。","" ADMIT-TSK-010,基础设置 · 准入管理,准入任务分配 · 列表分页,第 1 页上一页不可用,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);当前在第 1 页,1. 断言「上一页」禁用,或点击后仍停留在第 1 页,第 1 页不能再向前翻。,
"ADMIT-TSK-011","基础设置 · 准入管理","准入任务分配 · 分配操作","单行分配类型取消","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类至少 1 行含「分配类型」","1. 记录该行产品名称,以及待分类计数 `${pendingCount}` ADMIT-TSK-011,基础设置 · 准入管理,准入任务分配 · 分配操作,未勾选时批量分配不可用,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类页无勾选行,"1. 点击「批量分配」
2. 点击「分配类型」
3. 断言分配层打开
4. 取消或关闭,不确认
5. 断言该行仍在待分类,计数仍为 `${pendingCount}`","取消分配不改变分类。本条不点击确定。",""
"ADMIT-TSK-012","基础设置 · 准入管理","准入任务分配 · 分配操作","未勾选时批量分配不可用","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类页无勾选行","1. 点击「批量分配」
2. 断言按钮不可用,或提示先选择数据 2. 断言按钮不可用,或提示先选择数据
3. 断言待分类计数不变","未勾选不分配任何行。","" 3. 断言待分类计数不变",未勾选不分配任何行。,
"ADMIT-TSK-013","基础设置 · 准入管理","准入任务分配 · 分配操作","勾选后批量分配取消","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类至少 1 条","1. 勾选 1 行,记录待分类计数 ADMIT-TSK-012,基础设置 · 准入管理,准入任务分配 · 分配操作,勾选后批量分配取消,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);待分类至少 1 条,"1. 勾选 1 行,记录待分类计数
2. 点击「批量分配」 2. 点击「批量分配」
3. 若打开分配层或确认框,点取消或关闭 3. 若打开分配层或确认框,点取消或关闭
4. 断言该行仍在待分类,计数不变","取消批量分配不改变分类。本条不确认分配。","" 4. 断言该行仍在待分类,计数不变",取消批量分配不改变分类。本条不确认分配。,
"ADMIT-TSK-014","基础设置 · 准入管理","准入任务分配 · 分配操作","已分类行不再按待分类分配","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);已分类计数大于 0","1. 切换到「已分类」 ADMIT-TSK-013,基础设置 · 准入管理,准入任务分配 · 分配操作,已分类行不再按待分类分配,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入准入任务分配页(/spd/basic/dataSync/dataSync/accessKind/list,无 iframe);已分类计数大于 0,"1. 切换到「已分类」
2. 断言首行无「分配类型」,或点击后被拒绝且该行仍留在已分类 2. 断言首行无「分配类型」,或点击后被拒绝且该行仍留在已分类
3. 断言待分类计数不因此增加","已分类数据不会被这次操作退回待分类。已分类为 0 则 skip。","" 3. 断言待分类计数不因此增加",已分类数据不会被这次操作退回待分类。已分类为 0 则 skip。,
"ADMIT-TSK-015","基础设置 · 准入管理","准入任务分配 · 筛选与分类","多条件组合查询(新增日期等11项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载 ADMIT-TSK-014,基础设置 · 准入管理,准入任务分配 · 筛选与分类,多条件组合查询(新增日期等11项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 「新增日期」日期区间选择当天 2. 「新增日期」日期区间选择当天
3. 「操作日期」日期区间选择当天 3. 「操作日期」日期区间选择当天
4. 「销售商」填写关键字 4. 「销售商」填写关键字
...@@ -51,4 +46,4 @@ ...@@ -51,4 +46,4 @@
11. 「准入类型」下拉选择任一可选项 11. 「准入类型」下拉选择任一可选项
12. 「准入状态」下拉选择任一可选项 12. 「准入状态」下拉选择任一可选项
13. 点击「查询」 13. 点击「查询」
14. 检查列表返回结果","多条件同时生效:新增日期、操作日期、销售商、物料名称、注册证号、操作人、器械注册人、耗材类型、规格型号、准入类型、准入状态 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 14. 检查列表返回结果",多条件同时生效:新增日期、操作日期、销售商、物料名称、注册证号、操作人、器械注册人、耗材类型、规格型号、准入类型、准入状态 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"ADMIT-MLS-001","基础设置 · 准入管理","物料准入单列表 · 页面进入","菜单进入物料准入单列表","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe)","1. 按菜单「基础设置 → 准入管理 → 物料准入单列表」进入 ADMIT-MLS-001,基础设置 · 准入管理,物料准入单列表 · 页面进入,菜单进入物料准入单列表,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe),"1. 按菜单「基础设置 → 准入管理 → 物料准入单列表」进入
2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productOrder/zrlist`,且不是 `productOrder/list` 2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productOrder/zrlist`,且不是 `productOrder/list`
3. 断言制单日期、查询、状态 Tab、列表表头可见","进入物料准入单列表;不误入产品准入单列表。","" 3. 断言制单日期、查询、状态 Tab、列表表头可见",进入物料准入单列表;不误入产品准入单列表。,
"ADMIT-MLS-002","基础设置 · 准入管理","物料准入单列表 · 筛选与状态","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe)","1. 点击「查 询」并等待列表稳定 ADMIT-MLS-002,基础设置 · 准入管理,物料准入单列表 · 筛选与状态,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 断言出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"ADMIT-MLS-003","基础设置 · 准入管理","物料准入单列表 · 筛选与状态","按准入单号筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);默认查询至少 1 条数据","1. 从首行读取 `${sampleOrderNo}` ADMIT-MLS-003,基础设置 · 准入管理,物料准入单列表 · 筛选与状态,按准入单号筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);默认查询至少 1 条数据,"1. 从首行读取 `${sampleOrderNo}`
2. 若页面有准入单号条件则填入;否则用注册证号或产品名称中首行非空字段 2. 若页面有准入单号条件则填入;否则用注册证号或产品名称中首行非空字段
3. 制单日期保持默认,点击「查 询」 3. 制单日期保持默认,点击「查 询」
4. 断言结果行包含该单号或该关键字","结果与已填单号或关键字匹配。列表筛选区没有单号框时,改用首行注册证号,并在用例备注中记录实际字段。","" 4. 断言结果行包含该单号或该关键字",结果与已填单号或关键字匹配。列表筛选区没有单号框时,改用首行注册证号,并在用例备注中记录实际字段。,
"ADMIT-MLS-004","基础设置 · 准入管理","物料准入单列表 · 筛选与状态","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe)","1. 填入上一条使用的关键字 ADMIT-MLS-004,基础设置 · 准入管理,物料准入单列表 · 筛选与状态,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe),"1. 填入上一条使用的关键字
2. 点击「重 置」 2. 点击「重 置」
3. 断言筛选恢复默认","筛选恢复默认;列表按默认规则刷新。","" 3. 断言筛选恢复默认",筛选恢复默认;列表按默认规则刷新。,
"ADMIT-MLS-005","基础设置 · 准入管理","物料准入单列表 · 筛选与状态","无匹配结果空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe)","1. 注册证号填入 `__NOT_EXIST_CERT__99999` ADMIT-MLS-005,基础设置 · 准入管理,物料准入单列表 · 筛选与状态,无匹配结果空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe),"1. 注册证号填入 `__NOT_EXIST_CERT__99999`
2. 点击「查 询」 2. 点击「查 询」
3. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 3. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"ADMIT-MLS-006","基础设置 · 准入管理","物料准入单列表 · 筛选与状态","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);默认查询至少 1 条数据","1. 断言表头含准入类型、准入单号、进院供应商、二级供应商、产品名称、注册证号、耗材类型、产品条数、状态、操作","核心列可见;操作列为「详情」。","" ADMIT-MLS-006,基础设置 · 准入管理,物料准入单列表 · 筛选与状态,列表核心列完整,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);默认查询至少 1 条数据,1. 断言表头含准入类型、准入单号、进院供应商、二级供应商、产品名称、注册证号、耗材类型、产品条数、状态、操作,核心列可见;操作列为「详情」。,
"ADMIT-MLS-007","基础设置 · 准入管理","物料准入单列表 · 筛选与状态","切换已通过 Tab","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe)","1. 点击「已通过」 ADMIT-MLS-007,基础设置 · 准入管理,物料准入单列表 · 筛选与状态,切换已通过 Tab,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe),"1. 点击「已通过」
2. 断言有数据时「状态」列为已通过;计数为 0 时为空态 2. 断言有数据时「状态」列为已通过;计数为 0 时为空态
3. 读取 Tab 括号数量,断言与分页「共 N 条」一致","已通过 Tab 的状态列、计数与分页总数一致。","" 3. 读取 Tab 括号数量,断言与分页「共 N 条」一致",已通过 Tab 的状态列、计数与分页总数一致。,
"ADMIT-MLS-008","基础设置 · 准入管理","物料准入单列表 · 单据详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);默认查询至少 1 条数据","1. 记录首行 `${sampleOrderNo}`、`${sampleProductCount}` ADMIT-MLS-008,基础设置 · 准入管理,物料准入单列表 · 单据详情,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);默认查询至少 1 条数据,"1. 记录首行 `${sampleOrderNo}`、`${sampleProductCount}`
2. 点击「详情」 2. 点击「详情」
3. 断言可见「审批进程」「单据日志」「返 回」 3. 断言可见「审批进程」「单据日志」「返 回」
4. 点击「返 回」 4. 点击「返 回」
5. 断言 URL 仍含 `productOrder/zrlist`","进入单据详情并可返回列表。","" 5. 断言 URL 仍含 `productOrder/zrlist`",进入单据详情并可返回列表。,
"ADMIT-MLS-009","基础设置 · 准入管理","物料准入单列表 · 单据详情","详情产品条数与列表一致","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已打开首行详情,且 `${sampleProductCount}` 为正整数","1. 统计详情明细数据行数(跨页则读详情分页总数) ADMIT-MLS-009,基础设置 · 准入管理,物料准入单列表 · 单据详情,详情产品条数与列表一致,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已打开首行详情,且 `${sampleProductCount}` 为正整数,"1. 统计详情明细数据行数(跨页则读详情分页总数)
2. 断言等于列表「产品条数」`${sampleProductCount}`","详情明细条数与列表产品条数一致。","" 2. 断言等于列表「产品条数」`${sampleProductCount}`",详情明细条数与列表产品条数一致。,
"ADMIT-MLS-010","基础设置 · 准入管理","物料准入单列表 · 单据详情","审批进程可打开","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已打开单据详情","1. 点击「审批进程」 ADMIT-MLS-010,基础设置 · 准入管理,物料准入单列表 · 单据详情,审批进程可打开,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已打开单据详情,"1. 点击「审批进程」
2. 断言进程层或区域可见 2. 断言进程层或区域可见
3. 关闭后仍停留在该单据","审批进程可查看;单据不被关掉。","" 3. 关闭后仍停留在该单据",审批进程可查看;单据不被关掉。,
"ADMIT-MLS-011","基础设置 · 准入管理","物料准入单列表 · 单据详情","详情导出不白屏","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已打开单据详情","1. 点击「导 出」 ADMIT-MLS-011,基础设置 · 准入管理,物料准入单列表 · 单据详情,详情导出不白屏,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已打开单据详情,"1. 点击「导 出」
2. 断言出现下载,或出现导出任务/成功提示 2. 断言出现下载,或出现导出任务/成功提示
3. 断言页面仍为该单据详情,不白屏","导出有反馈;详情页仍在。无导出按钮则 skip。","" 3. 断言页面仍为该单据详情,不白屏",导出有反馈;详情页仍在。无导出按钮则 skip。,
"ADMIT-MLS-012","基础设置 · 准入管理","物料准入单列表 · 单据详情","详情搜索无匹配(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已打开单据详情","1. 在「请输入产品编码、名称」填入 `__NOT_EXIST_GOODS__99999` ADMIT-MLS-012,基础设置 · 准入管理,物料准入单列表 · 单据详情,已通过单据不确认通过,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已通过 Tab 至少 1 条,并打开其详情,"1. 若「通过」不可见或禁用,断言该状态保持已通过后返回
2. 触发搜索
3. 断言明细空态,单据头(审批进程、返回)仍在","无匹配时只清空明细,不销毁单据头。",""
"ADMIT-MLS-013","基础设置 · 准入管理","物料准入单列表 · 单据详情","已通过单据不确认通过","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入单列表页(/spd/basic/dataSync/dataSync/productOrder/zrlist,无 iframe);已通过 Tab 至少 1 条,并打开其详情","1. 若「通过」不可见或禁用,断言该状态保持已通过后返回
2. 若「通过」可点,点击后出现确认框则点「取 消」 2. 若「通过」可点,点击后出现确认框则点「取 消」
3. 返回列表,断言该单状态仍为已通过","本条不把已通过单据再次审批成功。已通过 Tab 无数据则 skip。","" 3. 返回列表,断言该单状态仍为已通过",本条不把已通过单据再次审批成功。已通过 Tab 无数据则 skip。,
"ADMIT-MLS-014","基础设置 · 准入管理","物料准入单列表 · 筛选与状态","多条件组合查询(制单日期等6项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载 ADMIT-MLS-013,基础设置 · 准入管理,物料准入单列表 · 筛选与状态,多条件组合查询(制单日期等6项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 准入管理」权限;已进入准入管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 「制单日期」日期区间选择当天 2. 「制单日期」日期区间选择当天
3. 「销售商」填写关键字 3. 「销售商」填写关键字
4. 「耗材类型」下拉选择任一可选项 4. 「耗材类型」下拉选择任一可选项
...@@ -45,4 +42,4 @@ ...@@ -45,4 +42,4 @@
6. 「注册证号」填写关键字 6. 「注册证号」填写关键字
7. 「供应商」填写关键字 7. 「供应商」填写关键字
8. 点击「查询」 8. 点击「查询」
9. 检查列表返回结果","多条件同时生效:制单日期、销售商、耗材类型、器械注册人、注册证号、供应商 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 9. 检查列表返回结果",多条件同时生效:制单日期、销售商、耗材类型、器械注册人、注册证号、供应商 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"ADMIT-MAT-001","基础设置 · 准入管理","物料准入管理 · 页面进入","菜单进入物料准入管理页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 按菜单「基础设置 → 准入管理 → 物料准入管理」进入 ADMIT-MAT-001,基础设置 · 准入管理,物料准入管理 · 页面进入,菜单进入物料准入管理页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备「基础设置 → 准入管理」权限;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 按菜单「基础设置 → 准入管理 → 物料准入管理」进入
2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productApply/ZRlist` 2. 断言 URL 含 `/spd/basic/dataSync/dataSync/productApply/ZRlist`
3. 断言筛选区、「查 询」、状态 Tab、「关联产品」「生成申请单」「一键生成」「作 废」及列表表头可见 3. 断言筛选区、「查 询」、状态 Tab、「关联产品」「生成申请单」「一键生成」「作 废」及列表表头可见
4. 断言当前高亮不是「产品准入申请」或「物料准入单列表」","进入物料准入管理页;不误入同组其它准入页;筛选、状态 Tab 与工具栏可见。","" 4. 断言当前高亮不是「产品准入申请」或「物料准入单列表」",进入物料准入管理页;不误入同组其它准入页;筛选、状态 Tab 与工具栏可见。,
"ADMIT-MAT-002","基础设置 · 准入管理","物料准入管理 · 筛选查询","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 点击「查 询」并等待列表稳定 ADMIT-MAT-002,基础设置 · 准入管理,物料准入管理 · 筛选查询,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 断言出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"ADMIT-MAT-003","基础设置 · 准入管理","物料准入管理 · 筛选查询","产品名称筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据","1. 从首行读取 `${sampleProductName}` ADMIT-MAT-003,基础设置 · 准入管理,物料准入管理 · 筛选查询,产品名称筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据,"1. 从首行读取 `${sampleProductName}`
2. 填入「产品名称」,新增日期保持页面默认,点击「查 询」 2. 填入「产品名称」,新增日期保持页面默认,点击「查 询」
3. 断言结果行「产品名称」均包含该关键字","查询结果产品名称与已填关键字匹配;无未捕获异常。","" 3. 断言结果行「产品名称」均包含该关键字",查询结果产品名称与已填关键字匹配;无未捕获异常。,
"ADMIT-MAT-004","基础设置 · 准入管理","物料准入管理 · 筛选查询","耗材类型筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条且首行耗材类型非空","1. 从首行读取 `${sampleConsumableType}` ADMIT-MAT-004,基础设置 · 准入管理,物料准入管理 · 筛选查询,耗材类型筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条且首行耗材类型非空,"1. 从首行读取 `${sampleConsumableType}`
2. 在耗材类型下拉选择该值,点击「查 询」 2. 在耗材类型下拉选择该值,点击「查 询」
3. 断言结果行「耗材类型」与所选值一致","耗材类型列与所选条件一致。首行类型为空则 skip。","" 3. 断言结果行「耗材类型」与所选值一致",耗材类型列与所选条件一致。首行类型为空则 skip。,
"ADMIT-MAT-005","基础设置 · 准入管理","物料准入管理 · 筛选查询","名称与耗材类型组合查询","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据","1. 读取首行 `${sampleProductName}`、`${sampleConsumableType}` ADMIT-MAT-005,基础设置 · 准入管理,物料准入管理 · 筛选查询,名称与耗材类型组合查询,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据,"1. 读取首行 `${sampleProductName}`、`${sampleConsumableType}`
2. 同时填入名称与耗材类型(新增日期保持默认,勿改成单日) 2. 同时填入名称与耗材类型(新增日期保持默认,勿改成单日)
3. 点击「查 询」 3. 点击「查 询」
4. 断言结果同时满足两个条件","组合查询无报错;结果同时满足产品名称与耗材类型。","" 4. 断言结果同时满足两个条件",组合查询无报错;结果同时满足产品名称与耗材类型。,
"ADMIT-MAT-006","基础设置 · 准入管理","物料准入管理 · 筛选查询","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 填入 `${sampleProductName}` ADMIT-MAT-006,基础设置 · 准入管理,物料准入管理 · 筛选查询,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 填入 `${sampleProductName}`
2. 点击「重 置」 2. 点击「重 置」
3. 断言产品名称等筛选恢复默认","筛选字段恢复默认;列表按默认规则刷新。","" 3. 断言产品名称等筛选恢复默认",筛选字段恢复默认;列表按默认规则刷新。,
"ADMIT-MAT-007","基础设置 · 准入管理","物料准入管理 · 筛选查询","收起后再展开保留条件","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 填入 `${sampleProductName}` ADMIT-MAT-007,基础设置 · 准入管理,物料准入管理 · 筛选查询,收起后再展开保留条件,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 填入 `${sampleProductName}`
2. 点击「收起」,再展开筛选区 2. 点击「收起」,再展开筛选区
3. 断言产品名称仍为已填值","收起不丢失已填条件;展开后值仍在。","" 3. 断言产品名称仍为已填值",收起不丢失已填条件;展开后值仍在。,
"ADMIT-MAT-008","基础设置 · 准入管理","物料准入管理 · 筛选查询","无匹配结果空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 产品名称填入 mock 值 `__NOT_EXIST_GOODS__99999` ADMIT-MAT-008,基础设置 · 准入管理,物料准入管理 · 筛选查询,无匹配结果空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 产品名称填入 mock 值 `__NOT_EXIST_GOODS__99999`
2. 点击「查 询」 2. 点击「查 询」
3. 断言空态或「暂无数据」,分页总数为 0","无匹配时不报错;空态明确;总数为 0。","" 3. 断言空态或「暂无数据」,分页总数为 0",无匹配时不报错;空态明确;总数为 0。,
"ADMIT-MAT-009","基础设置 · 准入管理","物料准入管理 · 状态与列表","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据","1. 点击「查 询」 ADMIT-MAT-009,基础设置 · 准入管理,物料准入管理 · 状态与列表,列表核心列完整,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据,"1. 点击「查 询」
2. 断言表头含准入类型、产品编号、产品名称、规格型号、器械注册人、单位、耗材类型、默认进院供应商、操作","核心列可见;操作列含「详情」「日志」,待申请行另可见「编辑」。","" 2. 断言表头含准入类型、产品编号、产品名称、规格型号、器械注册人、单位、耗材类型、默认进院供应商、操作",核心列可见;操作列含「详情」「日志」,待申请行另可见「编辑」。,
"ADMIT-MAT-010","基础设置 · 准入管理","物料准入管理 · 状态与列表","切换待申请 Tab","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 点击状态 Tab「待申请」 ADMIT-MAT-010,基础设置 · 准入管理,物料准入管理 · 状态与列表,切换待申请 Tab,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 点击状态 Tab「待申请」
2. 断言列表刷新;若有数据,行状态属于待申请(不出现已生效、已作废) 2. 断言列表刷新;若有数据,行状态属于待申请(不出现已生效、已作废)
3. 再点「全部」,断言列表不再只限定待申请","待申请 Tab 只展示待申请数据;「全部」不额外收窄。计数为 0 时为空态且不报错。","" 3. 再点「全部」,断言列表不再只限定待申请",待申请 Tab 只展示待申请数据;「全部」不额外收窄。计数为 0 时为空态且不报错。,
"ADMIT-MAT-011","基础设置 · 准入管理","物料准入管理 · 状态与列表","待申请 Tab 计数与分页总数一致","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 读取「待申请」括号内数量 `${tabCount}` ADMIT-MAT-011,基础设置 · 准入管理,物料准入管理 · 状态与列表,待申请 Tab 计数与分页总数一致,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 读取「待申请」括号内数量 `${tabCount}`
2. 点击该 Tab 并查询稳定 2. 点击该 Tab 并查询稳定
3. 断言分页「共 N 条」的 N 等于 `${tabCount}`","Tab 计数与该状态下分页总数一致。","" 3. 断言分页「共 N 条」的 N 等于 `${tabCount}`",Tab 计数与该状态下分页总数一致。,
"ADMIT-MAT-012","基础设置 · 准入管理","物料准入管理 · 状态与列表","未勾选时生成申请单不可用或提示","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),且当前无勾选行","1. 确认表头复选框与行复选框均未选中 ADMIT-MAT-012,基础设置 · 准入管理,物料准入管理 · 详情与编辑,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据,"1. 记录首行 `${sampleProductName}`
2. 点击「生成申请单」
3. 断言按钮不可用,或出现「请选择」类提示,且列表不新增申请单","未勾选不产生申请单。",""
"ADMIT-MAT-013","基础设置 · 准入管理","物料准入管理 · 详情与编辑","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据","1. 记录首行 `${sampleProductName}`
2. 点击该行「详情」 2. 点击该行「详情」
3. 断言详情中产品名称、规格型号、注册证号可见,且名称包含 `${sampleProductName}` 3. 断言详情中产品名称、规格型号、注册证号可见,且名称包含 `${sampleProductName}`
4. 点击「返回」 4. 点击「返回」
5. 断言回到列表,URL 仍含 `productApply/ZRlist`","详情展示该行产品主数据;返回后仍在物料准入管理列表。","" 5. 断言回到列表,URL 仍含 `productApply/ZRlist`",详情展示该行产品主数据;返回后仍在物料准入管理列表。,
"ADMIT-MAT-014","基础设置 · 准入管理","物料准入管理 · 详情与编辑","详情关键字段不可直接改写","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);已打开首行详情","1. 断言产品名称等主数据无可用的保存按钮,或输入框为只读 ADMIT-MAT-013,基础设置 · 准入管理,物料准入管理 · 详情与编辑,详情关键字段不可直接改写,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);已打开首行详情,"1. 断言产品名称等主数据无可用的保存按钮,或输入框为只读
2. 返回列表,断言首行名称仍为 `${sampleProductName}`","详情态不能把产品名称改写入库。","" 2. 返回列表,断言首行名称仍为 `${sampleProductName}`",详情态不能把产品名称改写入库。,
"ADMIT-MAT-015","基础设置 · 准入管理","物料准入管理 · 详情与编辑","待申请行编辑回填","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);待申请 Tab 至少 1 行含「编辑」","1. 在待申请列表读取首行 `${sampleProductName}`、`${sampleSpec}` ADMIT-MAT-014,基础设置 · 准入管理,物料准入管理 · 详情与编辑,待申请行编辑回填,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);待申请 Tab 至少 1 行含「编辑」,"1. 在待申请列表读取首行 `${sampleProductName}`、`${sampleSpec}`
2. 点击「编辑」 2. 点击「编辑」
3. 断言产品名称、规格型号与该行一致 3. 断言产品名称、规格型号与该行一致
4. 返回且不保存","编辑页回填与列表行一致。无「编辑」则 skip。","" 4. 返回且不保存",编辑页回填与列表行一致。无「编辑」则 skip。,
"ADMIT-MAT-016","基础设置 · 准入管理","物料准入管理 · 详情与编辑","编辑取消不保存","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);存在可编辑行","1. 打开编辑,记录原产品名称 ADMIT-MAT-015,基础设置 · 准入管理,物料准入管理 · 详情与编辑,编辑取消不保存,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);存在可编辑行,"1. 打开编辑,记录原产品名称
2. 将产品名称改为 `${uniqProductName}`(建议 `AUTO-MAT-${timestamp}`)后返回或取消,不保存 2. 将产品名称改为 `${uniqProductName}`(建议 `AUTO-MAT-${timestamp}`)后返回或取消,不保存
3. 再次打开编辑,断言名称仍为原值","取消后列表与回看均为修改前名称。","" 3. 再次打开编辑,断言名称仍为原值",取消后列表与回看均为修改前名称。,
"ADMIT-MAT-017","基础设置 · 准入管理","物料准入管理 · 详情与编辑","编辑清空产品名称拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);存在可编辑行","1. 打开编辑,将产品名称清空为 mock 空值 ADMIT-MAT-016,基础设置 · 准入管理,物料准入管理 · 详情与编辑,编辑清空产品名称拦截(mock反例),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);存在可编辑行,"1. 打开编辑,将产品名称清空为 mock 空值
2. 点击保存 2. 点击保存
3. 断言必填提示,页面不关闭 3. 断言必填提示,页面不关闭
4. 取消后再次打开,断言名称仍为原值","保存被拦截;原记录不被写成空。","" 4. 取消后再次打开,断言名称仍为原值",保存被拦截;原记录不被写成空。,
"ADMIT-MAT-018","基础设置 · 准入管理","物料准入管理 · 详情与编辑","已生效行不提供编辑","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);已生效 Tab 计数大于 0","1. 切换到「已生效」 ADMIT-MAT-017,基础设置 · 准入管理,物料准入管理 · 详情与编辑,已生效行不提供编辑,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);已生效 Tab 计数大于 0,"1. 切换到「已生效」
2. 断言首行操作无「编辑」,或点击后保存被拒绝","已生效行不能改写成新的产品名称。计数为 0 则 skip。","" 2. 断言首行操作无「编辑」,或点击后保存被拒绝",已生效行不能改写成新的产品名称。计数为 0 则 skip。,
"ADMIT-MAT-019","基础设置 · 准入管理","物料准入管理 · 关联与作废","关联产品取消不落库","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe)","1. 记录当前分页总数 `${sampleTotal}` 与首行默认进院供应商 ADMIT-MAT-018,基础设置 · 准入管理,物料准入管理 · 关联与作废,关联产品取消不落库,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe),"1. 记录当前分页总数 `${sampleTotal}` 与首行默认进院供应商
2. 点击「关联产品」 2. 点击「关联产品」
3. 断言关联层打开 3. 断言关联层打开
4. 取消或关闭,不确认 4. 取消或关闭,不确认
5. 断言总数不变,首行供应商不变","取消关联不产生申请单,也不改默认进院供应商。","" 5. 断言总数不变,首行供应商不变",取消关联不产生申请单,也不改默认进院供应商。,
"ADMIT-MAT-020","基础设置 · 准入管理","物料准入管理 · 关联与作废","作废确认后取消","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);待申请至少 1 条可勾选","1. 勾选 1 行,记录其产品名称与当前状态 ADMIT-MAT-019,基础设置 · 准入管理,物料准入管理 · 关联与作废,作废确认后取消,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);待申请至少 1 条可勾选,"1. 勾选 1 行,记录其产品名称与当前状态
2. 点击「作 废」 2. 点击「作 废」
3. 断言出现确认框,含取消与确定 3. 断言出现确认框,含取消与确定
4. 点击「取 消」 4. 点击「取 消」
5. 断言该行仍在,状态未变为已作废","作废需确认;取消后记录仍在。本条不点击确定,避免作废生产数据。","" 5. 断言该行仍在,状态未变为已作废",作废需确认;取消后记录仍在。本条不点击确定,避免作废生产数据。,
"ADMIT-MAT-021","基础设置 · 准入管理","物料准入管理 · 关联与作废","打开操作日志后关闭","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据","1. 点击首行「日志」 ADMIT-MAT-020,基础设置 · 准入管理,物料准入管理 · 关联与作废,打开操作日志后关闭,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入物料准入管理页(/spd/basic/dataSync/dataSync/productApply/ZRlist,无 iframe);默认查询至少 1 条数据,"1. 点击首行「日志」
2. 断言出现操作日志层 2. 断言出现操作日志层
3. 关闭后断言仍在列表页","日志层可打开可关闭;列表数据不变。","" 3. 关闭后断言仍在列表页",日志层可打开可关闭;列表数据不变。,
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"BASIC-NTC-001","基础设置 · 医院资料","公告管理 · 页面进入","菜单进入公告管理页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备医院资料权限;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 按菜单「基础设置 → 医院资料 → 公告管理」进入 BASIC-NTC-001,基础设置 · 医院资料,公告管理 · 页面进入,菜单进入公告管理页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备医院资料权限;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 按菜单「基础设置 → 医院资料 → 公告管理」进入
2. 检查当前 URL 是否含 /spd/basic/hospital/paltform/notice 2. 检查当前 URL 是否含 /spd/basic/hospital/paltform/notice
3. 检查筛选区、新增按钮、列表表头是否可见","进入公告管理页;不误入医院信息登记/院区管理/财务月份设置;筛选区与列表可见。","" 3. 检查筛选区、新增按钮、列表表头是否可见",进入公告管理页;不误入医院信息登记/院区管理/财务月份设置;筛选区与列表可见。,
"BASIC-NTC-002","基础设置 · 医院资料","公告管理 · 筛选查询","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 点击「查 询」并等待列表稳定 BASIC-NTC-002,基础设置 · 医院资料,公告管理 · 筛选查询,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 检查是否出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 检查是否出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"BASIC-NTC-003","基础设置 · 医院资料","公告管理 · 筛选查询","公告标题模糊查询","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);默认查询至少 1 条数据","1. 从首行读取 ${sampleNoticeTitle}(禁止写死业务标题) BASIC-NTC-003,基础设置 · 医院资料,公告管理 · 筛选查询,公告标题模糊查询,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);默认查询至少 1 条数据,"1. 从首行读取 ${sampleNoticeTitle}(禁止写死业务标题)
2. 填入筛选「公告标题」,点击「查 询」 2. 填入筛选「公告标题」,点击「查 询」
3. 检查结果行「公告标题」均包含该关键字(或与产品模糊规则一致)","查询结果标题与已填关键字匹配;无未捕获异常。","" 3. 检查结果行「公告标题」均包含该关键字(或与产品模糊规则一致)",查询结果标题与已填关键字匹配;无未捕获异常。,
"BASIC-NTC-004","基础设置 · 医院资料","公告管理 · 筛选查询","发布范围下拉查询","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 打开发布范围下拉,选择与首行 ${samplePublishScope} 相同的选项(勿写死) BASIC-NTC-004,基础设置 · 医院资料,公告管理 · 筛选查询,发布范围下拉查询,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 打开发布范围下拉,选择与首行 ${samplePublishScope} 相同的选项(勿写死)
2. 点击「查 询」 2. 点击「查 询」
3. 检查结果行「发布范围」列与所选值一致(选「全部」时不额外收窄)","下拉选项含全部/全院/中心库/进院供应商;查询结果范围列与条件一致。","" 3. 检查结果行「发布范围」列与所选值一致(选「全部」时不额外收窄)",下拉选项含全部/全院/中心库/进院供应商;查询结果范围列与条件一致。,
"BASIC-NTC-005","基础设置 · 医院资料","公告管理 · 筛选查询","标题与范围组合查询","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);默认查询至少 1 条数据","1. 读取首行 ${sampleNoticeTitle}、${samplePublishScope} BASIC-NTC-005,基础设置 · 医院资料,公告管理 · 筛选查询,标题与范围组合查询,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);默认查询至少 1 条数据,"1. 读取首行 ${sampleNoticeTitle}、${samplePublishScope}
2. 填入标题与范围(发布日期保持页面默认,勿 fallback 单日) 2. 填入标题与范围(发布日期保持页面默认,勿 fallback 单日)
3. 点击「查 询」 3. 点击「查 询」
4. 检查结果同时满足两个已填条件","组合查询无报错;结果同时满足标题与发布范围。","" 4. 检查结果同时满足两个已填条件",组合查询无报错;结果同时满足标题与发布范围。,
"BASIC-NTC-006","基础设置 · 医院资料","公告管理 · 筛选查询","快捷区重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 填入 ${sampleNoticeTitle} 等筛选条件 BASIC-NTC-006,基础设置 · 医院资料,公告管理 · 筛选查询,快捷区重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 填入 ${sampleNoticeTitle} 等筛选条件
2. 点击「重 置」 2. 点击「重 置」
3. 检查标题/范围/日期是否恢复默认","筛选字段恢复默认;列表按默认规则刷新。","" 3. 检查标题/范围/日期是否恢复默认",筛选字段恢复默认;列表按默认规则刷新。,
"BASIC-NTC-007","基础设置 · 医院资料","公告管理 · 筛选查询","无匹配结果空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 公告标题填入 mock 值 __NOT_EXIST_NOTICE__99999(唯一写死的反例 mock) BASIC-NTC-007,基础设置 · 医院资料,公告管理 · 筛选查询,无匹配结果空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 公告标题填入 mock 值 __NOT_EXIST_NOTICE__99999(唯一写死的反例 mock)
2. 点击「查 询」 2. 点击「查 询」
3. 检查空态或暂无数据,分页总数为 0","无匹配时不报错;空态明确;总数为 0。","" 3. 检查空态或暂无数据,分页总数为 0",无匹配时不报错;空态明确;总数为 0。,
"BASIC-NTC-008","基础设置 · 医院资料","公告管理 · 列表分页","查询后核心列展示","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 点击「查 询」 BASIC-NTC-008,基础设置 · 医院资料,公告管理 · 列表分页,查询后核心列展示,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 点击「查 询」
2. 检查表头是否含公告编号、公告标题、发布范围、发布科室、发布人、操作","核心列完整;操作列可见「编辑」「删除」。","" 2. 检查表头是否含公告编号、公告标题、发布范围、发布科室、发布人、操作",核心列完整;操作列可见「编辑」「删除」。,
"BASIC-NTC-009","基础设置 · 医院资料","公告管理 · 列表分页","分页翻至第 2 页","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);默认查询总条数大于一页","1. 记录第 1 页首行公告编号 BASIC-NTC-009,基础设置 · 医院资料,公告管理 · 列表分页,分页翻至第 2 页,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);默认查询总条数大于一页,"1. 记录第 1 页首行公告编号
2. 点击页码「2」或「下一页」 2. 点击页码「2」或「下一页」
3. 检查页码高亮为 2,首行编号与第 1 页不同","翻页成功;数据更换;筛选条件保持。总条数不足一页则 skip。","" 3. 检查页码高亮为 2,首行编号与第 1 页不同",翻页成功;数据更换;筛选条件保持。总条数不足一页则 skip。,
"BASIC-NTC-010","基础设置 · 医院资料","公告管理 · 列表分页","跳至指定页","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);总页数≥2","1. 在分页「跳至」输入 2 并回车 BASIC-NTC-010,基础设置 · 医院资料,公告管理 · 列表分页,跳至指定页,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);总页数≥2,"1. 在分页「跳至」输入 2 并回车
2. 检查当前页为 2","跳转至指定页;列表刷新为该页数据。无 jumper 或仅 1 页则 skip。","" 2. 检查当前页为 2",跳转至指定页;列表刷新为该页数据。无 jumper 或仅 1 页则 skip。,
"BASIC-NTC-011","基础设置 · 医院资料","公告管理 · 新增公告","打开新增公告弹窗","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 点击「新 增」 BASIC-NTC-011,基础设置 · 医院资料,公告管理 · 新增公告,打开新增公告弹窗,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 点击「新 增」
2. 检查弹窗标题是否为「新增公告」 2. 检查弹窗标题是否为「新增公告」
3. 检查是否可见标题、发布范围、置顶、截止日期、富文本、取消、发布","新增弹窗可见;必填/选填控件齐全;富文本容器 .ql-editor 可见。","" 3. 检查是否可见标题、发布范围、置顶、截止日期、富文本、取消、发布",新增弹窗可见;必填/选填控件齐全;富文本容器 .ql-editor 可见。,
"BASIC-NTC-012","基础设置 · 医院资料","公告管理 · 新增公告","新增取消不落库","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 打开新增,标题填 ${uniqNoticeTitle}(建议 AUTO-NTC-${timestamp}),内容填简短正文 BASIC-NTC-012,基础设置 · 医院资料,公告管理 · 新增公告,新增取消不落库,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe),"1. 打开新增,标题填 ${uniqNoticeTitle}(建议 AUTO-NTC-${timestamp}),内容填简短正文
2. 点击「取 消」 2. 点击「取 消」
3. 按标题查询,检查无该记录","弹窗关闭;列表不出现 ${uniqNoticeTitle}。","" 3. 按标题查询,检查无该记录",弹窗关闭;列表不出现 ${uniqNoticeTitle}。,
"BASIC-NTC-013","基础设置 · 医院资料","公告管理 · 新增公告","合法必填发布成功","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);允许自动化写公告","1. 打开新增,标题 ${uniqNoticeTitle},发布范围选「中心库」,内容写入 .ql-editor BASIC-NTC-013,基础设置 · 医院资料,公告管理 · 编辑与删除,打开编辑公告并回填,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);列表至少 1 条数据,"1. 点击首行「编辑」
2. 点击「发 布」
3. 按标题查询,检查出现该行且发布范围为中心库
4. 后置:删除该测试公告","弹窗关闭;列表出现新记录;字段与提交一致。环境禁止写则 skip。",""
"BASIC-NTC-014","基础设置 · 医院资料","公告管理 · 新增公告","标题为空发布拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 打开新增,标题填 mock 空值 """",内容填 mock 正文 __MOCK_NOTICE_BODY__
2. 点击「发 布」
3. 检查必填提示出现,弹窗仍打开","发布被拦截;不落库;弹窗不关闭。",""
"BASIC-NTC-015","基础设置 · 医院资料","公告管理 · 新增公告","内容为空发布拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe)","1. 打开新增,标题填 mock 值 __MOCK_EMPTY_CONTENT_TITLE__,富文本留空 """"
2. 点击「发 布」
3. 检查内容必填提示,弹窗仍打开","发布被拦截;不落库。",""
"BASIC-NTC-016","基础设置 · 医院资料","公告管理 · 编辑与删除","打开编辑公告并回填","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);列表至少 1 条数据","1. 点击首行「编辑」
2. 检查弹窗标题是否为「编辑公告」 2. 检查弹窗标题是否为「编辑公告」
3. 检查标题输入框值与该行 ${sampleNoticeTitle} 一致(允许规范化空白)","编辑弹窗可见;标题/范围/内容回填正确。","" 3. 检查标题输入框值与该行 ${sampleNoticeTitle} 一致(允许规范化空白)",编辑弹窗可见;标题/范围/内容回填正确。,
"BASIC-NTC-017","基础设置 · 医院资料","公告管理 · 编辑与删除","编辑取消不保存","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);列表至少 1 条数据","1. 打开首行编辑,记录原标题 BASIC-NTC-014,基础设置 · 医院资料,公告管理 · 编辑与删除,编辑取消不保存,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);列表至少 1 条数据,"1. 打开首行编辑,记录原标题
2. 将标题改为 ${uniqNoticeTitle} 后点「取 消」 2. 将标题改为 ${uniqNoticeTitle} 后点「取 消」
3. 再次打开编辑,检查标题仍为原值","取消后列表与回看均为修改前标题。","" 3. 再次打开编辑,检查标题仍为原值",取消后列表与回看均为修改前标题。,
"BASIC-NTC-018","基础设置 · 医院资料","公告管理 · 编辑与删除","删除弹出确认框","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);列表至少 1 条数据","1. 点击首行「删除」 BASIC-NTC-015,基础设置 · 医院资料,公告管理 · 编辑与删除,删除弹出确认框,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入公告管理页(/spd/basic/hospital/paltform/notice,无 iframe);列表至少 1 条数据,"1. 点击首行「删除」
2. 检查出现确认框(标题含「提示」),可见「取 消」「确 定」 2. 检查出现确认框(标题含「提示」),可见「取 消」「确 定」
3. 点击「取 消」 3. 点击「取 消」
4. 检查该行仍在","删除需二次确认;取消后记录仍在。本条不断言真实删除,避免污染数据。","" 4. 检查该行仍在",删除需二次确认;取消后记录仍在。本条不断言真实删除,避免污染数据。,
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"BASIC-FMN-001","基础设置 · 医院资料","财务月份设置 · 页面进入","菜单进入财务月份设置页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备医院资料权限;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe)","1. 按菜单「基础设置 → 医院资料 → 财务月份设置」进入 BASIC-FMN-001,基础设置 · 医院资料,财务月份设置 · 页面进入,菜单进入财务月份设置页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备医院资料权限;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe),"1. 按菜单「基础设置 → 医院资料 → 财务月份设置」进入
2. 检查当前 URL 是否含 /spd/basic/hospital/balance/month 2. 检查当前 URL 是否含 /spd/basic/hospital/balance/month
3. 检查筛选区(#form_item_settleMonthDate)、查询/重置、列表列头是否可见","进入财务月份设置页;不误入公告/医院信息/院区页;筛选与列表可见。","" 3. 检查筛选区(#form_item_settleMonthDate)、查询/重置、列表列头是否可见",进入财务月份设置页;不误入公告/医院信息/院区页;筛选与列表可见。,
"BASIC-FMN-002","基础设置 · 医院资料","财务月份设置 · 筛选查询","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe)","1. 点击「查 询」并等待列表稳定 BASIC-FMN-002,基础设置 · 医院资料,财务月份设置 · 筛选查询,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 检查是否出现数据行,或「暂无数据」且分页总数为 0","查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 检查是否出现数据行,或「暂无数据」且分页总数为 0",查询无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"BASIC-FMN-003","基础设置 · 医院资料","财务月份设置 · 筛选查询","按财务月份筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);默认查询至少 1 条数据","1. 从首行或当前月份行读取 ${sampleFinanceMonth}(禁止写死月份) BASIC-FMN-003,基础设置 · 医院资料,财务月份设置 · 筛选查询,按财务月份筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);默认查询至少 1 条数据,"1. 从首行或当前月份行读取 ${sampleFinanceMonth}(禁止写死月份)
2. 在 #form_item_settleMonthDate 选择该月份,点击「查 询」 2. 在 #form_item_settleMonthDate 选择该月份,点击「查 询」
3. 检查结果行「财务月份」均等于该月份(或与产品筛选规则一致)","结果仅含所选财务月份;无未捕获异常。","" 3. 检查结果行「财务月份」均等于该月份(或与产品筛选规则一致)",结果仅含所选财务月份;无未捕获异常。,
"BASIC-FMN-004","基础设置 · 医院资料","财务月份设置 · 筛选查询","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe)","1. 选择 ${sampleFinanceMonth} 并查询 BASIC-FMN-004,基础设置 · 医院资料,财务月份设置 · 筛选查询,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe),"1. 选择 ${sampleFinanceMonth} 并查询
2. 点击「重 置」 2. 点击「重 置」
3. 检查月份筛选恢复默认,列表按默认规则刷新","重置后筛选清空或回到默认;列表可再查询。","" 3. 检查月份筛选恢复默认,列表按默认规则刷新",重置后筛选清空或回到默认;列表可再查询。,
"BASIC-FMN-005","基础设置 · 医院资料","财务月份设置 · 列表与状态","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);默认查询至少 1 条数据","1. 检查表头是否包含财务月份、开始日期、结束日期、自动结算日期、状态、操作","核心列均可见,不缺「状态」「操作」。","" BASIC-FMN-005,基础设置 · 医院资料,财务月份设置 · 列表与状态,列表核心列完整,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);默认查询至少 1 条数据,1. 检查表头是否包含财务月份、开始日期、结束日期、自动结算日期、状态、操作,核心列均可见,不缺「状态」「操作」。,
"BASIC-FMN-006","基础设置 · 医院资料","财务月份设置 · 列表与状态","仅当前月份行可修改","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);列表同时存在当前月份与历史月份(若仅一行当前月份则只断言该行)","1. 定位状态为「当前月份」的行,检查操作列可见「修 改」(modifyBtn) BASIC-FMN-006,基础设置 · 医院资料,财务月份设置 · 列表与状态,仅当前月份行可修改,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);列表同时存在当前月份与历史月份(若仅一行当前月份则只断言该行),"1. 定位状态为「当前月份」的行,检查操作列可见「修 改」(modifyBtn)
2. 对「历史月份」行检查无「修 改」或操作为「--」","可修改入口只出现在当前月份行。无历史月份则只校验当前月份入口。","" 2. 对「历史月份」行检查无「修 改」或操作为「--」",可修改入口只出现在当前月份行。无历史月份则只校验当前月份入口。,
"BASIC-FMN-007","基础设置 · 医院资料","财务月份设置 · 列表与状态","当前月份至多一行","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);默认查询已出列表","1. 统计状态为「当前月份」的行数 BASIC-FMN-007,基础设置 · 医院资料,财务月份设置 · 列表与状态,当前月份至多一行,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);默认查询已出列表,"1. 统计状态为「当前月份」的行数
2. 检查行数 ≤ 1","同一时点至多一行「当前月份」。","" 2. 检查行数 ≤ 1",同一时点至多一行「当前月份」。,
"BASIC-FMN-008","基础设置 · 医院资料","财务月份设置 · 列表与状态","历史月份无法进入编辑","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);列表至少 1 条历史月份","1. 对历史月份行尝试点击操作区 BASIC-FMN-008,基础设置 · 医院资料,财务月份设置 · 列表与状态,历史月份无法进入编辑,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);列表至少 1 条历史月份,"1. 对历史月份行尝试点击操作区
2. 检查不出现行内「保 存」「取 消」,自动结算日期仍为文本","历史月份不能改开始/结束/自动结算日期。无历史月份则 skip。","" 2. 检查不出现行内「保 存」「取 消」,自动结算日期仍为文本",历史月份不能改开始/结束/自动结算日期。无历史月份则 skip。,
"BASIC-FMN-009","基础设置 · 医院资料","财务月份设置 · 当前月份修改","修改进入行内编辑","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);存在状态为「当前月份」的行","1. 点击该行「修 改」 BASIC-FMN-009,基础设置 · 医院资料,财务月份设置 · 当前月份修改,修改进入行内编辑,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);存在状态为「当前月份」的行,"1. 点击该行「修 改」
2. 检查出现「保 存」「取 消」 2. 检查出现「保 存」「取 消」
3. 检查自动结算日期变为日期框(autoSettleDateInput)","进入行内编辑;仅自动结算日可改。","" 3. 检查自动结算日期变为日期框(autoSettleDateInput)",进入行内编辑;仅自动结算日可改。,
"BASIC-FMN-010","基础设置 · 医院资料","财务月份设置 · 当前月份修改","编辑态开始结束日期只读","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);已进入当前月份行内编辑","1. 点击「修 改」 BASIC-FMN-010,基础设置 · 医院资料,财务月份设置 · 当前月份修改,取消不保存自动结算日,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);存在当前月份行,"1. 读取 ${sampleAutoSettleDate}
2. 检查开始日期、结束日期无可用输入框
3. 检查仅 autoSettleDateInput 可编辑
4. 点击「取 消」退出","开始/结束日期保持只读;账期区间不被改写。",""
"BASIC-FMN-011","基础设置 · 医院资料","财务月份设置 · 当前月份修改","取消不保存自动结算日","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);存在当前月份行","1. 读取 ${sampleAutoSettleDate}
2. 点「修 改」,将自动结算日改为当月区间内另一天 ${uniqAutoSettleDate} 2. 点「修 改」,将自动结算日改为当月区间内另一天 ${uniqAutoSettleDate}
3. 点击「取 消」 3. 点击「取 消」
4. 检查该行自动结算日仍为 ${sampleAutoSettleDate}","取消后不落库;日期恢复修改前值。","" 4. 检查该行自动结算日仍为 ${sampleAutoSettleDate}",取消后不落库;日期恢复修改前值。,
"BASIC-FMN-012","基础设置 · 医院资料","财务月份设置 · 当前月份修改","保存自动结算日期持久化","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);存在当前月份行;允许写财务月份","1. 记录 ${sampleAutoSettleDate}、${sampleStartDate}、${sampleEndDate}
2. 将自动结算日改为区间内另一天 ${uniqAutoSettleDate} 并「保 存」
3. 刷新或重新查询,检查该行自动结算日为 ${uniqAutoSettleDate}
4. 后置:再改为 ${sampleAutoSettleDate} 并保存","保存后刷新仍为新日期;用例结束恢复原值。环境禁止写则 skip。",""
"BASIC-FMN-013","基础设置 · 医院资料","财务月份设置 · 当前月份修改","自动结算日为空拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);存在当前月份行","1. 点「修 改」,将 autoSettleDateInput 清空为 mock 空值 """"
2. 点击「保 存」
3. 检查必填或非法提示,行上日期仍为 ${sampleAutoSettleDate}","保存被拦截;原日期不被写成空。",""
"BASIC-FMN-014","基础设置 · 医院资料","财务月份设置 · 当前月份修改","自动结算日超出当月区间拦截(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入财务月份设置页(/spd/basic/hospital/balance/month,无 iframe);存在当前月份行且能读到开始/结束日","1. 点「修 改」,将日期改为 mock 越界值:早于 ${sampleStartDate} 或晚于 ${sampleEndDate}(如 __MOCK_OUT_OF_RANGE_DATE__)
2. 点击「保 存」
3. 检查拒绝保存并提示,原日期不变
4. 点「取 消」退出","超出账期区间时拒绝保存;不脏写。日期控件无法选出区间外日期则 skip 并记录产品限制。",""
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"BASIC-BRN-001","基础设置 · 医院资料","院区管理 · 页面进入","菜单进入院区管理页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备医院资料权限;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe)","1. 按菜单「基础设置 → 医院资料 → 院区管理」进入 BASIC-BRN-001,基础设置 · 医院资料,院区管理 · 页面进入,菜单进入院区管理页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录(已登录);具备医院资料权限;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe),"1. 按菜单「基础设置 → 医院资料 → 院区管理」进入
2. 检查当前 URL 是否含 /spd/basic/hospital/paltform/area 2. 检查当前 URL 是否含 /spd/basic/hospital/paltform/area
3. 检查「新 增」、院区名称搜索框(campusNameInput)、列表列头可见 3. 检查「新 增」、院区名称搜索框(campusNameInput)、列表列头可见
4. 检查页面无独立「查 询」「重 置」按钮","进入院区管理页;不误入公告/医院信息/财务月份页;搜索框与新增可见,无查询/重置。","" 4. 检查页面无独立「查 询」「重 置」按钮",进入院区管理页;不误入公告/医院信息/财务月份页;搜索框与新增可见,无查询/重置。,
"BASIC-BRN-002","基础设置 · 医院资料","院区管理 · 列表搜索","默认列出院区或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe)","1. 等待列表稳定 BASIC-BRN-002,基础设置 · 医院资料,院区管理 · 列表搜索,默认列出院区或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe),"1. 等待列表稳定
2. 检查是否出现数据行,或「暂无数据」且分页总数为 0","加载无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。","" 2. 检查是否出现数据行,或「暂无数据」且分页总数为 0",加载无报错;有数据时分页「共 N 条」N≥1;无数据时空态明确。,
"BASIC-BRN-003","基础设置 · 医院资料","院区管理 · 列表搜索","院区名称搜索过滤","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);默认列表至少 1 条数据","1. 从首行读取 ${sampleCampusName}(禁止写死院区名称) BASIC-BRN-003,基础设置 · 医院资料,院区管理 · 列表搜索,院区名称搜索过滤,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);默认列表至少 1 条数据,"1. 从首行读取 ${sampleCampusName}(禁止写死院区名称)
2. 在 campusNameInput 填入该关键字(即时过滤或回车,以现网为准) 2. 在 campusNameInput 填入该关键字(即时过滤或回车,以现网为准)
3. 检查结果行「院区名称」均包含该关键字","过滤结果名称与已填关键字匹配;无未捕获异常。","" 3. 检查结果行「院区名称」均包含该关键字",过滤结果名称与已填关键字匹配;无未捕获异常。,
"BASIC-BRN-004","基础设置 · 医院资料","院区管理 · 列表搜索","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);默认列表至少 1 条数据","1. 检查表头是否包含序号、院区编号、院区名称、院区地址、状态、启用云仓、操作","核心列均可见,操作列含「编 辑」。","" BASIC-BRN-004,基础设置 · 医院资料,院区管理 · 列表搜索,清空搜索恢复全量,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已用 ${sampleCampusName} 过滤,"1. 记录过滤后条数
"BASIC-BRN-005","基础设置 · 医院资料","院区管理 · 列表搜索","清空搜索恢复全量","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已用 ${sampleCampusName} 过滤","1. 记录过滤后条数
2. 清空 campusNameInput 并等待列表刷新 2. 清空 campusNameInput 并等待列表刷新
3. 检查条数回到未过滤的默认集合(或不少于过滤后条数)","清空后列表恢复默认集合。","" 3. 检查条数回到未过滤的默认集合(或不少于过滤后条数)",清空后列表恢复默认集合。,
"BASIC-BRN-006","基础设置 · 医院资料","院区管理 · 列表搜索","搜索无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe)","1. 在院区名称框输入 mock 值 __NOT_EXIST_CAMPUS__99999(唯一写死的反例 mock) BASIC-BRN-005,基础设置 · 医院资料,院区管理 · 列表搜索,搜索无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe),"1. 在院区名称框输入 mock 值 __NOT_EXIST_CAMPUS__99999(唯一写死的反例 mock)
2. 检查「暂无数据」且分页总数为 0","无匹配时空态明确,不白屏。","" 2. 检查「暂无数据」且分页总数为 0",无匹配时空态明确,不白屏。,
"BASIC-BRN-007","基础设置 · 医院资料","院区管理 · 新增院区","打开新增院区弹窗","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe)","1. 点击「新 增」 BASIC-BRN-006,基础设置 · 医院资料,院区管理 · 新增院区,打开新增院区弹窗,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe),"1. 点击「新 增」
2. 检查弹窗标题是否为「新增院区」 2. 检查弹窗标题是否为「新增院区」
3. 检查可见院区名称、所在地区、详细地址、主院区标志、状态、取消/确定 3. 检查可见院区名称、所在地区、详细地址、主院区标志、状态、取消/确定
4. 检查无 #form_item_id、无启用云仓 4. 检查无 #form_item_id、无启用云仓
5. 点击「取 消」关闭","新增弹窗字段完整;不含院区编号与启用云仓。","" 5. 点击「取 消」关闭",新增弹窗字段完整;不含院区编号与启用云仓。,
"BASIC-BRN-008","基础设置 · 医院资料","院区管理 · 新增院区","新增取消不落库","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe)","1. 记录当前分页总数 ${sampleTotal} BASIC-BRN-007,基础设置 · 医院资料,院区管理 · 新增院区,新增取消不落库,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe),"1. 记录当前分页总数 ${sampleTotal}
2. 打开新增,填写名称 ${uniqCampusName}(建议 AUTO-BRN-${timestamp})后点「取 消」 2. 打开新增,填写名称 ${uniqCampusName}(建议 AUTO-BRN-${timestamp})后点「取 消」
3. 检查列表总数不变,且无该名称行","取消后不新增院区。","" 3. 检查列表总数不变,且无该名称行",取消后不新增院区。,
"BASIC-BRN-009","基础设置 · 医院资料","院区管理 · 新增院区","合法必填新增成功","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);允许写院区;名称使用 ${uniqCampusName}","1. 打开新增,填写名称 ${uniqCampusName}、所在地区、详细地址,主院区选「否」,状态选「启用」 BASIC-BRN-008,基础设置 · 医院资料,院区管理 · 新增院区,院区名称为空拦截(mock反例),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开新增弹窗,"1. 名称填 mock 空值 """",补齐地区与地址后点「确 定」
2. 检查必填提示,弹窗仍在,列表无新行",确定被拦截;不落库。,
BASIC-BRN-009,基础设置 · 医院资料,院区管理 · 新增院区,所在地区为空拦截(mock反例),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开新增弹窗,"1. 名称填 mock 值 __MOCK_CAMPUS_NO_REGION__,地址填 __MOCK_ADDR__,不选所在地区
2. 点击「确 定」 2. 点击「确 定」
3. 检查弹窗关闭,列表出现该名称行且字段一致 3. 检查必填提示,弹窗仍在",确定被拦截;不落库。,
4. 后置:按环境约定停用或清理该院区,避免污染主数据","新增成功且列表可见;用例结束清理或停用,不留生产脏数据。环境禁止写则 skip。","" BASIC-BRN-010,基础设置 · 医院资料,院区管理 · 新增院区,详细地址为空拦截(mock反例),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开新增弹窗,"1. 名称填 mock 值 __MOCK_CAMPUS_NO_ADDR__ 并选择地区,地址留空 """"
"BASIC-BRN-010","基础设置 · 医院资料","院区管理 · 新增院区","院区名称为空拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开新增弹窗","1. 名称填 mock 空值 """",补齐地区与地址后点「确 定」
2. 检查必填提示,弹窗仍在,列表无新行","确定被拦截;不落库。",""
"BASIC-BRN-011","基础设置 · 医院资料","院区管理 · 新增院区","所在地区为空拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开新增弹窗","1. 名称填 mock 值 __MOCK_CAMPUS_NO_REGION__,地址填 __MOCK_ADDR__,不选所在地区
2. 点击「确 定」 2. 点击「确 定」
3. 检查必填提示,弹窗仍在","确定被拦截;不落库。","" 3. 检查必填提示,弹窗仍在",确定被拦截;不落库。,
"BASIC-BRN-012","基础设置 · 医院资料","院区管理 · 新增院区","详细地址为空拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开新增弹窗","1. 名称填 mock 值 __MOCK_CAMPUS_NO_ADDR__ 并选择地区,地址留空 """" BASIC-BRN-011,基础设置 · 医院资料,院区管理 · 编辑院区,编辑态院区编号不可换号,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开首行编辑,"1. 检查 #form_item_id 可见且值等于列表「院区编号」
2. 点击「确 定」
3. 检查必填提示,弹窗仍在","确定被拦截;不落库。",""
"BASIC-BRN-013","基础设置 · 医院资料","院区管理 · 编辑院区","打开编辑弹窗并回填","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);列表至少 1 条数据","1. 从首行读取 ${sampleCampusId}、${sampleCampusName}、${sampleCampusAddress}
2. 点击「编 辑」
3. 检查弹窗标题是否为「编辑院区」
4. 检查 #form_item_id 等于 ${sampleCampusId},名称/地址回填正确
5. 检查额外可见「启用云仓」
6. 点击「取 消」","编辑弹窗回填正确;相对新增多出院区编号与启用云仓。",""
"BASIC-BRN-014","基础设置 · 医院资料","院区管理 · 编辑院区","编辑态院区编号不可换号","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开首行编辑","1. 检查 #form_item_id 可见且值等于列表「院区编号」
2. 若编号只读则直接检查 disabled/readonly;若可输入则改写为 mock 值 __MOCK_CAMPUS_ID__ 后点确定,刷新后编号仍为原值 2. 若编号只读则直接检查 disabled/readonly;若可输入则改写为 mock 值 __MOCK_CAMPUS_ID__ 后点确定,刷新后编号仍为原值
3. 未改其它字段时点「取 消」","院区编号与列表一致;保存后编号不变。","" 3. 未改其它字段时点「取 消」",院区编号与列表一致;保存后编号不变。,
"BASIC-BRN-015","基础设置 · 医院资料","院区管理 · 编辑院区","编辑取消不保存","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);列表至少 1 条数据","1. 打开首行编辑,记录原名称 BASIC-BRN-012,基础设置 · 医院资料,院区管理 · 编辑院区,编辑取消不保存,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);列表至少 1 条数据,"1. 打开首行编辑,记录原名称
2. 将名称改为 ${uniqCampusName} 后点「取 消」 2. 将名称改为 ${uniqCampusName} 后点「取 消」
3. 再次打开编辑,检查名称仍为原值","取消后列表与回看均为修改前名称。","" 3. 再次打开编辑,检查名称仍为原值",取消后列表与回看均为修改前名称。,
"BASIC-BRN-016","基础设置 · 医院资料","院区管理 · 编辑院区","编辑状态为禁用启用","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开编辑弹窗","1. 检查状态选项文案为「禁用 / 启用」(不是新增弹窗的「停用 / 启用」) BASIC-BRN-013,基础设置 · 医院资料,院区管理 · 编辑院区,编辑状态为禁用启用,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开编辑弹窗,"1. 检查状态选项文案为「禁用 / 启用」(不是新增弹窗的「停用 / 启用」)
2. 点「取 消」,不改状态","编辑态状态文案与新增不同;本条不真实切换生产院区状态。","" 2. 点「取 消」,不改状态",编辑态状态文案与新增不同;本条不真实切换生产院区状态。,
"BASIC-BRN-017","基础设置 · 医院资料","院区管理 · 编辑院区","编辑可见启用云仓","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开编辑弹窗","1. 检查「启用云仓」单选「是 / 否」可见 BASIC-BRN-014,基础设置 · 医院资料,院区管理 · 编辑院区,编辑可见启用云仓,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);已打开编辑弹窗,"1. 检查「启用云仓」单选「是 / 否」可见
2. 点「取 消」,不改云仓标志","编辑可看到启用云仓;本条不真实改生产院区云仓开关。","" 2. 点「取 消」,不改云仓标志",编辑可看到启用云仓;本条不真实改生产院区云仓开关。,
"BASIC-BRN-018","基础设置 · 医院资料","院区管理 · 编辑院区","编辑清空必填拦截(mock反例)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);列表至少 1 条数据","1. 打开首行编辑,将院区名称清空为 mock 空值 """" 后点「确 定」 BASIC-BRN-015,基础设置 · 医院资料,院区管理 · 编辑院区,编辑清空必填拦截(mock反例),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;已进入院区管理页(/spd/basic/hospital/paltform/area,无 iframe);列表至少 1 条数据,"1. 打开首行编辑,将院区名称清空为 mock 空值 """" 后点「确 定」
2. 检查必填提示,弹窗仍在 2. 检查必填提示,弹窗仍在
3. 点「取 消」后再打开,检查名称仍为原值","确定被拦截;原记录不被写成空。","" 3. 点「取 消」后再打开,检查名称仍为原值",确定被拦截;原记录不被写成空。,
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"VENDOR-HLD-001","基础设置 · 厂商管理","供应商节假日管理 · 页面进入","菜单进入供应商节假日管理页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe)","1. 按菜单进入供应商节假日管理 VENDOR-HLD-001,基础设置 · 厂商管理,供应商节假日管理 · 页面进入,菜单进入供应商节假日管理页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe),"1. 按菜单进入供应商节假日管理
2. 断言 URL 含 `prov/holiday` 2. 断言 URL 含 `prov/holiday`
3. 断言可见节假日主区与新增","进入供应商节假日管理页。","" 3. 断言可见节假日主区与新增",进入供应商节假日管理页。,
"VENDOR-HLD-002","基础设置 · 厂商管理","供应商节假日管理 · 左右分栏","选中左侧节假日展示详情","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe);左侧有数据","1. 点击左侧首行 VENDOR-HLD-002,基础设置 · 厂商管理,供应商节假日管理 · 左右分栏,选中左侧节假日展示详情,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe);左侧有数据,"1. 点击左侧首行
2. 断言默认假日详情或自定义列表区可见","详情联动成功。","" 2. 断言默认假日详情或自定义列表区可见",详情联动成功。,
"VENDOR-HLD-003","基础设置 · 厂商管理","供应商节假日管理 · 左右分栏","左侧搜索无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe)","1. 左侧搜索框填 mock 并回车 VENDOR-HLD-003,基础设置 · 厂商管理,供应商节假日管理 · 左右分栏,左侧搜索无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe),"1. 左侧搜索框填 mock 并回车
2. 断言左侧列表空态","无匹配空态明确。","" 2. 断言左侧列表空态",无匹配空态明确。,
"VENDOR-HLD-004","基础设置 · 厂商管理","供应商节假日管理 · 维护","左侧新增取消","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe)","1. 点击新增 VENDOR-HLD-004,基础设置 · 厂商管理,供应商节假日管理 · 维护,左侧新增取消,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe),"1. 点击新增
2. 取消/关闭不保存 2. 取消/关闭不保存
3. 断言仍停留本页且无异常","取消不落库。","" 3. 断言仍停留本页且无异常",取消不落库。,
"VENDOR-HLD-005","基础设置 · 厂商管理","供应商节假日管理 · 左右分栏","自定义节假日列表区可见","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe)","1. 选中左侧行 VENDOR-HLD-005,基础设置 · 厂商管理,供应商节假日管理 · 左右分栏,自定义节假日列表区可见,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe),"1. 选中左侧行
2. 断言「供应商自定义节假日列表」区域可见(可为空态)","自定义区可见。","" 2. 断言「供应商自定义节假日列表」区域可见(可为空态)",自定义区可见。,
"VENDOR-HLD-006","基础设置 · 厂商管理","供应商节假日管理 · 维护","结束早于开始日期拦截","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe)","1. 打开新增/编辑,结束日期早于开始日期尝试保存 VENDOR-HLD-006,基础设置 · 厂商管理,供应商节假日管理 · 左右分栏,进院供应商主数据一致,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe),"1. 在自定义列表抽样进院供应商(若有数据)
2. 断言拒绝保存并提示","非法日期被拦截。","" 2. 断言可在厂商/供应商主数据中找到对应记录",自定义节假日供应商与主数据一致。,
"VENDOR-HLD-007","基础设置 · 厂商管理","供应商节假日管理 · 维护","开始结束为同一天","低","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe)","1. 打开新增/编辑,开始与结束日期选同一天尝试保存(或仅校验控件)
2. 断言允许保存或明确提示规则(按产品规则),不报错白屏","同日区间规则明确。",""
"VENDOR-HLD-008","基础设置 · 厂商管理","供应商节假日管理 · 左右分栏","进院供应商主数据一致","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商节假日管理页(/spd/basic/mfrs/basic/prov/holiday,无 iframe)","1. 在自定义列表抽样进院供应商(若有数据)
2. 断言可在厂商/供应商主数据中找到对应记录","自定义节假日供应商与主数据一致。",""
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"VENDOR-QUL-001","基础设置 · 厂商管理","供应商资质管理 · 页面进入","菜单进入供应商资质管理页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 按菜单「基础设置 → 厂商管理 → 供应商资质管理」进入 VENDOR-QUL-001,基础设置 · 厂商管理,供应商资质管理 · 页面进入,菜单进入供应商资质管理页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),"1. 按菜单「基础设置 → 厂商管理 → 供应商资质管理」进入
2. 断言 URL 含 `/spd/basic/mfrs/basic/qcManage` 2. 断言 URL 含 `/spd/basic/mfrs/basic/qcManage`
3. 断言可见「查 询」「重 置」及证件效期提醒相关入口","进入供应商资质管理;不误入厂商查询。","" 3. 断言可见「查 询」「重 置」及证件效期提醒相关入口",进入供应商资质管理;不误入厂商查询。,
"VENDOR-QUL-002","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 点击「查 询」并等待列表稳定 VENDOR-QUL-002,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行或空态明确","查询无报错;有数据时分页 N≥1。","" 2. 断言出现数据行或空态明确",查询无报错;有数据时分页 N≥1。,
"VENDOR-QUL-003","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","切换授权链路效期预警 Tab","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 点击「授权链路效期预警」 VENDOR-QUL-003,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,切换授权链路效期预警 Tab,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),"1. 点击「授权链路效期预警」
2. 断言列表有数据或空态明确","Tab 切换成功,列表字段可随 Tab 变化。","" 2. 断言列表有数据或空态明确",Tab 切换成功,列表字段可随 Tab 变化。,
"VENDOR-QUL-004","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","近三个月到期计数一致","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 切换「近三个月到期」(或等价文案) VENDOR-QUL-004,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,近三个月到期计数一致,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),"1. 切换「近三个月到期」(或等价文案)
2. 若可读到括号/冒号计数,断言等于分页「共 N 条」","计数与分页一致(可读时)。","" 2. 若可读到括号/冒号计数,断言等于分页「共 N 条」",计数与分页一致(可读时)。,
"VENDOR-QUL-005","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","按进院供应商筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe);证件效期提醒至少 1 条且进院供应商非空","1. 从首行读取 `${sampleHospitalSupplier}` 取关键字 VENDOR-QUL-005,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,按进院供应商筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe);证件效期提醒至少 1 条且进院供应商非空,"1. 从首行读取 `${sampleHospitalSupplier}` 取关键字
2. 在进院供应商名称填入关键字并「查 询」 2. 在进院供应商名称填入关键字并「查 询」
3. 断言结果行「进院供应商」包含关键字","进院供应商列与条件一致。","" 3. 断言结果行「进院供应商」包含关键字",进院供应商列与条件一致。,
"VENDOR-QUL-006","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 填写筛选条件后点击「重 置」 VENDOR-QUL-006,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),"1. 填写筛选条件后点击「重 置」
2. 断言列表按默认规则刷新","筛选恢复默认。","" 2. 断言列表按默认规则刷新",筛选恢复默认。,
"VENDOR-QUL-007","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 进院供应商名称填入 `__NOT_EXIST_SUPPLIER__99999` VENDOR-QUL-007,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),"1. 进院供应商名称填入 `__NOT_EXIST_SUPPLIER__99999`
2. 点击「查 询」 2. 点击「查 询」
3. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 3. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"VENDOR-QUL-008","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","证件效期提醒核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 处于证件效期提醒 Tab VENDOR-QUL-008,基础设置 · 厂商管理,供应商资质管理 · 查看与导出,导出按钮可见,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),1. 断言「导出」或「导出明细」按钮可见(本批不确认下载),导出入口可见。,
2. 断言表头含序号、数据来源、进院供应商、有效期至、证件名称、证件类型、效期提醒、操作","核心列可见。","" VENDOR-QUL-009,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,制单/效期日期起止同一天,低,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe),"1. 若存在日期区间筛选,起止选同一天并查询
"VENDOR-QUL-009","基础设置 · 厂商管理","供应商资质管理 · 查看与导出","打开查看后关闭","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe);列表至少 1 行含「查看」","1. 点击首行「查 看」 2. 断言仅返回该日数据或空态明确,不报错",同日区间行为明确。,
2. 断言详情层可见 VENDOR-QUL-010,基础设置 · 厂商管理,供应商资质管理 · 筛选与 Tab,多条件组合查询(销售商名称等2项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
3. 关闭/返回,断言回到列表","详情可打开;关闭后回到列表。",""
"VENDOR-QUL-010","基础设置 · 厂商管理","供应商资质管理 · 查看与导出","导出按钮可见","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 断言「导出」或「导出明细」按钮可见(本批不确认下载)","导出入口可见。",""
"VENDOR-QUL-011","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","制单/效期日期起止同一天","低","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 若存在日期区间筛选,起止选同一天并查询
2. 断言仅返回该日数据或空态明确,不报错","同日区间行为明确。",""
"VENDOR-QUL-012","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","效期提醒与有效期至抽样一致","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入供应商资质管理页(/spd/basic/mfrs/basic/qcManage,无 iframe)","1. 在近三个月到期列表抽样一行
2. 核对「效期提醒」文案与「有效期至」日期逻辑一致","提醒文案与有效期至不矛盾。",""
"VENDOR-QUL-013","基础设置 · 厂商管理","供应商资质管理 · 筛选与 Tab","多条件组合查询(销售商名称等2项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载
2. 「销售商名称」填写关键字 2. 「销售商名称」填写关键字
3. 「证件类型」下拉选择任一可选项 3. 「证件类型」下拉选择任一可选项
4. 点击「查询」 4. 点击「查询」
5. 检查列表返回结果","多条件同时生效:销售商名称、证件类型 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 5. 检查列表返回结果",多条件同时生效:销售商名称、证件类型 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"VENDOR-AF1-001","基础设置 · 厂商管理","授权变更初审 · 页面进入","菜单进入授权变更初审页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe)","1. 按菜单「基础设置 → 厂商管理 → 授权变更初审」进入 VENDOR-AF1-001,基础设置 · 厂商管理,授权变更初审 · 页面进入,菜单进入授权变更初审页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe),"1. 按菜单「基础设置 → 厂商管理 → 授权变更初审」进入
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/authAudit` 2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/authAudit`
3. 断言可见「查 询」「重 置」及制单日期筛选","进入授权变更初审页;不误入其它变更审批菜单。","" 3. 断言可见「查 询」「重 置」及制单日期筛选",进入授权变更初审页;不误入其它变更审批菜单。,
"VENDOR-AF1-002","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe)","1. 点击「查 询」并等待列表稳定 VENDOR-AF1-002,基础设置 · 厂商管理,授权变更初审 · 筛选与列表,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行或空态明确","查询无报错;有数据时分页 N≥1。","" 2. 断言出现数据行或空态明确",查询无报错;有数据时分页 N≥1。,
"VENDOR-AF1-003","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","按单号筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe);列表至少 1 条且单号非空","1. 从首行读取 `${sampleOrderNo}` 取关键字 VENDOR-AF1-003,基础设置 · 厂商管理,授权变更初审 · 筛选与列表,按单号筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe);列表至少 1 条且单号非空,"1. 从首行读取 `${sampleOrderNo}` 取关键字
2. 单号填入关键字并「查 询」 2. 单号填入关键字并「查 询」
3. 断言结果行「单号」包含关键字","单号列与条件一致。","" 3. 断言结果行「单号」包含关键字",单号列与条件一致。,
"VENDOR-AF1-004","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","按进院供应商筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe);列表至少 1 条","1. 按样本填写或选择「进院供应商」并查询 VENDOR-AF1-004,基础设置 · 厂商管理,授权变更初审 · 筛选与列表,按进院供应商筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe);列表至少 1 条,"1. 按样本填写或选择「进院供应商」并查询
2. 断言结果列与条件匹配","筛选条件生效。","" 2. 断言结果列与条件匹配",筛选条件生效。,
"VENDOR-AF1-005","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe)","1. 填写筛选项后点击「重 置」 VENDOR-AF1-005,基础设置 · 厂商管理,授权变更初审 · 筛选与列表,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe),"1. 填写筛选项后点击「重 置」
2. 断言文本条件清空、列表按默认规则刷新","重置成功。","" 2. 断言文本条件清空、列表按默认规则刷新",重置成功。,
"VENDOR-AF1-006","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe)","1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 VENDOR-AF1-006,基础设置 · 厂商管理,授权变更初审 · 筛选与列表,无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe),"1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
2. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 2. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"VENDOR-AF1-007","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe)","1. 断言表头含 进院供应商名称、单号、状态、制单时间、制单人、变更类型、原供应商、预转供应商、操作 VENDOR-AF1-007,基础设置 · 厂商管理,授权变更初审 · 详情,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe);存在含「详情」的行,"1. 点击行内「详 情」
2. 断言存在「详情」操作","核心列与详情入口可见。",""
"VENDOR-AF1-008","基础设置 · 厂商管理","授权变更初审 · 详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe);存在含「详情」的行","1. 点击行内「详 情」
2. 断言详情层可见且含单号片段 2. 断言详情层可见且含单号片段
3. 返回/关闭,不提交审批","详情只读可返回;列表状态不变。","" 3. 返回/关闭,不提交审批",详情只读可返回;列表状态不变。,
"VENDOR-AF1-009","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","制单日期起止同一天","低","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe)","1. 制单日期起止选同一天并查询 VENDOR-AF1-008,基础设置 · 厂商管理,授权变更初审 · 筛选与列表,制单日期起止同一天,低,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe),"1. 制单日期起止选同一天并查询
2. 断言仅返回该日单据或空态明确","同日区间行为明确。","" 2. 断言仅返回该日单据或空态明确",同日区间行为明确。,
"VENDOR-AF1-010","基础设置 · 厂商管理","授权变更初审 · 详情","与终审单据衔接不串单","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe)","1. 记录本页某单号后切换到对应终审菜单 VENDOR-AF1-009,基础设置 · 厂商管理,授权变更初审 · 详情,与终审单据衔接不串单,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更初审页(/spd/basic/mfrs/paltform/mfrsName/authAudit,无 iframe),"1. 记录本页某单号后切换到对应终审菜单
2. 断言同业务单据状态流转合理、不串到非本业务菜单","初审/终审衔接正确。","" 2. 断言同业务单据状态流转合理、不串到非本业务菜单",初审/终审衔接正确。,
"VENDOR-AF1-011","基础设置 · 厂商管理","授权变更初审 · 筛选与列表","多条件组合查询(制单日期等9项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载 VENDOR-AF1-010,基础设置 · 厂商管理,授权变更初审 · 筛选与列表,多条件组合查询(制单日期等9项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 「制单日期」日期区间选择当天 2. 「制单日期」日期区间选择当天
3. 「单号」填写关键字 3. 「单号」填写关键字
4. 「销售商」下拉选择任一可选项 4. 「销售商」下拉选择任一可选项
...@@ -33,4 +31,4 @@ ...@@ -33,4 +31,4 @@
9. 「医院ID」填写关键字 9. 「医院ID」填写关键字
10. 「医院名称」填写关键字 10. 「医院名称」填写关键字
11. 点击「查询」 11. 点击「查询」
12. 检查列表返回结果","多条件同时生效:制单日期、单号、销售商、预转供应商、状态、变更类型、原供应商、医院ID、医院名称 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 12. 检查列表返回结果",多条件同时生效:制单日期、单号、销售商、预转供应商、状态、变更类型、原供应商、医院ID、医院名称 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"VENDOR-AF2-001","基础设置 · 厂商管理","授权变更终审 · 页面进入","菜单进入授权变更终审页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe)","1. 按菜单「基础设置 → 厂商管理 → 授权变更终审」进入 VENDOR-AF2-001,基础设置 · 厂商管理,授权变更终审 · 页面进入,菜单进入授权变更终审页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe),"1. 按菜单「基础设置 → 厂商管理 → 授权变更终审」进入
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/authAuditFinal` 2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/authAuditFinal`
3. 断言可见「查 询」「重 置」及制单日期筛选","进入授权变更终审页;不误入其它变更审批菜单。","" 3. 断言可见「查 询」「重 置」及制单日期筛选",进入授权变更终审页;不误入其它变更审批菜单。,
"VENDOR-AF2-002","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe)","1. 点击「查 询」并等待列表稳定 VENDOR-AF2-002,基础设置 · 厂商管理,授权变更终审 · 筛选与列表,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行或空态明确","查询无报错;有数据时分页 N≥1。","" 2. 断言出现数据行或空态明确",查询无报错;有数据时分页 N≥1。,
"VENDOR-AF2-003","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","按单号筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe);列表至少 1 条且单号非空","1. 从首行读取 `${sampleOrderNo}` 取关键字 VENDOR-AF2-003,基础设置 · 厂商管理,授权变更终审 · 筛选与列表,按单号筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe);列表至少 1 条且单号非空,"1. 从首行读取 `${sampleOrderNo}` 取关键字
2. 单号填入关键字并「查 询」 2. 单号填入关键字并「查 询」
3. 断言结果行「单号」包含关键字","单号列与条件一致。","" 3. 断言结果行「单号」包含关键字",单号列与条件一致。,
"VENDOR-AF2-004","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","按进院供应商筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe);列表至少 1 条","1. 按样本填写或选择「进院供应商」并查询 VENDOR-AF2-004,基础设置 · 厂商管理,授权变更终审 · 筛选与列表,按进院供应商筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe);列表至少 1 条,"1. 按样本填写或选择「进院供应商」并查询
2. 断言结果列与条件匹配","筛选条件生效。","" 2. 断言结果列与条件匹配",筛选条件生效。,
"VENDOR-AF2-005","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe)","1. 填写筛选项后点击「重 置」 VENDOR-AF2-005,基础设置 · 厂商管理,授权变更终审 · 筛选与列表,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe),"1. 填写筛选项后点击「重 置」
2. 断言文本条件清空、列表按默认规则刷新","重置成功。","" 2. 断言文本条件清空、列表按默认规则刷新",重置成功。,
"VENDOR-AF2-006","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe)","1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 VENDOR-AF2-006,基础设置 · 厂商管理,授权变更终审 · 筛选与列表,无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe),"1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
2. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 2. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"VENDOR-AF2-007","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe)","1. 断言表头含 进院供应商名称、单号、状态、制单时间、制单人、变更类型、原供应商、预转供应商、操作 VENDOR-AF2-007,基础设置 · 厂商管理,授权变更终审 · 详情,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe);存在含「详情」的行,"1. 点击行内「详 情」
2. 断言存在「详情」操作","核心列与详情入口可见。",""
"VENDOR-AF2-008","基础设置 · 厂商管理","授权变更终审 · 详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe);存在含「详情」的行","1. 点击行内「详 情」
2. 断言详情层可见且含单号片段 2. 断言详情层可见且含单号片段
3. 返回/关闭,不提交审批","详情只读可返回;列表状态不变。","" 3. 返回/关闭,不提交审批",详情只读可返回;列表状态不变。,
"VENDOR-AF2-009","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","制单日期起止同一天","低","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe)","1. 制单日期起止选同一天并查询 VENDOR-AF2-008,基础设置 · 厂商管理,授权变更终审 · 筛选与列表,制单日期起止同一天,低,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe),"1. 制单日期起止选同一天并查询
2. 断言仅返回该日单据或空态明确","同日区间行为明确。","" 2. 断言仅返回该日单据或空态明确",同日区间行为明确。,
"VENDOR-AF2-010","基础设置 · 厂商管理","授权变更终审 · 详情","与初审单据衔接不串单","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe)","1. 记录本页某单号后切换到对应初审菜单 VENDOR-AF2-009,基础设置 · 厂商管理,授权变更终审 · 详情,与初审单据衔接不串单,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入授权变更终审页(/spd/basic/mfrs/paltform/mfrsName/authAuditFinal,无 iframe),"1. 记录本页某单号后切换到对应初审菜单
2. 断言同业务单据状态流转合理、不串到非本业务菜单","初审/终审衔接正确。","" 2. 断言同业务单据状态流转合理、不串到非本业务菜单",初审/终审衔接正确。,
"VENDOR-AF2-011","基础设置 · 厂商管理","授权变更终审 · 筛选与列表","多条件组合查询(制单日期等7项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载 VENDOR-AF2-010,基础设置 · 厂商管理,授权变更终审 · 筛选与列表,多条件组合查询(制单日期等7项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 「制单日期」日期区间选择当天 2. 「制单日期」日期区间选择当天
3. 「单号」填写关键字 3. 「单号」填写关键字
4. 「销售商」下拉选择任一可选项 4. 「销售商」下拉选择任一可选项
...@@ -31,4 +29,4 @@ ...@@ -31,4 +29,4 @@
7. 「变更类型」下拉选择任一可选项 7. 「变更类型」下拉选择任一可选项
8. 「原供应商」填写关键字 8. 「原供应商」填写关键字
9. 点击「查询」 9. 点击「查询」
10. 检查列表返回结果","多条件同时生效:制单日期、单号、销售商、预转供应商、状态、变更类型、原供应商 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 10. 检查列表返回结果",多条件同时生效:制单日期、单号、销售商、预转供应商、状态、变更类型、原供应商 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"VENDOR-CF1-001","基础设置 · 厂商管理","注册证变更初审 · 页面进入","菜单进入注册证变更初审页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe)","1. 按菜单「基础设置 → 厂商管理 → 注册证变更初审」进入 VENDOR-CF1-001,基础设置 · 厂商管理,注册证变更初审 · 页面进入,菜单进入注册证变更初审页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe),"1. 按菜单「基础设置 → 厂商管理 → 注册证变更初审」进入
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/regCertAudit` 2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/regCertAudit`
3. 断言可见「查 询」「重 置」及制单日期筛选","进入注册证变更初审页;不误入其它变更审批菜单。","" 3. 断言可见「查 询」「重 置」及制单日期筛选",进入注册证变更初审页;不误入其它变更审批菜单。,
"VENDOR-CF1-002","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe)","1. 点击「查 询」并等待列表稳定 VENDOR-CF1-002,基础设置 · 厂商管理,注册证变更初审 · 筛选与列表,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行或空态明确","查询无报错;有数据时分页 N≥1。","" 2. 断言出现数据行或空态明确",查询无报错;有数据时分页 N≥1。,
"VENDOR-CF1-003","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","按单号筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe);列表至少 1 条且单号非空","1. 从首行读取 `${sampleOrderNo}` 取关键字 VENDOR-CF1-003,基础设置 · 厂商管理,注册证变更初审 · 筛选与列表,按单号筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe);列表至少 1 条且单号非空,"1. 从首行读取 `${sampleOrderNo}` 取关键字
2. 单号填入关键字并「查 询」 2. 单号填入关键字并「查 询」
3. 断言结果行「单号」包含关键字","单号列与条件一致。","" 3. 断言结果行「单号」包含关键字",单号列与条件一致。,
"VENDOR-CF1-004","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","按注册证号(新)筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe);列表至少 1 条","1. 按样本填写或选择「注册证号(新)」并查询 VENDOR-CF1-004,基础设置 · 厂商管理,注册证变更初审 · 筛选与列表,按注册证号(新)筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe);列表至少 1 条,"1. 按样本填写或选择「注册证号(新)」并查询
2. 断言结果列与条件匹配","筛选条件生效。","" 2. 断言结果列与条件匹配",筛选条件生效。,
"VENDOR-CF1-005","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe)","1. 填写筛选项后点击「重 置」 VENDOR-CF1-005,基础设置 · 厂商管理,注册证变更初审 · 筛选与列表,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe),"1. 填写筛选项后点击「重 置」
2. 断言文本条件清空、列表按默认规则刷新","重置成功。","" 2. 断言文本条件清空、列表按默认规则刷新",重置成功。,
"VENDOR-CF1-006","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe)","1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 VENDOR-CF1-006,基础设置 · 厂商管理,注册证变更初审 · 筛选与列表,无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe),"1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
2. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 2. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"VENDOR-CF1-007","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe)","1. 断言表头含 进院供应商名称、单号、状态、制单时间、制单人、变更类型、注册证号(新)、操作 VENDOR-CF1-007,基础设置 · 厂商管理,注册证变更初审 · 详情,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe);存在含「详情」的行,"1. 点击行内「详 情」
2. 断言存在「详情」操作","核心列与详情入口可见。",""
"VENDOR-CF1-008","基础设置 · 厂商管理","注册证变更初审 · 详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe);存在含「详情」的行","1. 点击行内「详 情」
2. 断言详情层可见且含单号片段 2. 断言详情层可见且含单号片段
3. 返回/关闭,不提交审批","详情只读可返回;列表状态不变。","" 3. 返回/关闭,不提交审批",详情只读可返回;列表状态不变。,
"VENDOR-CF1-009","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","制单日期起止同一天","低","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe)","1. 制单日期起止选同一天并查询 VENDOR-CF1-008,基础设置 · 厂商管理,注册证变更初审 · 筛选与列表,制单日期起止同一天,低,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe),"1. 制单日期起止选同一天并查询
2. 断言仅返回该日单据或空态明确","同日区间行为明确。","" 2. 断言仅返回该日单据或空态明确",同日区间行为明确。,
"VENDOR-CF1-010","基础设置 · 厂商管理","注册证变更初审 · 详情","与终审单据衔接不串单","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe)","1. 记录本页某单号后切换到对应终审菜单 VENDOR-CF1-009,基础设置 · 厂商管理,注册证变更初审 · 详情,与终审单据衔接不串单,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更初审页(/spd/basic/mfrs/paltform/mfrsName/regCertAudit,无 iframe),"1. 记录本页某单号后切换到对应终审菜单
2. 断言同业务单据状态流转合理、不串到非本业务菜单","初审/终审衔接正确。","" 2. 断言同业务单据状态流转合理、不串到非本业务菜单",初审/终审衔接正确。,
"VENDOR-CF1-011","基础设置 · 厂商管理","注册证变更初审 · 筛选与列表","多条件组合查询(制单日期等6项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载 VENDOR-CF1-010,基础设置 · 厂商管理,注册证变更初审 · 筛选与列表,多条件组合查询(制单日期等6项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 「制单日期」日期区间选择当天 2. 「制单日期」日期区间选择当天
3. 「单号」填写关键字 3. 「单号」填写关键字
4. 「变更类型」下拉选择任一可选项 4. 「变更类型」下拉选择任一可选项
...@@ -30,4 +28,4 @@ ...@@ -30,4 +28,4 @@
6. 「状态」下拉选择任一可选项 6. 「状态」下拉选择任一可选项
7. 「变更情况具体说明」填写关键字 7. 「变更情况具体说明」填写关键字
8. 点击「查询」 8. 点击「查询」
9. 检查列表返回结果","多条件同时生效:制单日期、单号、变更类型、注册证号(新)、状态、变更情况具体说明 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 9. 检查列表返回结果",多条件同时生效:制单日期、单号、变更类型、注册证号(新)、状态、变更情况具体说明 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"VENDOR-CF2-001","基础设置 · 厂商管理","注册证变更终审 · 页面进入","菜单进入注册证变更终审页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe)","1. 按菜单「基础设置 → 厂商管理 → 注册证变更终审」进入 VENDOR-CF2-001,基础设置 · 厂商管理,注册证变更终审 · 页面进入,菜单进入注册证变更终审页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe),"1. 按菜单「基础设置 → 厂商管理 → 注册证变更终审」进入
2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal` 2. 断言 URL 含 `/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal`
3. 断言可见「查 询」「重 置」及制单日期筛选","进入注册证变更终审页;不误入其它变更审批菜单。","" 3. 断言可见「查 询」「重 置」及制单日期筛选",进入注册证变更终审页;不误入其它变更审批菜单。,
"VENDOR-CF2-002","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe)","1. 点击「查 询」并等待列表稳定 VENDOR-CF2-002,基础设置 · 厂商管理,注册证变更终审 · 筛选与列表,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe),"1. 点击「查 询」并等待列表稳定
2. 断言出现数据行或空态明确","查询无报错;有数据时分页 N≥1。","" 2. 断言出现数据行或空态明确",查询无报错;有数据时分页 N≥1。,
"VENDOR-CF2-003","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","按单号筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe);列表至少 1 条且单号非空","1. 从首行读取 `${sampleOrderNo}` 取关键字 VENDOR-CF2-003,基础设置 · 厂商管理,注册证变更终审 · 筛选与列表,按单号筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe);列表至少 1 条且单号非空,"1. 从首行读取 `${sampleOrderNo}` 取关键字
2. 单号填入关键字并「查 询」 2. 单号填入关键字并「查 询」
3. 断言结果行「单号」包含关键字","单号列与条件一致。","" 3. 断言结果行「单号」包含关键字",单号列与条件一致。,
"VENDOR-CF2-004","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","按注册证号(新)筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe);列表至少 1 条","1. 按样本填写或选择「注册证号(新)」并查询 VENDOR-CF2-004,基础设置 · 厂商管理,注册证变更终审 · 筛选与列表,按注册证号(新)筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe);列表至少 1 条,"1. 按样本填写或选择「注册证号(新)」并查询
2. 断言结果列与条件匹配","筛选条件生效。","" 2. 断言结果列与条件匹配",筛选条件生效。,
"VENDOR-CF2-005","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","重置恢复默认","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe)","1. 填写筛选项后点击「重 置」 VENDOR-CF2-005,基础设置 · 厂商管理,注册证变更终审 · 筛选与列表,重置恢复默认,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe),"1. 填写筛选项后点击「重 置」
2. 断言文本条件清空、列表按默认规则刷新","重置成功。","" 2. 断言文本条件清空、列表按默认规则刷新",重置成功。,
"VENDOR-CF2-006","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe)","1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询 VENDOR-CF2-006,基础设置 · 厂商管理,注册证变更终审 · 筛选与列表,无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe),"1. 单号填入 `__NOT_EXIST_ORDER__99999` 并查询
2. 断言空态且分页总数为 0","无匹配时不报错;总数为 0。","" 2. 断言空态且分页总数为 0",无匹配时不报错;总数为 0。,
"VENDOR-CF2-007","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe)","1. 断言表头含 进院供应商名称、单号、状态、制单时间、制单人、变更类型、注册证号(新)、操作 VENDOR-CF2-007,基础设置 · 厂商管理,注册证变更终审 · 详情,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe);存在含「详情」的行,"1. 点击行内「详 情」
2. 断言存在「详情」操作","核心列与详情入口可见。",""
"VENDOR-CF2-008","基础设置 · 厂商管理","注册证变更终审 · 详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe);存在含「详情」的行","1. 点击行内「详 情」
2. 断言详情层可见且含单号片段 2. 断言详情层可见且含单号片段
3. 返回/关闭,不提交审批","详情只读可返回;列表状态不变。","" 3. 返回/关闭,不提交审批",详情只读可返回;列表状态不变。,
"VENDOR-CF2-009","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","制单日期起止同一天","低","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe)","1. 制单日期起止选同一天并查询 VENDOR-CF2-008,基础设置 · 厂商管理,注册证变更终审 · 筛选与列表,制单日期起止同一天,低,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe),"1. 制单日期起止选同一天并查询
2. 断言仅返回该日单据或空态明确","同日区间行为明确。","" 2. 断言仅返回该日单据或空态明确",同日区间行为明确。,
"VENDOR-CF2-010","基础设置 · 厂商管理","注册证变更终审 · 详情","与初审单据衔接不串单","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe)","1. 记录本页某单号后切换到对应初审菜单 VENDOR-CF2-009,基础设置 · 厂商管理,注册证变更终审 · 详情,与初审单据衔接不串单,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入注册证变更终审页(/spd/basic/mfrs/paltform/mfrsName/regCertAuditFinal,无 iframe),"1. 记录本页某单号后切换到对应初审菜单
2. 断言同业务单据状态流转合理、不串到非本业务菜单","初审/终审衔接正确。","" 2. 断言同业务单据状态流转合理、不串到非本业务菜单",初审/终审衔接正确。,
"VENDOR-CF2-011","基础设置 · 厂商管理","注册证变更终审 · 筛选与列表","多条件组合查询(制单日期等5项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载 VENDOR-CF2-010,基础设置 · 厂商管理,注册证变更终审 · 筛选与列表,多条件组合查询(制单日期等5项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 「制单日期」日期区间选择当天 2. 「制单日期」日期区间选择当天
3. 「单号」填写关键字 3. 「单号」填写关键字
4. 「变更类型」下拉选择任一可选项 4. 「变更类型」下拉选择任一可选项
5. 「注册证号(新)」填写关键字 5. 「注册证号(新)」填写关键字
6. 「状态」下拉选择任一可选项 6. 「状态」下拉选择任一可选项
7. 点击「查询」 7. 点击「查询」
8. 检查列表返回结果","多条件同时生效:制单日期、单号、变更类型、注册证号(新)、状态 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 8. 检查列表返回结果",多条件同时生效:制单日期、单号、变更类型、注册证号(新)、状态 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
"用例编号","功能模块","功能测试点","用例标题","优先级","前置条件","测试步骤","预期结果","实际结果" 用例编号,功能模块,功能测试点,用例标题,优先级,前置条件,测试步骤,预期结果,实际结果
"VENDOR-EVI-001","基础设置 · 厂商管理","评价指标维护 · 页面进入","菜单进入评价指标维护页","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe)","1. 按菜单进入评价指标维护 VENDOR-EVI-001,基础设置 · 厂商管理,评价指标维护 · 页面进入,菜单进入评价指标维护页,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe),"1. 按菜单进入评价指标维护
2. 断言 URL 含 `indicators` 2. 断言 URL 含 `indicators`
3. 断言可见「指标分类」与查询","进入评价指标维护页。","" 3. 断言可见「指标分类」与查询",进入评价指标维护页。,
"VENDOR-EVI-002","基础设置 · 厂商管理","评价指标维护 · 树与列表","默认查询列表有数据或空态明确","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe)","1. 点击查询 VENDOR-EVI-002,基础设置 · 厂商管理,评价指标维护 · 树与列表,默认查询列表有数据或空态明确,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe),"1. 点击查询
2. 断言右表有数据或空态","查询无报错。","" 2. 断言右表有数据或空态",查询无报错。,
"VENDOR-EVI-003","基础设置 · 厂商管理","评价指标维护 · 树与列表","点击左侧分类树","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe)","1. 点击左侧首个分类节点 VENDOR-EVI-003,基础设置 · 厂商管理,评价指标维护 · 树与列表,点击左侧分类树,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe),"1. 点击左侧首个分类节点
2. 断言右侧列表刷新","分类切换成功。","" 2. 断言右侧列表刷新",分类切换成功。,
"VENDOR-EVI-004","基础设置 · 厂商管理","评价指标维护 · 树与列表","按指标编码筛选","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe);右表有数据","1. 取样本指标编码/编号筛选并查询 VENDOR-EVI-004,基础设置 · 厂商管理,评价指标维护 · 树与列表,按指标编码筛选,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe);右表有数据,"1. 取样本指标编码/编号筛选并查询
2. 断言编码列匹配","指标编码匹配。","" 2. 断言编码列匹配",指标编码匹配。,
"VENDOR-EVI-005","基础设置 · 厂商管理","评价指标维护 · 树与列表","无匹配空态(mock反例)","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe)","1. 指标编码填 mock 后查询 VENDOR-EVI-005,基础设置 · 厂商管理,评价指标维护 · 树与列表,无匹配空态(mock反例),中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe),"1. 指标编码填 mock 后查询
2. 断言空态","无匹配不报错。","" 2. 断言空态",无匹配不报错。,
"VENDOR-EVI-006","基础设置 · 厂商管理","评价指标维护 · 树与列表","列表核心列完整","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe)","1. 断言表头含评价类型、指标编码或指标编号、指标名称、状态、操作","核心列可见。","" VENDOR-EVI-006,基础设置 · 厂商管理,评价指标维护 · 树与列表,列表核心列完整,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe),1. 断言表头含评价类型、指标编码或指标编号、指标名称、状态、操作,核心列可见。,
"VENDOR-EVI-007","基础设置 · 厂商管理","评价指标维护 · 详情","打开详情后返回","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe);存在详情操作行","1. 点击行内详情 VENDOR-EVI-007,基础设置 · 厂商管理,评价指标维护 · 详情,打开详情后返回,高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe);存在详情操作行,"1. 点击行内详情
2. 断言详情层可见 2. 断言详情层可见
3. 返回不保存","详情只读可返回。","" 3. 返回不保存",详情只读可返回。,
"VENDOR-EVI-008","基础设置 · 厂商管理","评价指标维护 · 树与列表","分类下无指标空态","低","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe)","1. 选择无指标的分类(若有) VENDOR-EVI-008,基础设置 · 厂商管理,评价指标维护 · 树与列表,启用指标可供方案使用,中,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe),"1. 确认状态为启用的指标
2. 断言右表空态明确","空分类下列表空态正确。","" 2. 在评价方案维护中核对其可选(只读核对或抽样)",启用指标与方案引用衔接正确。,
"VENDOR-EVI-009","基础设置 · 厂商管理","评价指标维护 · 树与列表","启用指标可供方案使用","中","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 → 厂商管理」权限;已进入评价指标维护页(/spd/basic/mfrs/paltform/mfrsName/indicators,无 iframe)","1. 确认状态为启用的指标 VENDOR-EVI-009,基础设置 · 厂商管理,评价指标维护 · 树与列表,多条件组合查询(指标编码等2项),高,测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开,"1. 进入页面并等待列表加载
2. 在评价方案维护中核对其可选(只读核对或抽样)","启用指标与方案引用衔接正确。",""
"VENDOR-EVI-010","基础设置 · 厂商管理","评价指标维护 · 树与列表","多条件组合查询(指标编码等2项)","高","测试环境可访问;已通过 auth.setup 写入 storageState 登录;具备「基础设置 · 厂商管理」权限;已进入厂商管理对应功能页;筛选区已展开","1. 进入页面并等待列表加载
2. 「指标编码」填写关键字 2. 「指标编码」填写关键字
3. 「指标名称」填写关键字 3. 「指标名称」填写关键字
4. 点击「查询」 4. 点击「查询」
5. 检查列表返回结果","多条件同时生效:指标编码、指标名称 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系","待执行" 5. 检查列表返回结果",多条件同时生效:指标编码、指标名称 均成功录入/选中;点击查询后请求携带全部条件(页面无报错提示),列表按条件刷新并呈现匹配数据或明确空态,条件之间为「且」关系,待执行
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