西藏巴青项目

市场栏位管理测试用例.md 11KB

市场栏位管理 — 测试用例

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

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

样本 编号 备注 要点
S1 01 A区东侧摊位 有备注
S2 02 (空) 无备注
S3 03 B区临时栏 模糊/修改用

合法新增 Body{"remark":"测试栏位甲"}{}(无备注)。

编号分域:隔离圈位表可同时存在 pen_code=01;本模块 stall_code=01 应允许并存(独立序列表)。

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


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-SCLWGL-UT-001 编号生成 首条编号 单元测试 JUnit5 §2.4 本表无未删栏位 StallCodeGenerator.next() 返回 01
ZCZX-SCLWGL-UT-002 编号生成 递增补零 单元测试 JUnit5 §2.4 本表最大 08 next() 返回 09
ZCZX-SCLWGL-UT-003 编号生成 上限拒绝 单元测试 JUnit5 §2.4 本表最大 99 next() 抛异常;提示栏位编号上限
ZCZX-SCLWGL-UT-004 编号生成 与隔离圈位独立 单元测试 JUnit5 §1 分域 隔离表已有 01 本表 next() 仍可从本表规则生成 01(若本表空)
ZCZX-SCLWGL-UT-005 参数校验 备注长度 单元测试 JUnit5 §3.4 51 字、50 字、空、仅空白 51 失败;50/空通过
ZCZX-SCLWGL-UT-006 Service 新增落库 单元测试 JUnit5+Mockito 正常 Mock Mapper insert 合法行 del_flag=0stall_code 非空
ZCZX-SCLWGL-UT-007 Service 修改禁改编号 单元测试 JUnit5 §3.3 记录 01 入参 stallCode=99 更新 库仍为 01
ZCZX-SCLWGL-UT-008 Service 逻辑删除 单元测试 JUnit5+Mockito §3.5 Mock remove(id) del_flag=2
ZCZX-SCLWGL-UT-009 Service 删除有关联 单元测试 JUnit5+Mockito §3.4 hasReference=true remove ServiceException
ZCZX-SCLWGL-UT-010 Mapper 模糊筛选 SQL 单元测试 JUnit5 §3.6 检查 XML stall_code LIKE CONCAT('%',…,'%')del_flag=0
ZCZX-SCLWGL-UT-011 Mapper 列表排序 单元测试 JUnit5 §3.1 检查 XML stall_code ASC, id ASC

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-SCLWGL-API-001 列表 默认分页排序 接口测试 Postman §3.1 有 S1~S3 GET /list code=200;≤20 条;stallCode 升序
ZCZX-SCLWGL-API-002 列表 编号模糊 接口测试 Postman §2.5 有 S1 01 stallCode=1 含 S1;stallCode=01 亦命中
ZCZX-SCLWGL-API-003 列表 模糊无匹配 接口测试 Postman §2.5 已登录 stallCode=不存在xyz rows 为空
ZCZX-SCLWGL-API-004 列表 不含已删除 接口测试 Postman 逻辑删除 某 id 已删 GET /list 无该 id
ZCZX-SCLWGL-API-005 新增 有备注 接口测试 Postman §5.1 已登录 POST remark=测试栏位 code=200;返回 2 位 stallCode
ZCZX-SCLWGL-API-006 新增 无备注 接口测试 Postman §5.1 已登录 POST {} 成功;remark 为空
ZCZX-SCLWGL-API-007 新增 备注超长 接口测试 Postman §5.1.4 已登录 remark 51 字 code≠200msg 含长度
ZCZX-SCLWGL-API-008 新增 传编号无效 接口测试 Postman §3.3 已登录 POSTstallCode=88 忽略入参;按本表规则生成
ZCZX-SCLWGL-API-009 新增 与隔离编号并存 接口测试 Postman §7 分域 隔离表已有 pen_code=01 POST 本模块新增 本模块可得 stallCode=01(若本表尚无 01
ZCZX-SCLWGL-API-010 详情 有效 id 接口测试 Postman §5.4 有 S1 GET /{id} stallCoderemark、审计字段
ZCZX-SCLWGL-API-011 详情 无效/已删 id 接口测试 Postman 异常 已登录 不存在或已删 id 失败或 data 为空
ZCZX-SCLWGL-API-012 修改 改备注 接口测试 Postman §5.3 有 S2 PUTremark 成功;stallCode 仍为 02
ZCZX-SCLWGL-API-013 修改 传编号无效 接口测试 Postman §3.3 有 S1 PUT stallCode=99 库仍为 01
ZCZX-SCLWGL-API-014 修改 不存在 id 接口测试 Postman 异常 已登录 伪造 id PUT 失败
ZCZX-SCLWGL-API-015 删除 单条逻辑删 接口测试 Postman §5.5 无关联新行 DELETE /{id} 成功;列表不可见
ZCZX-SCLWGL-API-016 删除 有关联拒绝 接口测试 Postman §5.5 预置 hasReference DELETE 失败;提示关联
ZCZX-SCLWGL-API-017 删除 重复删除 接口测试 Postman 幂等 已删 id 再次 DELETE 失败或不存在
ZCZX-SCLWGL-API-018 端到端 CRUD 串联 接口测试 Postman §4 已登录 POSTlistGETPUTDELETE 每步 code=200
ZCZX-SCLWGL-API-019 鉴权 未登录 接口测试 curl 安全 无 Token GET /list 401 或统一未登录
ZCZX-SCLWGL-API-020 权限 无新增权限 接口测试 Postman §6 仅 list POST 无权限失败
ZCZX-SCLWGL-API-021 权限 无删除权限 接口测试 Postman §6 无 remove DELETE 无权限失败
ZCZX-SCLWGL-API-022 响应 失败可读 接口测试 Postman §8 已登录 触发备注超长 msg 可区分场景

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-SCLWGL-UI-001 列表 默认展示 UI 测试 Playwright+Chrome §5.2.3 已登录;有 S1~S3 进入「市场栏位管理」 含栏位编号、备注、操作;「设置隔离天数」
ZCZX-SCLWGL-UI-002 列表 编号模糊筛选 UI 测试 Playwright+Chrome §2.5 有 S1 01 编号填 1→搜索 列表含 S1
ZCZX-SCLWGL-UI-003 列表 无结果 UI 测试 Playwright+Chrome §2.5 已登录 输入不存在编号→搜索 空列表或空状态
ZCZX-SCLWGL-UI-004 列表 重置 UI 测试 Playwright+Chrome §5.2 已筛选 搜索→重置 条件清空;列表恢复
ZCZX-SCLWGL-UI-005 新增 有备注保存 UI 测试 Playwright+Chrome §5.1 有 add 权限 新增→填备注→确定 成功提示;列表新行 2 位编号
ZCZX-SCLWGL-UI-006 新增 无备注保存 UI 测试 Playwright+Chrome §5.1 已登录 新增→备注留空→确定 成功;备注为空或「—」
ZCZX-SCLWGL-UI-007 新增 备注超长 UI 测试 Playwright+Chrome §5.1.4 新增 超 50 字或保存 无法输入或校验失败
ZCZX-SCLWGL-UI-008 新增 编号只读 UI 测试 Playwright+Chrome §2.2 打开新增 查看栏位编号控件 禁用/「保存后自动生成」
ZCZX-SCLWGL-UI-009 新增 取消 UI 测试 Playwright+Chrome §5.1.3 新增 填备注→取消 弹窗关闭;无新行
ZCZX-SCLWGL-UI-010 详情 只读展示 UI 测试 Playwright+Chrome §5.4 有 S1 点击查看 编号、备注只读;含审计信息
ZCZX-SCLWGL-UI-011 编辑 改备注 UI 测试 Playwright+Chrome §5.3 有 S3 编辑→改备注→确定 列表已更新;编号不变
ZCZX-SCLWGL-UI-012 编辑 编号不可改 UI 测试 Playwright+Chrome §5.3 编辑 S1 查看编号控件 只读
ZCZX-SCLWGL-UI-013 删除 确认删除 UI 测试 Playwright+Chrome §5.5 无关联行 删除→确认 行消失
ZCZX-SCLWGL-UI-014 删除 取消删除 UI 测试 Playwright+Chrome §5.5 任意行 删除→取消 行仍在
ZCZX-SCLWGL-UI-015 端到端 全流程 UI 集成 Playwright+Chrome §4 权限齐备 新增→模糊查→看→改→删 无报错
ZCZX-SCLWGL-UI-016 权限 只读角色 UI 测试 Playwright+Chrome §6 仅 list/query 进入模块 无新增/编辑/删除按钮
ZCZX-SCLWGL-UI-017 详情 从详情编辑 UI 测试 Playwright+Chrome §5.4 查看 S1 点「编辑」 进入编辑弹窗;编号只读

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

  • 安装:npm i -D @playwright/testnpx playwright install chrome
  • 配置:use: { channel: 'chrome', locale: 'zh-CN', baseURL: 'http://localhost:80' }storageState 复用登录态。
  • 路由:page.goto('/tradeMarket/marketStall')(以菜单 component 为准)。
  • 模糊搜索:page.getByLabel('栏位编号').fill('1')page.getByRole('button', { name: '搜索' }).click()

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-006 API-005~006、010、012、018 UI-005~006、010~012、015
异常流程 UT-003、005 API-007、011、014、016~017 UI-007、013~014
业务约束 UT-001~005、007 API-002~004、008、013 UI-002~004、008、012
编号 01~99 UT-001~004 API-005、008~009 UI-008、012
模糊筛选 UT-010 API-002~003 UI-002~003
逻辑删除 UT-008 API-004、015~017 UI-013
分域独立 UT-004 API-009
权限/鉴权 API-019~021 UI-016

功能需求追溯(自查)

需求章节 要点 主要对应用例
§5.1 新增 备注、编号自动 UT-005~006;API-005~008;UI-005~009
§5.2 列表 编号模糊 UT-010~011;API-001~004;UI-001~004
§5.3 修改 编号不可改 UT-007;API-012~013;UI-011~012
§5.4 详情 只读 API-010~011;UI-010、017
§5.5 删除 逻辑删 UT-008~009;API-015~017;UI-013~014
§2.2 编号 2 位、本表独立 UT-001~004;API-009;UI-008
§7 与隔离圈位 分表分序列 UT-004;API-009
§6 权限 按钮级 API-019~021;UI-016

修订记录

版本 说明
1.0 初版:单元 11、接口 22、UI 17;覆盖 CRUD、模糊筛选、编号分域;无隔离天数配置;Playwright+Chrome;前缀 ZCZX-SCLWGL