西藏巴青项目

草场使用记录测试用例.md 15KB

草场使用记录 — 测试用例

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

通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录;库中已有有效草场biz_grasslanddel_flag=0,如总面积 100 亩)与养殖主体biz_pasturedel_flag=0)。放牧方式1 轮牧、2 自由放牧、3 季节性放牧。

合法 Body 示例grasslandId/pastureId 为有效主键;usageAreaMu=50useStartDate=2025-06-01useEndDate=2025-06-03 → 服务端 actualUseDays=3grazingHeadCount=100grazingMethod=1

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


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-CCSYJL-UT-001 参数校验 使用面积 单元测试 JUnit5 >0 且 ≤草场总面积 草场 area_mu=100 usageAreaMu 为 50、0、101、null 50 通过;0/101/null 失败
ZCZX-CCSYJL-UT-002 参数校验 使用日期区间 单元测试 JUnit5 §2.5 开始晚于结束;缺一端;同日合法 颠倒/缺一端失败;06-0106-01 通过
ZCZX-CCSYJL-UT-003 天数计算 实际使用天数 单元测试 JUnit5 含起止日 resolveActualUseDays(06-01,06-01)→1;(06-01,06-03)→3 与技术方案 §3.4 一致
ZCZX-CCSYJL-UT-004 参数校验 放牧数量 单元测试 JUnit5 ≥1 整数 0、负数、1、100 0/负失败;正整数通过
ZCZX-CCSYJL-UT-005 参数校验 放牧方式枚举 单元测试 JUnit5 1~3 值为 1/3 通过;0、4、null 失败 与技术方案 §2.2 一致
ZCZX-CCSYJL-UT-006 参数校验 主数据 id 单元测试 JUnit5 非空 grasslandId/pastureId 为 null 失败
ZCZX-CCSYJL-UT-007 列表查询 创建日期区间 单元测试 JUnit5 预约日期筛选 validateDateRangeForList12-01>06-01;单端;合法区间 颠倒失败;合法通过
ZCZX-CCSYJL-UT-008 参数校验 全量保存(Mock 主数据) 单元测试 JUnit5 validateRowForSave Mock 草场/主体有效 合法 BizGrasslandUsageRecord 通过;actualUseDays 已写入
ZCZX-CCSYJL-UT-009 参数校验 主数据已删除 单元测试 JUnit5 §5.1 Mock 草场 del_flag=2 validateRowForSave 失败;提示主数据失效类
ZCZX-CCSYJL-UT-010 Service 新增落库 单元测试 JUnit5+Mockito 正常登记 Mock 主数据+Mapper insert(record) del_flag=0actual_use_days 为计算值
ZCZX-CCSYJL-UT-011 Service 忽略客户端天数 单元测试 JUnit5+Mockito §3.3.1 入参 actualUseDays=99 insert 日期 06-01~06-03 落库 actual_use_days=3 非 99
ZCZX-CCSYJL-UT-012 Service 修改全字段 单元测试 JUnit5+Mockito §5.3 已存在 id update 换草场/主体/面积/日期/放牧信息 成功;重算天数
ZCZX-CCSYJL-UT-013 Service 修改不存在 单元测试 JUnit5+Mockito 异常 selectById null update ServiceException
ZCZX-CCSYJL-UT-014 Service 逻辑删除 单元测试 JUnit5+Mockito §5.4 Mock Mapper remove([id], updateBy) logicDeletedel_flag=2
ZCZX-CCSYJL-UT-015 Service 列表日期非法 单元测试 JUnit5+Mockito §3.1.1 selectListstartDate>endDate 抛异常;不调 Mapper
ZCZX-CCSYJL-UT-016 Mapper JOIN 与删除过滤 单元测试 JUnit5 技术方案 §3.5 检查 BizGrasslandUsageRecordMapper.xml biz_grassland/biz_pasture JOIN;del_flag='0'create_time desc

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-CCSYJL-API-001 列表 默认分页排序 接口测试 Postman/curl §5.2 已登录;有多条 GET /dataModel/grasslandUsage/list rows≤20;createTime 新在前;含 grasslandName
ZCZX-CCSYJL-API-002 列表 关键字-草场名称 接口测试 Postman 名称模糊 已登录 keyword= 草场名称片段 命中关联草场名含片段的记录
ZCZX-CCSYJL-API-003 列表 预约日期-创建日区间 接口测试 Postman 创建日期 有已知 create_time 记录 startDate+endDate 闭区间 均在区间内
ZCZX-CCSYJL-API-004 列表 组合查询 接口测试 Postman 多条件 已登录 keyword+startDate+endDate 同时满足
ZCZX-CCSYJL-API-005 列表 创建日期区间非法 接口测试 Postman 校验 已登录 startDate=2025-12-01&endDate=2025-01-01 失败;msg 可区分
ZCZX-CCSYJL-API-006 列表 不含已删除 接口测试 Postman 逻辑删除 已知 id 已删 GET list 列表无该 id
ZCZX-CCSYJL-API-007 新增 合法全字段 接口测试 Postman §5.1 有效草场/主体 id POST Body 合法 成功;详情 actualUseDays 正确
ZCZX-CCSYJL-API-008 新增 同日使用 接口测试 Postman §2.5 已登录 useStartDate=useEndDate=2025-06-01 成功;actualUseDays=1
ZCZX-CCSYJL-API-009 新增 三种放牧方式 接口测试 Postman §2.2 已登录 分别 grazingMethod 1/2/3 各 POST 一条 均成功
ZCZX-CCSYJL-API-010 新增 忽略客户端天数 接口测试 Postman §3.3.1 已登录 Body 传 actualUseDays=999 且日期 3 天跨度 成功;详情天数为 3 非 999
ZCZX-CCSYJL-API-011 新增 使用面积超限 接口测试 Postman ≤草场总面积 草场 100 亩 usageAreaMu=101 失败
ZCZX-CCSYJL-API-012 新增 使用日期颠倒 接口测试 Postman 日期 已登录 useStartDate>useEndDate 失败
ZCZX-CCSYJL-API-013 新增 主数据无效 接口测试 Postman 关联 草场或主体 id 不存在/已删 POST 失败
ZCZX-CCSYJL-API-014 新增 放牧数量非法 接口测试 Postman ≥1 已登录 grazingHeadCount=0 失败
ZCZX-CCSYJL-API-015 新增 放牧方式非法 接口测试 Postman 1~3 已登录 grazingMethod=9 失败
ZCZX-CCSYJL-API-016 新增 缺必填关联 id 接口测试 Postman 必填 已登录 grasslandIdpastureId 失败
ZCZX-CCSYJL-API-017 详情 有效 id 接口测试 Postman §5.5 已登录 GET /dataModel/grasslandUsage/{id} 含名称、面积、主体、日期、天数、放牧信息、审计字段
ZCZX-CCSYJL-API-018 详情 无效/已删 id 接口测试 Postman 异常 已登录 不存在或已删 id data 空或业务失败
ZCZX-CCSYJL-API-019 修改 合法修改 接口测试 Postman §5.3 有记录 PUT 改面积、日期、放牧数量 成功;天数随日期更新
ZCZX-CCSYJL-API-020 修改 更换草场重校面积 接口测试 Postman §5.3 原草场 100 亩 PUT 换 50 亩草场且 usageAreaMu=60 失败
ZCZX-CCSYJL-API-021 修改 校验失败 接口测试 Postman 全量校验 有记录 PUT grazingHeadCount=0 失败;库不变
ZCZX-CCSYJL-API-022 删除 单条逻辑删除 接口测试 Postman §5.4 已登录 DELETE /dataModel/grasslandUsage/{id} 成功;列表不可见
ZCZX-CCSYJL-API-023 删除 批量删除 接口测试 Postman 批量 已登录 DELETE id1,id2 均不可查
ZCZX-CCSYJL-API-024 端到端 CRUD 串联 接口测试 Postman §4 主数据齐备 POSTlistGET/{id}PUTDELETE 每步成功
ZCZX-CCSYJL-API-025 主数据 草场下拉复用 接口测试 Postman §3 主数据 已登录 GET /dataModel/grassland/list?keyword= 返回有效草场供选择
ZCZX-CCSYJL-API-026 主数据 主体下拉复用 接口测试 Postman §3 主数据 已登录 GET /dataModel/pasture/list?keyword= 返回有效主体供选择
ZCZX-CCSYJL-API-027 鉴权 未登录 接口测试 curl 安全 无 Token GET .../grasslandUsage/list 401 或统一未登录
ZCZX-CCSYJL-API-028 权限 无写权限 接口测试 Postman 越权 仅 list 权限 POST .../grasslandUsage 无权限失败
ZCZX-CCSYJL-API-029 响应 失败可读 接口测试 Postman §7 已登录 触发面积超限、日期颠倒、主数据无效 codemsg 可区分

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-CCSYJL-UI-001 列表 默认分页排序 UI 测试 Playwright+Chrome §5.2 已登录;数据>20 进入「草场使用记录」菜单 默认每页 20;创建时间新在前
ZCZX-CCSYJL-UI-002 列表 关键字-草场名称 UI 测试 Playwright+Chrome 名称模糊 有样本 输入草场名称→搜索 表格含匹配行
ZCZX-CCSYJL-UI-003 列表 预约日期筛选 UI 测试 Playwright+Chrome 创建日期 有样本 选预约日期起止→搜索 结果在区间内
ZCZX-CCSYJL-UI-004 列表 组合与重置 UI 测试 Playwright+Chrome 恢复条件 已筛选 搜索→「重置」 条件清空;默认列表
ZCZX-CCSYJL-UI-005 列表 展示列完整 UI 测试 Playwright+Chrome §5.2 有数据 查看表头与首行 含草场名、面积、主体、起止日、天数、数量、方式、操作
ZCZX-CCSYJL-UI-006 新增 合法登记 UI 测试 Playwright+Chrome §5.1 主数据存在 新增→下拉选草场/主体→填面积与日期等→确定 成功;列表新行
ZCZX-CCSYJL-UI-007 新增 下拉模糊搜索 UI 测试 Playwright+Chrome §2.1 已登录 草场/主体下拉输入关键字 选项列表过滤正确
ZCZX-CCSYJL-UI-008 新增 使用天数自动计算 UI 测试 Playwright+Chrome §2.5 新增弹窗 改开始/结束日期 「实际使用天数」只读且随日期更新(如 3 天)
ZCZX-CCSYJL-UI-009 新增 使用面积上限提示 UI 测试 Playwright+Chrome ≤总面积 选 100 亩草场 使用面积填 101→确定 校验失败并提示不超过总面积
ZCZX-CCSYJL-UI-010 新增 日期颠倒 UI 测试 Playwright+Chrome 日期约束 已登录 结束早于开始→确定 校验失败
ZCZX-CCSYJL-UI-011 新增 未选草场或主体 UI 测试 Playwright+Chrome 必选 已登录 不选下拉直接确定 校验失败
ZCZX-CCSYJL-UI-012 新增 放牧数量/方式非法 UI 测试 Playwright+Chrome 必填枚举 已登录 数量 0 或未选放牧方式→确定 校验失败
ZCZX-CCSYJL-UI-013 详情 字段完整 UI 测试 Playwright+Chrome §5.5 任意记录 点「查看」 各业务字段与列表一致
ZCZX-CCSYJL-UI-014 修改 编辑成功 UI 测试 Playwright+Chrome §5.3 有记录 编辑→改使用面积与放牧数量→保存 列表/详情已更新
ZCZX-CCSYJL-UI-015 修改 换草场重算面积校验 UI 测试 Playwright+Chrome §5.3 有记录 换更小面积草场且使用面积仍过大→保存 校验失败
ZCZX-CCSYJL-UI-016 修改 改期重算天数 UI 测试 Playwright+Chrome 天数联动 有记录 编辑延长结束日期→保存 详情 actualUseDays 增大
ZCZX-CCSYJL-UI-017 删除 确认删除 UI 测试 Playwright+Chrome §5.4 有记录 删除→确认 列表无该行
ZCZX-CCSYJL-UI-018 删除 取消删除 UI 测试 Playwright+Chrome 确认框 有记录 删除→取消 记录仍在
ZCZX-CCSYJL-UI-019 删除 批量删除 UI 测试 Playwright+Chrome 批量 勾选多条 批量删除→确认 选中行消失
ZCZX-CCSYJL-UI-020 端到端 CRUD 串联 UI 集成 Playwright+Chrome §4 主数据齐备 新增→搜索→查看→编辑→删除 全流程无报错
ZCZX-CCSYJL-UI-021 权限 只读账号 UI 测试 Playwright+Chrome §6 无 add/edit/remove 进入模块 无新增/编辑/删除或拒绝
ZCZX-CCSYJL-UI-022 导出 导出(可选) UI 测试 Playwright+Chrome 技术方案 §4 有 export 权限 点「导出」 下载 Excel 或成功提示

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

  • 安装:npm i -D @playwright/testnpx playwright install chromium;本机 Chrome:npx playwright install chrome
  • playwright.config.tsuse: { channel: 'chrome', headless: false, locale: 'zh-CN', baseURL: 'http://localhost:80' }storageState 复用登录态。
  • 路由:page.goto('/dataModel/grasslandUsage')(以菜单 component 为准)。
  • 下拉:page.locator('.el-select').filter({ hasText: '草场名称' }).click()page.getByText('示范草场');支持 fill 关键字过滤。
  • 日期:预约日期、使用起止用日期组件或 fill('YYYY-MM-DD')
  • 只读天数:断言 实际使用天数 输入框 disabled 或文案随日期变化。

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-003、008、010~012、016 API-001~004、007~010、017、019、024~026 UI-001~008、013~016、020
异常流程 UT-001~002、006~007、009、013、015 API-005、011~016、018、021、027~029 UI-009~012、018
业务约束 UT-001、004~006、011 API-010~015、020 UI-008~012、015~016
主数据关联 UT-006、009 API-013、025~026 UI-007、011
天数计算 UT-003、011 API-008、010 UI-008、016
逻辑删除 UT-014、016 API-006、022~023 UI-017~019
权限/导出 API-027~028 UI-021~022

功能需求追溯(自查)

需求章节 要点 主要对应用例
§5.1 新增 主数据、面积上限、日期、放牧 UT-001~011;API-007~016;UI-006~012
§2.5 天数 自动计算、忽略客户端 UT-003、011;API-008、010;UI-008、016
§5.2 列表 草场名关键字、创建日区间 API-001~006;UI-001~005
§5.3 修改 全字段、换草场校验 UT-012;API-019~021;UI-014~016
§5.4 删除 逻辑删除 UT-014;API-022~023;UI-017~019
§5.5 详情 全字段 API-017;UI-013
§6~§7 权限、错误提示 API-027~029;UI-021

修订记录

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