西藏巴青项目

交易市场管理测试用例.md 13KB

交易市场管理 — 测试用例

依据:交易市场管理功能需求.md交易市场管理技术方案.md
接口 Base Path/livestock/tradeMarkets;鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):具备本模块权限的账号已登录(livestock:tradeMarket:list|query|add|edit|remove)。biz_trade_market 宜预置(del_flag=0):

样本 名称 运营状态 要点
M1 巴青县交易市场 正常(1) 有照片;负责人「王五」
M2 那曲集散市场 停业(2) 无照片
M3 测试注销市场 注销(3) 名称模糊/状态筛选用

合法新增 Body 示例marketName=巴青东站detailAddress=西藏那曲市巴青县某某路88号personInCharge=赵六contactPhone=13900139000operateStatus=1;照片先 POST /common/upload 再带 photoFileUrlphotoFilePath

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


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-JYSCGL-UT-001 参数校验 市场名称 单元测试 JUnit5 §3.5 空、11 字、10 字 trim 空/超长失败;合法通过
ZCZX-JYSCGL-UT-002 参数校验 详细地址 单元测试 JUnit5 §3.5 空、201 字、200 字 空/超长失败;200 通过
ZCZX-JYSCGL-UT-003 参数校验 负责人 单元测试 JUnit5 §3.5 空、11 字、10 字 空/超长失败;通过
ZCZX-JYSCGL-UT-004 参数校验 手机号 单元测试 JUnit5 §3.5 10 位、11 位合法、非法 非法失败;合法通过
ZCZX-JYSCGL-UT-005 参数校验 运营状态 单元测试 JUnit5 §2.3 0、4、1/2/3 非法失败;1~3 通过
ZCZX-JYSCGL-UT-006 唯一性 名称重复 单元测试 JUnit5+Mockito §3.5 已有 M1 名 validateUniqueName 失败
ZCZX-JYSCGL-UT-007 参数校验 照片成对 单元测试 JUnit5 §3.4 仅 url 无 path、均空、均填 仅 url 失败;均空/成对通过
ZCZX-JYSCGL-UT-008 Service 新增落库 单元测试 JUnit5+Mockito 正常 Mock Mapper insert 合法行 del_flag=0operate_status=1 默认
ZCZX-JYSCGL-UT-009 Service 逻辑删除 单元测试 JUnit5+Mockito §3.5 Mock remove(id) del_flag=2
ZCZX-JYSCGL-UT-010 Service 删除有关联 单元测试 JUnit5+Mockito §3.5 hasReference=true remove ServiceException
ZCZX-JYSCGL-UT-011 Service 删记录清照片 单元测试 JUnit5+Mockito §3.4 有 photo_path remove 调用文件删除
ZCZX-JYSCGL-UT-012 Mapper 名称模糊 SQL 单元测试 JUnit5 §3.6 检查 XML market_name LIKE CONCAT('%',…,'%')
ZCZX-JYSCGL-UT-013 Mapper 状态精确 SQL 单元测试 JUnit5 §3.6 检查 XML operate_status = #{operateStatus}
ZCZX-JYSCGL-UT-014 Mapper 列表排序 单元测试 JUnit5 §3.1 检查 XML create_time DESC, id DESC

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-JYSCGL-API-001 列表 默认分页排序 接口测试 Postman §3.1 有 M1~M3 GET /list code=200;含 operateStatusName;时间倒序
ZCZX-JYSCGL-API-002 列表 名称模糊 接口测试 Postman §2.6 有 M1 marketName=交易 含 M1
ZCZX-JYSCGL-API-003 列表 状态精确 接口测试 Postman §2.6 有 M2 停业 operateStatus=2 仅含停业行
ZCZX-JYSCGL-API-004 列表 组合筛选 接口测试 Postman §2.6 已登录 marketName=测试+operateStatus=3 同时满足
ZCZX-JYSCGL-API-005 列表 模糊无匹配 接口测试 Postman §2.6 已登录 marketName=不存在xyz rows 为空
ZCZX-JYSCGL-API-006 列表 不含已删除 接口测试 Postman 逻辑删除 id 已删 GET /list 无该 id
ZCZX-JYSCGL-API-007 新增 完整含照片 接口测试 Postman §5.1 已上传图片 POST 合法 Body+照片字段 code=200
ZCZX-JYSCGL-API-008 新增 无照片默认正常 接口测试 Postman §5.1 已登录 POST 无照片字段 成功;operateStatus=1
ZCZX-JYSCGL-API-009 新增 缺必填 接口测试 Postman §5.1.4 已登录 marketName 或手机 失败
ZCZX-JYSCGL-API-010 新增 名称超长 接口测试 Postman §5.1 已登录 marketName 11 字 失败
ZCZX-JYSCGL-API-011 新增 名称重复 接口测试 Postman §5.1.4 已有 M1 名 POST 同名 失败;msg 含「市场名称已存在」
ZCZX-JYSCGL-API-012 新增 手机号非法 接口测试 Postman §2.4 已登录 contactPhone=123 失败
ZCZX-JYSCGL-API-013 新增 状态非法 接口测试 Postman §3.5 已登录 operateStatus=9 失败
ZCZX-JYSCGL-API-014 新增 地址超长 接口测试 Postman §5.1 已登录 detailAddress 201 字 失败
ZCZX-JYSCGL-API-015 详情 有效 id 接口测试 Postman §5.4 有 M1 GET /{id} 含全字段及照片 URL
ZCZX-JYSCGL-API-016 详情 无效/已删 id 接口测试 Postman 异常 已登录 不存在/已删 失败或空 data
ZCZX-JYSCGL-API-017 修改 改地址负责人 接口测试 Postman §5.3 有 M2 PUTdetailAddress 成功
ZCZX-JYSCGL-API-018 修改 改运营状态 接口测试 Postman §5.3 M1 正常 PUT operateStatus=2 详情为停业
ZCZX-JYSCGL-API-019 修改 换照片 接口测试 Postman §3.4 M2 无图 PUT 新 url/path 成功;旧文件已删
ZCZX-JYSCGL-API-020 修改 清除照片 接口测试 Postman §5.3 M1 有图 PUT 照片字段空 成功;详情无图
ZCZX-JYSCGL-API-021 修改 不存在 id 接口测试 Postman 异常 已登录 伪造 id PUT 失败
ZCZX-JYSCGL-API-022 删除 单条逻辑删 接口测试 Postman §5.5 无关联新行 DELETE /{id} 成功;列表无
ZCZX-JYSCGL-API-023 删除 有关联拒绝 接口测试 Postman §5.5 预置有关联 DELETE 失败;msg 含关联提示
ZCZX-JYSCGL-API-024 删除 重复删除 接口测试 Postman 幂等 已删 id 再次 DELETE 失败或不存在
ZCZX-JYSCGL-API-025 端到端 CRUD 串联 接口测试 Postman §4 已登录 POSTlistGETPUTDELETE 每步 code=200
ZCZX-JYSCGL-API-026 鉴权 未登录 接口测试 curl 安全 无 Token GET /list 401 或统一未登录
ZCZX-JYSCGL-API-027 权限 无新增权限 接口测试 Postman §6 仅 list POST 无权限失败
ZCZX-JYSCGL-API-028 权限 无删除权限 接口测试 Postman §6 无 remove DELETE 无权限失败
ZCZX-JYSCGL-API-029 响应 失败可读 接口测试 Postman §8 已登录 触发重复名、手机错、缺地址 msg 可区分

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-JYSCGL-UI-001 列表 默认展示 UI 测试 Playwright+Chrome §5.2.3 已登录;有数据 进入「交易市场管理」 含名称、地址、负责人、电话、状态、操作;地图标点
ZCZX-JYSCGL-UI-002 列表 名称模糊筛选 UI 测试 Playwright+Chrome §2.6 有 M1 市场名称填「交易」→搜索 含 M1
ZCZX-JYSCGL-UI-003 列表 状态筛选 UI 测试 Playwright+Chrome §2.6 有 M2 停业 运营状态选「停业」→搜索 仅停业行
ZCZX-JYSCGL-UI-004 列表 重置 UI 测试 Playwright+Chrome §5.2 已筛选 搜索→重置 条件清空;列表恢复
ZCZX-JYSCGL-UI-005 新增 必填与默认状态 UI 测试 Playwright+Chrome §5.1 有 add 新增→填必填→确定 成功;运营状态默认「正常」
ZCZX-JYSCGL-UI-006 新增 上传照片 UI 测试 Playwright+Chrome §2.3 有合法 jpg≤10M 新增→上传照片→保存 列表/详情可见图
ZCZX-JYSCGL-UI-007 新增 缺必填校验 UI 测试 Playwright+Chrome §5.1.4 新增 留空名称或手机→确定 校验失败;弹窗不关闭
ZCZX-JYSCGL-UI-008 新增 名称超 10 字 UI 测试 Playwright+Chrome §5.1 新增 名称超 10 字 无法输入或保存失败
ZCZX-JYSCGL-UI-009 新增 取消 UI 测试 Playwright+Chrome §5.1.3 新增 填一半→取消 无新行
ZCZX-JYSCGL-UI-010 新增 照片格式/大小 UI 测试 Playwright+Chrome §2.3 新增 选非 jpg/png 或 >10M 文件 即时提示;不上传
ZCZX-JYSCGL-UI-011 详情 只读含照片 UI 测试 Playwright+Chrome §5.4 有 M1 查看 只读;照片可预览;含审计
ZCZX-JYSCGL-UI-012 编辑 改运营状态 UI 测试 Playwright+Chrome §5.3 M1 正常 改「停业」→保存 列表显示停业
ZCZX-JYSCGL-UI-013 编辑 更换照片 UI 测试 Playwright+Chrome §5.3 有图市场 编辑→换图→保存 详情为新图
ZCZX-JYSCGL-UI-014 删除 确认删除 UI 测试 Playwright+Chrome §5.5 无关联行 删除→确认(含市场名) 行消失
ZCZX-JYSCGL-UI-015 删除 取消删除 UI 测试 Playwright+Chrome §5.5 任意行 删除→取消 行仍在
ZCZX-JYSCGL-UI-016 端到端 全流程 UI 集成 Playwright+Chrome §4 权限齐备 新增→名/状态筛选→看→改→删 无报错
ZCZX-JYSCGL-UI-017 权限 只读角色 UI 测试 Playwright+Chrome §6 仅 list/query 进入模块 无新增/编辑/删除
ZCZX-JYSCGL-UI-018 详情 从详情编辑 UI 测试 Playwright+Chrome §5.4 查看 M1 点「编辑」 进入编辑弹窗
ZCZX-JYSCGL-UI-019 列表 地图标点不做 UI 测试 Playwright+Chrome §5.6 有数据行 查看操作列 无「地图标点」或置灰暂未开放
ZCZX-JYSCGL-UI-020 列表 电话脱敏 UI 测试 Playwright+Chrome §5.2.3 有 M1 完整手机 查看列表电话列 按项目规范脱敏(如 138****8000)

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

  • 安装:npm i -D @playwright/testnpx playwright install chrome
  • 配置:use: { channel: 'chrome', locale: 'zh-CN', baseURL: 'http://localhost:80' }storageState 复用登录态。
  • 路由:page.goto('/livestock/tradeMarket')(以菜单 component 为准)。
  • 筛选:page.getByLabel('市场名称').fill('交易')page.getByLabel('运营状态').click() 后选「停业」。
  • 上传:在新增弹窗内 input[type=file],仅 image/jpegimage/png;超 10MB 应被 before-upload 拦截。

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-008 API-007~008、015、017~019、025 UI-005~006、011~013、016
异常流程 UT-001~005 API-009~013、014、016、021、023~024 UI-007~010、014~015
业务约束 UT-006~007 API-002~005、011、018 UI-002~004、008
运营状态 UT-005 API-003、013、018 UI-003、005、012
照片 UT-007、011 API-007~008、019~020 UI-006、010~011、013
逻辑删除 UT-009 API-006、022~024 UI-014
地图不做 UI-001、019
权限/鉴权 API-026~028 UI-017
脱敏/提示 API-029 UI-020

功能需求追溯(自查)

需求章节 要点 主要对应用例
§5.1 新增 字段、照片、默认正常 UT-001~008;API-007~014;UI-005~010
§5.2 列表 名称模糊+状态精确 UT-012~013;API-001~006;UI-001~004、020
§5.3 修改 全字段可改 API-017~021;UI-012~013、018
§5.4 详情 只读 API-015~016;UI-011、018
§5.5 删除 逻辑删、二次确认 UT-009~011;API-022~024;UI-014~015
§2.2 运营状态 三档 UT-005;API-003、013、018;UI-003、005、012
§5.6 地图 本期不做 UI-001、019
§6 权限 按钮级 API-026~028;UI-017
§8 业务提示 可读 msg API-011、029;UI-007、010

修订记录

版本 说明
1.0 初版:单元 14、接口 29、UI 20;覆盖 CRUD、双维筛选、照片、运营状态;无地图标点;Playwright+Chrome;前缀 ZCZX-JYSCGL