西藏巴青项目

市场行情登记测试用例.md 13KB

市场行情登记 — 测试用例

依据:市场行情登记功能需求.md市场行情登记技术方案.md
接口 Base Path/tradeMarket/marketQuote;鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):具备本模块权限的账号已登录(tradeMarket:marketQuote:list|query|add|edit|remove)。biz_trade_market 宜有运营状态正常的市场 TM1(如 id=1,名称「巴青交易市场」)。biz_market_daily_quote 宜预置(del_flag=0):

样本 行情日期 渠道 产地县码 公母 要点
D1 昨天 TM1 540628(示例) 公牛(1) 完整维度;prob 40/30/30;有变化因素
D2 昨天 TM1 另一县码 母牛(2) 重量档=3;用于组合筛选
D3 7 天前 TM1 同 D1 县 公牛(1) 日期区间筛选用

合法新增 Body 示例(驼峰)quoteDate=2026-05-19,省/市/县 code+name 齐全,tradeMarketId=1cattleGender=1priceMin=10priceMax=14priceUnit=2supplyStatus=1changeFactors=[1,3]probRise=40probFlat=35probFall=25outboundAdvice=出栏平稳(合计 100%)。

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


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
JYPT-SCDJ-UT-001 均价计算 公式 单元测试 JUnit5 §3.5 calcAvg(10,14) 返回 12.00
JYPT-SCDJ-UT-002 均价计算 不等价 单元测试 JUnit5 §3.5 min=15,max=10 抛异常或无效
JYPT-SCDJ-UT-003 概率校验 合计100 单元测试 JUnit5 §3.5 40+35+25;99+0.5+0.5;50+30+30 前两通过;后者失败
JYPT-SCDJ-UT-004 概率校验 非正 单元测试 JUnit5 §2.9 0、-1、101 失败
JYPT-SCDJ-UT-005 行情日期 未来日 单元测试 JUnit5 §2.2 明天日期 失败
JYPT-SCDJ-UT-006 变化因素 至少一项 单元测试 JUnit5 §2.8 []、非法码 9[1,2] 空/非法失败;合法通过
JYPT-SCDJ-UT-007 变化因素 入库格式 单元测试 JUnit5 §3.5 输入 [3,1,1] 1,3(去重排序)
JYPT-SCDJ-UT-008 渠道校验 市场不存在 单元测试 JUnit5+Mockito §3.5 无此 id 校验 失败
JYPT-SCDJ-UT-009 渠道校验 市场停业 单元测试 JUnit5+Mockito §2.4 status=2 校验 失败
JYPT-SCDJ-UT-010 维度唯一 重复组合 单元测试 JUnit5+Mockito §2.4 已有 D1 维 existsDuplicate true
JYPT-SCDJ-UT-011 维度唯一 修改排除自身 单元测试 JUnit5+Mockito §2.4 改 D1 同 id 查重 false
JYPT-SCDJ-UT-012 出栏建议 长度 单元测试 JUnit5 §2.10 空、501 字、500 字 空/超长失败;500 通过
JYPT-SCDJ-UT-013 枚举 公母/单位 单元测试 JUnit5 §2.3 gender=0;unit=3 失败
JYPT-SCDJ-UT-014 Service 新增落库均价 单元测试 JUnit5+Mockito 正常 Mock insert min=20,max=30 avg_price=25
JYPT-SCDJ-UT-015 Service 逻辑删除 单元测试 JUnit5+Mockito §3.5 Mock remove del_flag=2
JYPT-SCDJ-UT-016 Mapper 日期区间 SQL 单元测试 JUnit5 §3.6 检查 XML BETWEEN begin/end
JYPT-SCDJ-UT-017 Mapper 列表排序 单元测试 JUnit5 §3.1 检查 XML quote_date DESC, create_time DESC

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
JYPT-SCDJ-API-001 列表 默认分页排序 接口测试 Postman §3.1 有 D1~D3 GET /list code=200;含 tradeMarketName;日期倒序
JYPT-SCDJ-API-002 列表 单日精确 接口测试 Postman §3.1.1 有 D1 quoteDate=昨天 含 D1 不含 D3
JYPT-SCDJ-API-003 列表 日期区间 接口测试 Postman §3.1.1 有 D1、D3 beginQuoteDateendQuoteDate 范围内记录
JYPT-SCDJ-API-004 列表 渠道精确 接口测试 Postman §2.12 TM1 tradeMarketId=1 均为 TM1
JYPT-SCDJ-API-005 列表 产地县精确 接口测试 Postman §2.12 D1 县码 countyCode=… 含 D1
JYPT-SCDJ-API-006 列表 组合筛选 接口测试 Postman §2.12 已登录 日期+渠道+县 同时满足
JYPT-SCDJ-API-007 列表 不含已删 接口测试 Postman 逻辑删除 id 已删 GET /list 无该 id
JYPT-SCDJ-API-008 渠道下拉 仅正常市场 接口测试 Postman §3.4 有停业市场 GET /tradeMarketOptions operate_status=1
JYPT-SCDJ-API-009 新增 完整合法 接口测试 Postman §5.1 TM1 正常 POST 合法 Body code=200avgPrice=12
JYPT-SCDJ-API-010 新增 默认公母与单位 接口测试 Postman §5.1 已登录 POST 省略 gender/unit cattleGender=1priceUnit=2
JYPT-SCDJ-API-011 新增 缺必填 接口测试 Postman §5.1.4 已登录 tradeMarketId 或县码 失败
JYPT-SCDJ-API-012 新增 未来日期 接口测试 Postman §2.2 已登录 quoteDate=明天 失败
JYPT-SCDJ-API-013 新增 最低价>最高价 接口测试 Postman §2.6 已登录 min=20,max=10 失败
JYPT-SCDJ-API-014 新增 概率合计≠100 接口测试 Postman §2.9 已登录 40+40+40 失败
JYPT-SCDJ-API-015 新增 变化因素为空 接口测试 Postman §2.8 已登录 changeFactors=[] 失败
JYPT-SCDJ-API-016 新增 维度重复 接口测试 Postman §2.13 已有 D1 维 POST 同维 失败
JYPT-SCDJ-API-017 新增 停业渠道 接口测试 Postman §2.4 停业市场 id POST 失败
JYPT-SCDJ-API-018 详情 有效 id 接口测试 Postman §5.4 有 D1 GET /{id} 含概率、变化因素名、均价
JYPT-SCDJ-API-019 详情 无效 id 接口测试 Postman 异常 已登录 不存在 id 失败或空
JYPT-SCDJ-API-020 修改 改价格重算均价 接口测试 Postman §5.3 有 D1 avg=12 PUT min=8,max=12 avgPrice=10
JYPT-SCDJ-API-021 修改 改概率 接口测试 Postman §5.3 有 D1 PUT 新 prob 合计100 成功
JYPT-SCDJ-API-022 修改 维度重复他人 接口测试 Postman §2.13 有 D1、D2 D2 改成 D1 维 失败
JYPT-SCDJ-API-023 修改 不存在 id 接口测试 Postman 异常 已登录 伪造 PUT 失败
JYPT-SCDJ-API-024 删除 单条逻辑删 接口测试 Postman §5.5 无关联新行 DELETE /{id} 成功;列表无
JYPT-SCDJ-API-025 删除 有关联拒绝 接口测试 Postman §5.5 预置引用 DELETE 失败
JYPT-SCDJ-API-026 删除 重复删除 接口测试 Postman 幂等 已删 id 再次 DELETE 失败
JYPT-SCDJ-API-027 端到端 CRUD 串联 接口测试 Postman §4 TM1 POSTlistGETPUTDELETE 每步 code=200
JYPT-SCDJ-API-028 鉴权 未登录 接口测试 curl 安全 无 Token GET /list 401 或未登录
JYPT-SCDJ-API-029 权限 无新增 接口测试 Postman §6 仅 list POST 无权限失败
JYPT-SCDJ-API-030 响应 失败可读 接口测试 Postman §8 已登录 触发重复维、概率错 msg 可区分

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
JYPT-SCDJ-UI-001 列表 默认展示 UI 测试 Playwright+Chrome §5.2.3 已登录;有数据 进入「市场行情登记」 含日期、产地、渠道、公母、价格、均价、操作
JYPT-SCDJ-UI-002 列表 日期筛选 UI 测试 Playwright+Chrome §2.12 有 D1、D3 选昨天→搜索 含 D1 不含 D3
JYPT-SCDJ-UI-003 列表 渠道筛选 UI 测试 Playwright+Chrome §2.12 多市场数据 选 TM1→搜索 仅 TM1 行
JYPT-SCDJ-UI-004 列表 重置 UI 测试 Playwright+Chrome §5.2 已筛选 搜索→重置 条件清空
JYPT-SCDJ-UI-005 新增 默认昨天与枚举 UI 测试 Playwright+Chrome §5.1.2 有 add 打开新增 日期默认昨天;公母默认公牛;单位默认元/斤
JYPT-SCDJ-UI-006 新增 产地三级 UI 测试 Playwright+Chrome §2.3 新增 级联选至县 未选至县不可保存
JYPT-SCDJ-UI-007 新增 渠道下拉 UI 测试 Playwright+Chrome §2.4 TM1 正常 选渠道 展示市场名称;停业不可选
JYPT-SCDJ-UI-008 新增 均价自动计算 UI 测试 Playwright+Chrome §2.6 新增 填 min=10,max=14 展示均价 12.00
JYPT-SCDJ-UI-009 新增 概率合计校验 UI 测试 Playwright+Chrome §2.9 新增 填 40+40+40→确定 提示合计须 100%
JYPT-SCDJ-UI-010 新增 变化因素多选 UI 测试 Playwright+Chrome §2.8 新增 勾选≥1 项→保存 成功;详情展示标签
JYPT-SCDJ-UI-011 新增 完整保存 UI 测试 Playwright+Chrome §5.1 合法数据 填全必填→确定 成功;列表出现
JYPT-SCDJ-UI-012 新增 取消 UI 测试 Playwright+Chrome §5.1.3 新增 填一半→取消 无新行
JYPT-SCDJ-UI-013 详情 只读全字段 UI 测试 Playwright+Chrome §5.4 有 D1 查看 概率、因素、建议只读
JYPT-SCDJ-UI-014 编辑 改价格 UI 测试 Playwright+Chrome §5.3 有 D1 改最高价→保存 均价联动更新
JYPT-SCDJ-UI-015 删除 确认删除 UI 测试 Playwright+Chrome §5.5 无关联行 删除→确认 行消失
JYPT-SCDJ-UI-016 删除 取消删除 UI 测试 Playwright+Chrome §5.5 任意行 删除→取消 行仍在
JYPT-SCDJ-UI-017 端到端 全流程 UI 集成 Playwright+Chrome §4 权限齐备 新增→筛选→看→改→删 无报错
JYPT-SCDJ-UI-018 权限 只读角色 UI 测试 Playwright+Chrome §6 仅 list/query 进入模块 无新增/编辑/删除
JYPT-SCDJ-UI-019 详情 从详情编辑 UI 测试 Playwright+Chrome §5.4 查看 D1 点「编辑」 进入编辑弹窗
JYPT-SCDJ-UI-020 新增 无可用市场提示 UI 测试 Playwright+Chrome §2.4 无正常市场 打开新增看渠道 空列表或引导维护市场

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

  • 安装:npm i -D @playwright/testnpx playwright install chrome
  • 配置:use: { channel: 'chrome', locale: 'zh-CN', baseURL: 'http://localhost:80' }storageState 复用登录态。
  • 路由:page.goto('/tradeMarket/marketQuote')(以菜单 component 为准)。
  • 日期:page.getByLabel('行情日期');断言默认值为昨天。
  • 级联:RegionCascader 按项目封装点击省/市/县。
  • 概率:三个输入框失焦后断言合计提示。
  • 变化因素:el-checkbox-group 至少勾选一项。

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-014 API-009~010、018、020~021、027 UI-005~011、013~014、017
异常流程 UT-002~005、012 API-011~017、019、023、025~026 UI-009、012、015~016
业务约束 UT-006~011 API-016、022 UI-006~008、010
均价/概率 UT-001~004 API-013~014、020 UI-008~009
渠道/市场 UT-008~009 API-008、017 UI-007、020
列表筛选 UT-016~017 API-001~007 UI-002~004
逻辑删除 UT-015 API-007、024~026 UI-015
权限/鉴权 API-028~029 UI-018

功能需求追溯(自查)

需求章节 要点 主要对应用例
§5.1 新增 字段、默认、均价、概率、因素 UT-001~014;API-009~017;UI-005~012
§5.2 列表 日期/渠道/产地筛选 UT-016~017;API-001~007;UI-001~004
§5.3 修改 全字段、均价重算 API-020~023;UI-014、019
§5.4 详情 只读 API-018;UI-013、019
§5.5 删除 逻辑删 UT-015;API-024~026;UI-015~016
§2.4 渠道 联动交易市场 API-008、017;UI-007、020
§2.13 维度唯一 组合唯一 UT-010~011;API-016、022
§6 权限 按钮级 API-028~029;UI-018

修订记录

版本 说明
1.0 初版:单元 17、接口 30、UI 20;覆盖 CRUD、筛选、均价、概率100%、变化因素、维度唯一、渠道联动;Playwright+Chrome;前缀 JYPT-SCDJ