依据:
大屏共同富裕功能需求.md(v1.1)、大屏共同富裕技术方案.md
接口 Base Path:/bigScreen/commonProsperity(含context-path、网关前缀须补齐)。鉴权:若依 Cookie /AuthorizationToken;权限bigScreen:commonProsperity:query。
成果口径:achievement.monthly 为所选年 Y 的 1~最大统计月;缺月 0;无数据为空列表。总览 summary 为该年台账最大统计月的单月值。与管理端年度报告一致。分类明细见 GET /projectTypeDetails。
UI 测试:Playwright + Chromium,playwright.config 中 use: { channel: 'chrome' } 调用本机 Google Chrome。
| 代号 | 说明 |
|---|---|
| ACH-Y | 统计年 Y 成果台账;如 ACH-2026 仅 2026-03、2026-08 各 1 条 |
| ACH-EMPTY | 某年无任何成果记录 |
| PRJ-PUB-A | 已发布;实施 2025-01-01~2027-12-31;project_type=1;含 2 张运营图 |
| PRJ-PUB-B | 已发布;实施 2026-06-01~2026-12-31;project_type=2;含视频+封面 |
| PRJ-UNPUB | publish_status=0 |
| PRJ-OFF | 曾发布已下架 publish_status=0 且 offline_time 非空 |
| PRJ-OUT | 已发布;实施 2024-01-01~2024-12-31(与 2026 无交集) |
| PRJ-EDGE | 已发布;实施 2026-01-01~2026-12-31(边界交集) |
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| DP-GTFY-UT-001 | 参数校验 | statYear 合法 | 单元测试 | JUnit5 | 复用年度报告校验 | 无 | 传入 2026、2000 |
解析通过 |
| DP-GTFY-UT-002 | 参数校验 | statYear 非法 | 单元测试 | JUnit5 | 异常入参 | 无 | 空、26、abcd、1899 |
抛 ServiceException 或等价失败 |
| DP-GTFY-UT-003 | 成果聚合 | 复用 Aggregator 缺月 | 单元测试 | JUnit5 | 禁止大屏另写汇总 | Mock 2026 仅 3 月 1 条 | 调 getAnnualReport(2026) |
monthly 长度 12;非 3 月指标为 0 |
| DP-GTFY-UT-004 | 成果聚合 | hasData 与 summary | 单元测试 | JUnit5 | §7.1 | Mock 空列表 | buildReport(2026,[]) |
hasData=false;summary=null |
| DP-GTFY-UT-005 | 成果聚合 | 比率十二月均 | 单元测试 | JUnit5 | §2.4 | 仅 6 月使用率 0.6 | calcSummary |
digitalPlatformUsageRate=0.05 |
| DP-GTFY-UT-006 | 项目筛选 | 实施周期交集 | 单元测试 | JUnit5 | §2.6 | 造 PRJ-PUB-A、PRJ-OUT、PRJ-EDGE | filterByStatYear(2026) |
含 A、EDGE;不含 OUT |
| DP-GTFY-UT-007 | 项目筛选 | 未发布/已下架排除 | 单元测试 | JUnit5 | §2.6、DP-10 | 含 PRJ-UNPUB、PRJ-OFF、PRJ-PUB-B | filterByStatYear(2026) |
仅 PUB-B(及满足交集的其他已发布项) |
| DP-GTFY-UT-008 | 项目筛选 | 边界日期含端点 | 单元测试 | JUnit5 | 交集边界 | impl_start=2026-12-31、impl_end=2026-01-01 各 1 条已发布 |
filterByStatYear(2026) |
两条均纳入 |
| DP-GTFY-UT-009 | 分类统计 | 占比计算 | 单元测试 | JUnit5 | §5.10 | 类型 1×2、2×1、3×0 | buildTypeStats |
count 2/1/0;ratio 2/3、1/3、0;合计 ratio≈1 |
| DP-GTFY-UT-010 | 分类统计 | 无项目固定三类 | 单元测试 | JUnit5 | §7.2 | 筛选结果空 | buildTypeStats |
返回 3 项;count=0、ratio=0 |
| DP-GTFY-UT-011 | 可选年份 | 并集含当前年 | 单元测试 | JUnit5 | 年份下拉 | Mock 成果年 [2025]、项目年 [];当前年 2026 |
buildAvailableYears |
列表含 2026(当前年) |
| DP-GTFY-UT-012 | 列表排序 | 发布时间倒序 | 单元测试 | JUnit5 | §5.11.1 | 同类型两条 publish_time 不同 |
sortProjects |
时间晚者在前 |
| DP-GTFY-UT-013 | 运营图 | 按 sort_order 组装 | 单元测试 | JUnit5 | §3.2.1 | 项目 2 张图 order 2、1 | attachOpImages |
输出顺序 1→2 |
| DP-GTFY-UT-014 | 看板编排 | 仅项目无成果 | 单元测试 | JUnit5 | §7.2 | Mock 成果空、项目 1 条 | loadDashboard(2026) |
achievement.hasData=false;hasProjectData=true |
| DP-GTFY-UT-015 | 看板编排 | 仅成果无项目 | 单元测试 | JUnit5 | §7.2 | Mock 成果 1 条、项目空 | loadDashboard(2026) |
achievement.hasData=true;hasProjectData=false |
| DP-GTFY-UT-016 | 约束 | 无写接口 | 单元测试 | JUnit5 | 只读 | 检查 ScreenService/Controller | 无 insert/update/delete | 仅查询与组装 |
| DP-GTFY-UT-017 | 约束 | 无详情接口定义 | 单元测试 | JUnit5 | §5.11 | 检查 Controller 映射 | 无 GET .../{id} 大屏详情 |
仅 dashboard、projects |
| DP-GTFY-UT-018 | 缓存 | forceRefresh 跳过 | 单元测试 | JUnit5 | 技术§2.3 可选 | 启用缓存且未过期 | loadDashboard(2026,true) |
不走缓存、重新查库 |
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| DP-GTFY-API-001 | 看板 | 满年成果+项目 | 接口测试 | Postman/curl | 正常流程 DP-01 | 已登录;2026 成果多月+已发布项目 | GET .../dashboard?statYear=2026 |
code 成功;achievement.hasData=true;monthly.length=12;hasProjectData=true;projectTypeStats 有数据 |
| DP-GTFY-API-002 | 看板 | 所选年缺月补零 | 接口测试 | Postman | DP-03 | ACH-2026 仅 3、8 月 | statYear=2026 |
monthly 含 statYear、month;缺槽 0;切年窗口随 Y |
| DP-GTFY-API-003 | 看板 | 全年无成果 | 接口测试 | Postman | DP-04 | 2026 ACH-EMPTY | GET dashboard |
achievement.hasData=false;summary=null;monthly 仍 12 条全 0 |
| DP-GTFY-API-004 | 看板 | 仅项目无成果 | 接口测试 | Postman | §7.2 | 2026 无成果;有 PRJ-PUB-B | GET dashboard |
achievement.hasData=false;hasProjectData=true;饼图 stats 正常 |
| DP-GTFY-API-005 | 看板 | 仅成果无项目 | 接口测试 | Postman | §7.2 | 2026 有 ACH;无符合交集项目 | GET dashboard |
achievement.hasData=true;hasProjectData=false;projectTypeStats 三项 count=0 |
| DP-GTFY-API-006 | 看板 | 比率汇总 | 接口测试 | Postman | DP-05 | 2026 全年使用率均为 0.12 | GET dashboard |
summary.digitalPlatformUsageRate≈0.12;brandPremiumRate 同理 |
| DP-GTFY-API-007 | 看板 | 缺 statYear | 接口测试 | Postman | 异常 | 已登录 | 不传 statYear |
失败;msg 提示参数错误 |
| DP-GTFY-API-008 | 看板 | 非法 statYear | 接口测试 | Postman | 异常 | 已登录 | statYear=abc |
失败 |
| DP-GTFY-API-009 | 看板 | statYear 回显 | 接口测试 | Postman | 一致性 | 已登录 | statYear=2025 |
data.statYear=2025 |
| DP-GTFY-API-010 | 看板 | availableYears | 接口测试 | Postman | §5.1 | 成果 2025、项目交集 2026 | GET dashboard |
availableYears 含 2025、2026、当前年;降序 |
| DP-GTFY-API-011 | 看板 | 分类占比之和 | 接口测试 | Postman | DP-07 | 2026 三类项目共 6 个 | GET dashboard |
sum(ratio)≈1(±0.01);count 之和=6 |
| DP-GTFY-API-012 | 看板 | 未发布项目不计 | 接口测试 | Postman | 业务约束 | 仅 PRJ-UNPUB | GET dashboard 2026 |
hasProjectData=false 或 stats 全 0 |
| DP-GTFY-API-013 | 看板 | 下架项目不计 | 接口测试 | Postman | DP-10 | PRJ-OFF 曾计入、下架后 | 下架→GET dashboard |
分类与列表均不含该项目 |
| DP-GTFY-API-014 | 看板 | 实施年无交集排除 | 接口测试 | Postman | §2.6 | PRJ-OUT + PRJ-PUB-B | statYear=2026 |
stats/list 不含 OUT;含 B |
| DP-GTFY-API-015 | 看板 | forceRefresh | 接口测试 | Postman | 技术§3.1 | 已启用缓存 | ?statYear=2026&forceRefresh=true |
成功;数据与库一致 |
| DP-GTFY-API-016 | 项目列表 | 分页首页 | 接口测试 | Postman | DP-08 | 2026 ≥9 条已发布项目 | GET .../projects?statYear=2026&pageNum=1&pageSize=8 |
rows.length≤8;total 正确 |
| DP-GTFY-API-017 | 项目列表 | 第二页 | 接口测试 | Postman | 分页 | 同上 | pageNum=2 |
与第一页 id 不重复;顺序 publish_time 倒序 |
| DP-GTFY-API-018 | 项目列表 | 行内字段齐全 | 接口测试 | Postman | §5.11.2 | PRJ-PUB-B 有图视封面 | GET projects |
每条含 type、name、intro、content、周期、cover、video、operationImages |
| DP-GTFY-API-019 | 项目列表 | 全年无项目 | 接口测试 | Postman | §5.11.3 | 2026 无符合项目 | GET projects |
rows=[];total=0 |
| DP-GTFY-API-020 | 项目列表 | 缺 statYear | 接口测试 | Postman | 异常 | 已登录 | 不传 statYear |
失败 |
| DP-GTFY-API-021 | 范围 | 无大屏详情接口 | 接口测试 | Postman | §5.11 | 已登录 | GET .../bigScreen/commonProsperity/1 或 /project/1 |
404/405 |
| DP-GTFY-API-022 | 范围 | 无维护接口 | 接口测试 | Postman | §3.2 | 已登录 | POST/PUT/DELETE .../bigScreen/commonProsperity/** |
404/405 或无权限 |
| DP-GTFY-API-023 | 联动 | 成果补录后 | 接口测试 | Postman | DP-09 | 2026 原 ACH-EMPTY | 后台新增 2026-01 成果→GET dashboard |
hasData=true;1 月有值 |
| DP-GTFY-API-024 | 联动 | 项目发布后 | 接口测试 | Postman | DP-09 | 2026 原无项目 | 后台发布 PRJ-EDGE→GET dashboard+projects |
hasProjectData=true;列表可见 |
| DP-GTFY-API-025 | 鉴权 | 未登录 | 接口测试 | curl | 安全 | 无 Token | GET dashboard |
401 或统一未登录 |
| DP-GTFY-API-026 | 权限 | 无大屏权限 | 接口测试 | Postman | 越权 | 无 bigScreen:commonProsperity:query |
GET dashboard、GET projects |
403 或无权限 |
| DP-GTFY-API-027 | 权限 | 有大屏无成果写 | 接口测试 | Postman | 只读 | 仅有 query | GET 成功;POST /commonProsperity/achievement 失败 |
大屏可读;台账不可写 |
| DP-GTFY-API-028 | 一致性 | 切年数据不串 | 接口测试 | Postman | DP-02 | 2025、2026 各不同数据 | 分别 statYear=2025/2026 |
各年 monthly/项目集合互不混入 |
| DP-GTFY-API-029 | 分类明细 | 指定年有数据 | 接口测试 | Postman | DP-11、§5.10.1 | 2026 已发布三类项目 | GET .../projectTypeDetails?statYear=2026 |
code 成功;rows[0].statYear=2026;totalCount=三类之和;各类型 count 正确 |
| DP-GTFY-API-030 | 分类明细 | 缺年份默认当前年 | 接口测试 | Postman | §5.10.1 | 已登录;当前年有/无项目均可 | 不传 statYear |
成功;按当前自然年聚合(无数据则 rows=[]) |
| DP-GTFY-API-031 | 分类明细 | 未发布不计 | 接口测试 | Postman | 业务约束 | 该年仅未发布项目 | GET projectTypeDetails |
rows=[] 或无该年行 |
| DP-GTFY-API-032 | 分类明细 | 分页参数 | 接口测试 | Postman | 分页 | 已登录 | pageNum=1&pageSize=10 |
成功;total/rows 符合 PageHelper |
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| DP-GTFY-UI-001 | 页面 | 默认当前年加载 | UI 测试 | Playwright+Chrome | DP-01 | 已登录;有权限;有当前年数据 | 打开「大屏共同富裕」路由 | 年份为当前自然年;自动请求 dashboard+projects;各区块同年 |
| DP-GTFY-UI-002 | 筛选 | 切换年份整页刷新 | UI 测试 | Playwright+Chrome | DP-02、§5.1 | 含 2025、2026 数据 | 年份 2025→2026 | 成果区、图表、饼图、列表同步更新;无 2025 残留数字 |
| DP-GTFY-UI-003 | 筛选 | 加载中防残留 | UI 测试 | Playwright+Chrome | §7.3 | 已登录 | 切换年份(可 route.fulfill 延迟) |
出现 Loading/遮罩;完成后仅新年数据 |
| DP-GTFY-UI-004 | 空态 | 全年无成果 | UI 测试 | Playwright+Chrome | DP-04、§7.1 | 选 ACH-EMPTY 年 | 进入或切换该年 | 总览/图表/数字赋能空态文案;不显示全 0 汇总卡片 |
| DP-GTFY-UI-005 | 空态 | 无项目有成果 | UI 测试 | Playwright+Chrome | §7.2 | 2026 有成果无项目 | 打开 2026 | 图表正常;饼图空态;列表「本年度暂无共富项目」 |
| DP-GTFY-UI-006 | 总览 | 指标与单位 | UI 测试 | Playwright+Chrome | §5.2 | 2026 有成果 | 查看共富成果卡片区 | 名称/数值/单位正确(万元、人、个、亩);比率显示 % |
| DP-GTFY-UI-007 | 图表 | 集体经济横向柱所选年 12 月 | UI 测试 | Playwright+Chrome | §5.3、DP-03 | ACH-2026 缺月 | 查看该图+悬停 | 12 刻度仅月份;悬停显 YYYY年M月+万元 |
| DP-GTFY-UI-008 | 图表 | 就业双系列 | UI 测试 | Playwright+Chrome | DP-06、§5.4 | 2026 有数据 | 查看就业带动图 | 两图例/两色系;Tooltip 区分人数与岗位 |
| DP-GTFY-UI-009 | 图表 | 环境治理/文化传承柱图 | UI 测试 | Playwright+Chrome | §5.5、§5.8 | 2026 有数据 | 查看两图 | 12 月;缺月为 0 |
| DP-GTFY-UI-010 | 图表 | 绿化折线 | UI 测试 | Playwright+Chrome | §5.6 | 2026 有数据 | 查看绿化建设 | 12 落点;缺月 0 不断线 |
| DP-GTFY-UI-011 | 图表 | 民族团结堆叠 | UI 测试 | Playwright+Chrome | DP-06、§5.9 | 2026 有数据 | 悬停某月 | 堆叠柱;Tooltip 分别显示融合项目数、活动数 |
| DP-GTFY-UI-012 | 数字赋能 | 三指标展示 | UI 测试 | Playwright+Chrome | §5.7、DP-05 | 2026 有成果 | 查看数字赋能区 | 品牌数(加总)、溢价率/使用率(%);与 API summary 一致 |
| DP-GTFY-UI-013 | 数字赋能 | 无成果空态 | UI 测试 | Playwright+Chrome | §5.7 | ACH-EMPTY 年 | 切换至该年 | 不展示 0% / 0 品牌误导数据 |
| DP-GTFY-UI-014 | 项目分类 | 饼图与图例 | UI 测试 | Playwright+Chrome | §5.10、DP-07 | 三类均有项目 | 查看饼图 | 三类名称与列表标签色一致;占比之和 100% |
| DP-GTFY-UI-015 | 项目分类 | 无项目空态 | UI 测试 | Playwright+Chrome | §7.2 | 2026 无符合项目 | 查看饼图区 | 空态;无单类 100% 假象 |
| DP-GTFY-UI-016 | 项目列表 | 行内信息完整 | UI 测试 | Playwright+Chrome | DP-08、§5.11.2 | PRJ-PUB-B 在列 | 查看列表行 | 类型、名称、简介、内容、周期、封面、视频、运营图可见 |
| DP-GTFY-UI-017 | 项目列表 | 无二级详情页 | UI 测试 | Playwright+Chrome | §5.11 | 列表有「详情」文案(若有) | 点击详情/名称 | 不跳转路由/新 Tab;仅行内展开或浮层 |
| DP-GTFY-UI-018 | 项目列表 | 分页翻页 | UI 测试 | Playwright+Chrome | §5.11.1 | ≥9 条项目;pageSize=8 | 点下一页 | 仅列表区刷新;waitForResponse('**/projects**');成果区不变 |
| DP-GTFY-UI-019 | 只读 | 无维护按钮 | UI 测试 | Playwright+Chrome | §3.2 | 已登录 | 扫描页面 | 无新增/编辑/删除/发布;可有刷新 |
| DP-GTFY-UI-020 | 错误 | 接口失败可重试 | UI 测试 | Playwright+Chrome | §7.3 | Mock dashboard 500 | 进入或切年 | 失败提示;可点重试;不长期半屏旧数据 |
| DP-GTFY-UI-021 | 联动 | 后台发布后刷新 | UI 集成 | Playwright+Chrome | DP-09 | 2026 列表原空 | 后台发布项目→大屏 F5 或重进 | 饼图与列表出现新项目 |
| DP-GTFY-UI-022 | 联动 | 下架后不可见 | UI 集成 | Playwright+Chrome | DP-10 | 列表曾显示某项目 | 后台下架→刷新大屏 | 饼图与列表均移除 |
| DP-GTFY-UI-023 | 权限 | 无菜单不可进 | UI 测试 | Playwright+Chrome | 安全 | 账号无大屏菜单 | 登录查侧栏 | 无「大屏共同富裕」;直链路由 403/无权限页 |
| DP-GTFY-UI-024 | 端到端 | 按年查阅全流程 | UI 集成 | Playwright+Chrome | §4、DP-01~08 | 2026 完整样本 | 登录→进大屏→默认年→改年→悬停图表→翻页 | 十区块数据正确;无控制台报错 |
| DP-GTFY-UI-025 | 刷新 | 手动/定时刷新 | UI 测试 | Playwright+Chrome | §7.4 | 已打开页;后台改成果 | 点击刷新或等待轮播周期 | 数据更新为最新(允许 1~5 分钟延迟配置) |
// playwright.config.ts 片段
use: { channel: 'chrome', headless: false }
// 登录后 storageState
await page.goto('/#/bigScreen/commonProsperity/index'); // 以实际路由为准
// 切年:监听双请求同成败
const [dash, proj] = await Promise.all([
page.waitForResponse('**/bigScreen/commonProsperity/dashboard**'),
page.waitForResponse('**/bigScreen/commonProsperity/projects**'),
yearPicker.selectOption('2026'),
]);
// 空态
await expect(page.getByText(/暂无.*成果|请.*共同富裕成果/)).toBeVisible();
// 图表容器数量(按页面实现调整)
await expect(page.locator('[data-chart]')).toHaveCount(6); // 集体经济/就业/环境/绿化/文化/民族团结
| 类别 | 单元 UT | 接口 API | 界面 UI |
|---|---|---|---|
| 正常流程 | UT-003~005、009、012~015 | API-001~002、006、010~011、016~018、023~024 | UI-001~002、006~012、014、016、018、024 |
| 异常流程 | UT-002、004 | API-003、007~008、019~020、025~026 | UI-004、020、023 |
| 业务约束 | UT-006~010、016~017 | API-004~005、012~014、021~022、028 | UI-004~005、013、015、017、019、022 |
| 追溯 | 要点 | 主要用例 |
|---|---|---|
| DP-01 | 默认当前年 | UI-001;API-001 |
| DP-02 | 切年一致 | API-028;UI-002~003 |
| DP-03 | 所选年缺月=0 | UT-003;API-002;UI-007~011 |
| DP-04 | 无成果空态 | UT-004;API-003;UI-004、013 |
| DP-05 | 比率 % | UT-005;API-006;UI-006、012 |
| DP-06 | 双系列图 | UI-008、011 |
| DP-07 | 项目分类 | UT-009~010;API-011~014;UI-014~015 |
| DP-08 | 列表分页行内 | API-016~018;UI-016~018 |
| DP-09 | 后台变更刷新 | API-023~024;UI-021、025 |
| DP-10 | 下架不展示 | UT-007;API-013;UI-022 |
| DP-11 | 分类明细下钻 | API-029~032 |
| §2.6 | 项目交集 | UT-006、008;API-014 |
| §3.2 | 只读 | UT-016~017;API-021~022;UI-019 |
| §5.11 | 无详情页 | UT-017;API-021;UI-017 |
| §7.3 | 加载失败 | UI-003、020 |
| 版本 | 说明 |
|---|---|
| 1.0 | 初版:单元 18、接口 28、UI 25;覆盖 DP-01~10 与正常/异常/约束;Playwright+Chrome;Base /bigScreen/commonProsperity |
| 1.1 | 增补分类情况明细 API-029~032(DP-11);成果口径改为最大月 / 1~最大月 |