西藏巴青项目

草场管理测试用例.md 16KB

草场管理 — 测试用例

依据:草场管理功能需求.md草场管理技术方案.md
接口 Base Path(示例)/dataModel/grassland;若含 context-path 或网关前缀须补齐。鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录。退化等级1 未退化、2 轻度、3 中度、4 重度、5 极重度。利用类型1 禁牧、2 轮牧、3 全年放牧。合法样本(示例):名称「示范草场」、面积 100.5、亩产草量 350、利用率 0.65、禁牧 2025-01-012025-03-31、轮牧小区 4、放牧天数 7、轮牧周期 28、备注可空。

界面(UI)测试Playwright + Chromiumchannel: 'chrome' 使用本机 Google Chrome)。


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-CCGL-UT-001 参数校验 草场名称长度 单元测试 JUnit5 1~10 字 空串、1 字、10 字、11 字 空/11 失败;1~10 通过
ZCZX-CCGL-UT-002 参数校验 备注字数 单元测试 JUnit5 选填≤100 null/空通过;101 字失败 符合功能需求 §5.1
ZCZX-CCGL-UT-003 参数校验 退化等级枚举 单元测试 JUnit5 选填;有值仅 1~5 null 通过;值为 1/5 通过;0、6 失败 与技术方案 §2.2 一致
ZCZX-CCGL-UT-004 参数校验 利用类型枚举 单元测试 JUnit5 选填;有值仅 1~3 null 通过;值为 1/3 通过;0、4 失败 与技术方案 §2.2 一致
ZCZX-CCGL-UT-005 参数校验 面积/亩产/禁牧与草畜平衡面积 单元测试 JUnit5 正数 面积 0、负数;亩产/禁牧/草畜平衡面积 0 面积必填失败;选填有值非法失败;合法正数通过
ZCZX-CCGL-UT-006 参数校验 利用率区间 单元测试 JUnit5 选填 0~1 null 通过;-0.11.1 失败;01 通过 越界失败
ZCZX-CCGL-UT-007 参数校验 禁牧日期区间 单元测试 JUnit5 选填成对 双空通过;开始晚于结束;仅一端;合法区间 颠倒/缺一端失败;start≤end 通过
ZCZX-CCGL-UT-008 参数校验 轮牧三项整数 单元测试 JUnit5 选填 ≥1 null 通过;小区数/放牧天数/周期为 0 失败;正整数通过
ZCZX-CCGL-UT-009 参数校验 全量保存校验 单元测试 JUnit5 validateRowForSave 合法 BizGrassland 仅名称+面积;全字段;利用率非法 最小必填通过;非法失败
ZCZX-CCGL-UT-010 Service 新增落库 单元测试 JUnit5+Mockito 正常登记 合法实体 insert(grassland) del_flag='0';数值与入参一致
ZCZX-CCGL-UT-011 Service 修改全字段 单元测试 JUnit5+Mockito §5.3 Mock 已存在 id update 改名称、面积、退化等级、日期、轮牧参数 更新成功;Mapper update 被调用
ZCZX-CCGL-UT-012 Service 利用类型互改 单元测试 JUnit5+Mockito 1↔2↔3 utilization_type=1 update 改为 23 且指标仍合法 成功(本期不因类型豁免字段)
ZCZX-CCGL-UT-013 Service 修改不存在 单元测试 JUnit5+Mockito 异常 selectById 返回 null update ServiceException;不调用 update
ZCZX-CCGL-UT-014 Service 逻辑删除 单元测试 JUnit5+Mockito §5.4 Mock Mapper remove([id], updateBy) 调用 logicDeletedel_flag='2';非物理 DELETE
ZCZX-CCGL-UT-015 Service 删除空 id 数组 单元测试 JUnit5+Mockito 边界 remove([]) 或全 null 返回 0;不调用 Mapper 删除
ZCZX-CCGL-UT-016 Mapper 列表排序与删除过滤 单元测试 JUnit5 技术方案 §3.4 检查 BizGrasslandMapper.xml create_time descid desc;列表/详情/更新带 del_flag='0'

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-CCGL-API-001 列表 默认分页排序 接口测试 Postman/curl §5.2 已登录;有多条记录 GET /dataModel/grassland/list code=200rows≤20;createTime 新在前
ZCZX-CCGL-API-002 列表 关键字-名称 接口测试 Postman 名称模糊 已登录 keyword= 唯一名称片段 命中含该片段记录
ZCZX-CCGL-API-003 列表 利用类型筛选 接口测试 Postman 精确 有禁牧/轮牧样本 utilizationType=12 返回记录利用类型与条件一致
ZCZX-CCGL-API-004 列表 退化等级筛选 接口测试 Postman 可选筛选项 有多档退化样本 degradationLevel=3 均为中度(与入参一致)
ZCZX-CCGL-API-005 列表 组合查询 接口测试 Postman 多条件 已登录 keyword+utilizationType(+degradationLevel 同时满足
ZCZX-CCGL-API-006 列表 不含已删除 接口测试 Postman 逻辑删除 已知 id 已删 GET list 列表无该 id
ZCZX-CCGL-API-007 列表 分页参数 接口测试 Postman 分页 已登录 pageNum=2&pageSize=10 返回第 2 页;条数≤10
ZCZX-CCGL-API-008 新增 合法全字段 接口测试 Postman §5.1 已登录 POST Body 含备注等全部合法字段 code 成功;GET 详情字段一致
ZCZX-CCGL-API-009 新增 最小必填(仅名称+面积) 接口测试 Postman 其余选填 已登录 POSTgrasslandName+areaMu 成功;其余字段为空
ZCZX-CCGL-API-010 新增 利用类型-禁牧 接口测试 Postman §2.2 已登录 utilizationType=1+合法指标 成功
ZCZX-CCGL-API-011 新增 利用类型-轮牧 接口测试 Postman §2.2 已登录 utilizationType=2+合法轮牧参数 成功
ZCZX-CCGL-API-012 新增 利用类型-全年放牧 接口测试 Postman §2.2 已登录 utilizationType=3 成功
ZCZX-CCGL-API-013 新增 名称非法 接口测试 Postman 1~10 已登录 名称空或 11 字 失败;列表无新记录
ZCZX-CCGL-API-014 新增 枚举非法 接口测试 Postman 枚举 已登录 degradationLevel=0utilizationType=9 失败;msg 可区分
ZCZX-CCGL-API-015 新增 面积/亩产草量非法 接口测试 Postman 正数 已登录 areaMu=0grassYieldPerMu=-1 失败
ZCZX-CCGL-API-016 新增 利用率越界 接口测试 Postman 0~1 已登录 utilizationRate=1.5-0.01 失败
ZCZX-CCGL-API-017 新增 禁牧日期颠倒 接口测试 Postman 日期约束 已登录 grazingBanStartDate>grazingBanEndDate 失败
ZCZX-CCGL-API-018 新增 轮牧参数非法 接口测试 Postman 正整数 已登录 rotationPlotCount=0 失败
ZCZX-CCGL-API-019 新增 备注超长 接口测试 Postman ≤100 已登录 remark 101 字 失败
ZCZX-CCGL-API-020 详情 有效 id 接口测试 Postman §5.5 已登录 GET /dataModel/grassland/{id} 含名称、面积、退化/利用类型、指标、禁牧日期、轮牧参数、审计字段
ZCZX-CCGL-API-021 详情 无效/已删 id 接口测试 Postman 异常 已登录 不存在或已逻辑删除的 id data 为空或业务失败(与实现一致)
ZCZX-CCGL-API-022 修改 合法修改 接口测试 Postman §5.3 有记录 PUT 改名称、面积、负责人相关指标 成功;详情已更新
ZCZX-CCGL-API-023 修改 利用类型变更 接口测试 Postman §5.3 禁牧记录 PUT utilizationType 改为 2 且指标合法 成功
ZCZX-CCGL-API-024 修改 禁牧日期变更 接口测试 Postman 日期 有记录 PUT 调整起止日期且 start≤end 成功
ZCZX-CCGL-API-025 修改 校验失败 接口测试 Postman 全量校验 有记录 PUT 利用率 2 失败;库内数据不变
ZCZX-CCGL-API-026 删除 单条逻辑删除 接口测试 Postman §5.4 已登录 DELETE /dataModel/grassland/{id} 成功;列表/详情不可见
ZCZX-CCGL-API-027 删除 批量删除 接口测试 Postman 批量 已登录 DELETE id1,id2 成功;两条均不可查
ZCZX-CCGL-API-028 端到端 CRUD 串联 接口测试 Postman §4 流程 已登录 POSTGET listGET/{id}PUTDELETE 每步 code 成功
ZCZX-CCGL-API-029 鉴权 未登录 接口测试 curl 安全 无 Token GET .../grassland/list 401 或统一未登录响应
ZCZX-CCGL-API-030 权限 无写权限 接口测试 Postman 越权 list 权限账号 POST /dataModel/grassland 无权限失败(403 或业务码)
ZCZX-CCGL-API-031 响应 失败可读 接口测试 Postman §7 已登录 分别触发名称空、日期颠倒、利用率越界 Body 含 codemsg 且可区分

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-CCGL-UI-001 列表 默认分页排序 UI 测试 Playwright+Chrome §5.2 已登录;数据>20 进入「草场管理」菜单 默认每页 20;创建时间新在前
ZCZX-CCGL-UI-002 列表 关键字查询 UI 测试 Playwright+Chrome 名称模糊 有含关键词记录 输入草场名称→搜索 表格含该行
ZCZX-CCGL-UI-003 列表 利用类型筛选 UI 测试 Playwright+Chrome 精确 多类型均有 选「轮牧」→搜索 利用类型列均为轮牧
ZCZX-CCGL-UI-004 列表 退化等级筛选 UI 测试 Playwright+Chrome 可选 界面有该筛选项 选「重度」→搜索 退化等级列均为重度
ZCZX-CCGL-UI-005 列表 组合与重置 UI 测试 Playwright+Chrome 恢复条件 已多条件筛选 搜索→点「重置」 条件清空;恢复默认列表
ZCZX-CCGL-UI-006 列表 操作列与地图 UI 测试 Playwright+Chrome §5.6 不做 有数据行 查看操作列 有查看/编辑/删除;地图标点或置灰「暂未开放」
ZCZX-CCGL-UI-007 新增 合法全字段 UI 测试 Playwright+Chrome §5.1 已登录 新增→填全部必填+备注→确定 成功提示;列表出现新记录
ZCZX-CCGL-UI-008 新增 最小必填无备注 UI 测试 Playwright+Chrome 备注选填 已登录 仅必填项→确定 成功
ZCZX-CCGL-UI-009 新增 三种利用类型 UI 测试 Playwright+Chrome §2.2 已登录 分别新增禁牧/轮牧/全年放牧各一条 均成功;列表类型正确
ZCZX-CCGL-UI-010 新增 名称空或超长 UI 测试 Playwright+Chrome 1~10 已登录 名称留空或超 10 字→确定 字段校验失败,不提交
ZCZX-CCGL-UI-011 新增 数值非法 UI 测试 Playwright+Chrome 正数/区间 已登录 面积填 0 或利用率填 1.2→确定 校验失败并提示
ZCZX-CCGL-UI-012 新增 禁牧日期非法 UI 测试 Playwright+Chrome 日期约束 已登录 结束日期早于开始日期→确定 校验失败
ZCZX-CCGL-UI-013 新增 枚举未选 UI 测试 Playwright+Chrome 必选 已登录 退化等级或利用类型不选→确定 校验失败
ZCZX-CCGL-UI-014 新增 轮牧参数非法 UI 测试 Playwright+Chrome 正整数 已登录 轮牧小区数量填 0→确定 校验失败
ZCZX-CCGL-UI-015 详情 字段完整 UI 测试 Playwright+Chrome §5.5 任意记录 点「查看」 名称、面积、退化/利用类型、产草指标、禁牧日期、轮牧参数、备注齐全
ZCZX-CCGL-UI-016 修改 编辑成功 UI 测试 Playwright+Chrome §5.3 有记录 编辑→改草场名称与面积→确定 列表/详情已更新
ZCZX-CCGL-UI-017 修改 利用类型与退化变更 UI 测试 Playwright+Chrome 互改 有记录 改利用类型为「全年放牧」、退化等级为「轻度」→保存 列表展示已更新
ZCZX-CCGL-UI-018 修改 禁牧日期变更 UI 测试 Playwright+Chrome 日期 有记录 修改禁牧起止日期→保存 详情日期为新值
ZCZX-CCGL-UI-019 删除 确认删除 UI 测试 Playwright+Chrome §5.4 有记录 删除→确认 列表无该行
ZCZX-CCGL-UI-020 删除 取消删除 UI 测试 Playwright+Chrome 确认框 有记录 删除→取消 记录仍在
ZCZX-CCGL-UI-021 删除 批量删除 UI 测试 Playwright+Chrome 批量 勾选多条 批量删除→确认 选中行均消失
ZCZX-CCGL-UI-022 端到端 CRUD 串联 UI 集成 Playwright+Chrome §4 可新增 新增→搜索→查看→编辑→删除 全流程无报错
ZCZX-CCGL-UI-023 权限 只读账号 UI 测试 Playwright+Chrome §6 无 add/edit/remove 登录进模块 无新增/编辑/删除或点击拒绝
ZCZX-CCGL-UI-024 导出 导出(可选) UI 测试 Playwright+Chrome 技术方案 §4 export 权限 点「导出」 下载 Excel 或成功提示

Playwright 与谷歌浏览器(实施提示)

  • 安装:npm i -D @playwright/testnpx playwright install chromium;本机 Chrome:npx playwright install chrome
  • playwright.config.ts 示例:use: { channel: 'chrome', headless: false, locale: 'zh-CN', baseURL: 'http://localhost:80' }storageState 复用登录态。
  • 路由:page.goto('/dataModel/grassland')(以菜单 component 配置为准)。
  • 日期:禁牧起止使用日期范围组件,page.getByPlaceholder(/开始|结束/) 或项目封装的选择器填写 YYYY-MM-DD
  • 下拉:page.locator('.el-select').filter({ hasText: '退化等级' }) 等选择枚举项。
  • 确认框:page.getByRole('button', { name: /确定|确认/ })

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-009~012、016 API-001~012、020、022~024、028 UI-001~009、015~018、022
异常流程 UT-001~008、013、015 API-013~019、021、025、029~031 UI-010~014、020
业务约束 UT-003~008 API-003~005、014~018 UI-003~004、009、011~014、017~018
逻辑删除 UT-014~015、016 API-006、026~027 UI-019~021
地图(不做) UI-006
权限/导出 API-029~030 UI-023~024

功能需求追溯(自查)

需求章节 要点 主要对应用例
§5.1 新增 字段、数值、日期、轮牧参数、备注 UT-001~009;API-008~019;UI-007~014
§5.2 列表 关键字、利用类型、逻辑删除不可见 API-001~007;UI-001~006
§5.3 修改 全字段、类型/日期变更 UT-011~012;API-022~025;UI-016~018
§5.4 删除 逻辑删除、确认 UT-014~015;API-026~027;UI-019~021
§5.5 详情 全字段 API-020;UI-015
§5.6 地图 本期不做 UI-006
§6~§7 权限、错误提示 API-029~031;UI-023

修订记录

版本 说明
1.0 初版:单元 16、接口 31、UI 24;对齐功能/技术方案;Playwright+Chrome;编号前缀 ZCZX-CCGL