西藏巴青项目

科技项目与活动管理测试用例.md 11KB

科技项目与活动 — 测试用例

依据:科技项目与活动功能需求.md科技项目与活动技术方案.md
接口 Base Path(示例)/innovationPlatform/techProjectGuide;鉴权与若依一致。
项目类型编码002001 高新技术 / 002002 农业科技 / 002003 社会发展 / 002004 基础研究(parentCode=002)。发布状态0 未发布 / 1 已发布。

通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录。

界面(UI)测试:借助 Playwright 启动 Chromium(可配置 channel: 'chrome' 使用本机 Google Chrome)。


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
KJXM-UT-001 参数校验 项目类型编码 单元测试 JUnit5 有效资讯编码 Mock 子集含 002001~002004 空、999999 失败;002002 通过 与技术方案 §2.3 一致
KJXM-UT-002 参数校验 项目名称长度 单元测试 JUnit5 §5.1 空串、21 字、20 字 空/21 失败;20 通过
KJXM-UT-003 参数校验 项目简介长度 单元测试 JUnit5 1~50 字 0 字、51 字、50 字 0/51 失败;50 通过
KJXM-UT-004 参数校验 申报日期关系 单元测试 JUnit5 §2.3 开始 2026-06-01、截止 2026-05-01 / 同天 前者失败;同天通过
KJXM-UT-005 参数校验 手机号格式 单元测试 JUnit5 §5.1 1380013800012345、空 合法通过;非法/空失败
KJXM-UT-006 参数校验 负责人长度 单元测试 JUnit5 1~10 字 0 字、11 字、10 字 0/11 失败;10 通过
KJXM-UT-007 附件校验 后缀白名单 单元测试 JUnit5 §3.2 a.pdfa.exe pdf 通过;exe 失败
KJXM-UT-008 封面校验 图片后缀 单元测试 JUnit5 §3.2 a.pnga.pdf png 通过;pdf 失败
KJXM-UT-009 状态机 已发布禁止修改 单元测试 JUnit5+Mockito §3.3 记录 publish_status=1 调用 update 抛业务异常或返回失败
KJXM-UT-010 状态机 已发布禁止删除 单元测试 JUnit5+Mockito §5.4 已发布记录 deleteById 失败
KJXM-UT-011 状态机 未发布禁止下架 单元测试 JUnit5+Mockito §5.6 publish_status=0 offline 失败
KJXM-UT-012 状态机 发布写状态与时间 单元测试 JUnit5+Mockito §5.6 未发布且字段合法 publish(id) publish_status=1publish_time 非空
KJXM-UT-013 状态机 下架保留发布日期 单元测试 JUnit5+Mockito 功能需求 §5.6 已发布有 publish_time offline(id) publish_status=0publish_time 不变
KJXM-UT-014 Service 新增 saveAndPublish 单元测试 JUnit5+Mockito §3.3.1 合法 Body insertsaveAndPublish=true 落库已发布
KJXM-UT-015 Service 替换附件删旧文件 单元测试 JUnit5+Mockito §3.4 未发布有旧 path update 换新 path 调用文件删除旧 path
KJXM-UT-016 Service 列表筛选 SQL 单元测试 JUnit5 §3.1.1 projectName=科技projectType=002002 XML 含 likeproject_type=002002

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
KJXM-API-001 列表 默认分页排序 接口测试 Postman/curl §5.2 已登录;含已发布/未发布 GET .../list rows≤20;已发布按 publishTime 靠前
KJXM-API-002 列表 项目名称模糊 接口测试 Postman 模糊 含「示范」与「试点」 projectName=示范 仅名称含「示范」
KJXM-API-003 列表 项目类型精确 接口测试 Postman 精确 含类型编码 projectType=002002 仅农业科技
KJXM-API-004 列表 发布状态筛选 接口测试 Postman §5.2 含 0、1 各一条 publishStatus=0 仅未发布
KJXM-API-005 新增 仅保存未发布 接口测试 Postman §5.1 已登录 POST 合法全必填;不传 saveAndPublish 成功;publishStatus=0publishTime
KJXM-API-006 新增 保存并发布 接口测试 Postman §5.1 已登录 POST + saveAndPublish=true 成功;publishStatus=1publishTime 有值
KJXM-API-007 新增 必填缺失 接口测试 Postman 必填 已登录 projectName 失败;msg 可读
KJXM-API-008 新增 截止早于开始 接口测试 Postman §2.3 已登录 开始 2026-07-01、截止 2026-06-01 失败
KJXM-API-009 新增 非法项目类型 接口测试 Postman §3.2 已登录 projectType=999999 失败;提示含「项目类型无效」
KJXM-API-010 新增 手机号非法 接口测试 Postman §5.1 已登录 contactPhone=123 失败
KJXM-API-011 详情 有效 id 接口测试 Postman §5.5 已登录 GET .../{id} 含全部业务字段与 publishStatus
KJXM-API-012 详情 无效 id 接口测试 Postman 异常 已登录 不存在 id 404 或业务失败
KJXM-API-013 修改 未发布合法修改 接口测试 Postman §5.3 未发布记录 PUTprojectIntro 成功;详情已更新
KJXM-API-014 修改 已发布拒绝修改 接口测试 Postman §6 已发布记录 PUT 改任意字段 失败;数据不变
KJXM-API-015 删除 未发布删除 接口测试 Postman §5.4 未发布 id DELETE .../{id} 成功;详情不可查
KJXM-API-016 删除 已发布拒绝删除 接口测试 Postman §5.4 已发布 id DELETE 失败
KJXM-API-017 发布 未发布发布 接口测试 Postman §5.6 未发布 id POST .../publish/{id} publishStatus=1
KJXM-API-018 发布 已发布重复发布 接口测试 Postman 异常 已发布 id 再次 publish 失败
KJXM-API-019 下架 已发布下架 接口测试 Postman §5.6 已发布 id POST .../offline/{id} publishStatus=0
KJXM-API-020 下架 未发布拒绝下架 接口测试 Postman 异常 未发布 id offline 失败
KJXM-API-021 端到端 下架后改再发布 接口测试 Postman §4 已发布记录 offline→PUT 改名称→publish 各步成功;最终已发布且名称已改
KJXM-API-022 端到端 新增至删除 接口测试 Postman 正常流 已登录 新增(未发布)→列表→详情→改→删 各步成功;删除后列表无
KJXM-API-023 鉴权 未登录 接口测试 curl 安全 无 Token GET .../list 401 或统一未登录
KJXM-API-024 权限 无写权限 接口测试 Postman 越权 仅 list 权限 POST/PUT/DELETE/publish 无权限失败
KJXM-API-025 响应 失败可区分 接口测试 Postman §8 已登录 触发 API-008、014、016 codemsg 可区分场景

三、界面测试用例(UI)

测试工具Playwright + Chromiumchannel: 'chrome' 使用本机 Google Chrome)。

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
KJXM-UI-001 列表 页面加载与列 UI 测试 Playwright+Chrome §5.2 已登录;有数据 进入「科技项目与活动」 显示项目名称、类型、申报起止、发布日期、操作列
KJXM-UI-002 列表 项目名称筛选 UI 测试 Playwright+Chrome 模糊 多条数据 输入项目名称关键字→搜索 仅匹配行
KJXM-UI-003 列表 项目类型筛选 UI 测试 Playwright+Chrome 精确 多类型数据 选「农业科技」→搜索 仅类型为农业科技
KJXM-UI-004 列表 重置筛选 UI 测试 Playwright+Chrome 恢复 已筛选 点「重置」 条件清空;显示全部
KJXM-UI-005 列表 未发布操作列 UI 测试 Playwright+Chrome §6 未发布行 查看操作列 查看、发布、编辑、删除可见(按权限)
KJXM-UI-006 列表 已发布操作列 UI 测试 Playwright+Chrome §6 已发布行 查看操作列 仅查看、下架;无编辑删除
KJXM-UI-007 新增 仅保存未发布 UI 测试 Playwright+Chrome §5.1 已登录 新增→填全必填→点「确定/保存」 成功;列表发布状态未发布
KJXM-UI-008 新增 保存并发布 UI 测试 Playwright+Chrome §5.1 已登录 新增→填全必填→点「发布」 成功;列表已发布且有发布日期
KJXM-UI-009 新增 必填校验 UI 测试 Playwright+Chrome 必填 已登录 漏填项目名称→提交 前端校验失败,未提交
KJXM-UI-010 新增 申报截止早于开始 UI 测试 Playwright+Chrome §2.3 已登录 开始晚于截止→保存 提示截止日期不能早于开始日期
KJXM-UI-011 新增 手机号校验 UI 测试 Playwright+Chrome §5.1 已登录 联系方式填非法→保存 提示手机号错误
KJXM-UI-012 编辑 未发布修改成功 UI 测试 Playwright+Chrome §5.3 未发布行 编辑→改项目简介→保存 列表/详情已更新
KJXM-UI-013 编辑 已发布无编辑入口 UI 测试 Playwright+Chrome §5.3 已发布行 查看操作列与详情 无「编辑」或点击无效
KJXM-UI-014 发布 列表发布 UI 测试 Playwright+Chrome §5.6 未发布行 点「发布」→确认 状态变已发布;发布日期显示
KJXM-UI-015 下架 列表下架 UI 测试 Playwright+Chrome §5.6 已发布行 点「下架」→确认 变未发布;可出现编辑删除
KJXM-UI-016 删除 未发布删除确认 UI 测试 Playwright+Chrome §5.4 未发布行 删除→确认 行消失
KJXM-UI-017 删除 取消删除 UI 测试 Playwright+Chrome 确认框 未发布行 删除→取消 行仍在
KJXM-UI-018 删除 已发布不可删 UI 测试 Playwright+Chrome §5.4 已发布行 尝试删除 无删除按钮或提示须先下架
KJXM-UI-019 详情 查看只读 UI 测试 Playwright+Chrome §5.5 任意行 点「查看」 弹窗/页展示全部字段只读
KJXM-UI-020 上传 附件格式限制 UI 测试 Playwright+Chrome §5.1 新增表单 上传非允许后缀 前端拒绝或提示格式错误
KJXM-UI-021 端到端 下架后编辑再发布 UI 测试 Playwright+Chrome §4 已发布行 下架→编辑改名称→保存→发布 全流程成功;列表显示新名称且已发布

四、用例与需求章节对照

需求章节 覆盖用例(示例)
§5.1 新增与校验 UT-001~008;API-005~010;UI-007~011、020
§5.2 列表筛选 UT-016;API-001~004;UI-001~004
§5.3 修改约束 UT-009;API-013~014;UI-012~013
§5.4 删除 UT-010;API-015~016;UI-016~018
§5.5 详情 API-011~012;UI-019
§5.6 发布/下架 UT-011~014;API-006、017~021;UI-008、014~015、021
§6 操作矩阵 UI-005~006、013、018
§8 异常提示 API-007~010、025;UI-009~011