feat: /qe-fleet run 安徽运八需求 + 系统坑修复

系统修复:
- fleet_runner.py: Windows UTF-8 编码兼容(reconfigure stdout/stderr)
- fleet_runner.py: run 命令自动生成合并清单供导出使用
- fleet_manifest.py: 新增 save_merged_manifest() 保存统一清单
- fleet_config.yml: 修复 YAML keywords 格式(block sequence → flow sequence)
- 恢复被误删的知识库文件(payment_flow_cases, marketing_activity_cases)

QE Fleet 产物 (安徽运八需求):
- 153个测试点 + 53条可执行测试用例
- 需求分析/风险评估/测试策略/质量裁决(PASS)
- Excel 导出 + 版本快照 v2
- 确认结论文件已归档
This commit is contained in:
xst
2026-07-13 09:49:54 +08:00
parent b958b75899
commit acdb441507
77 changed files with 4134 additions and 1597 deletions
@@ -0,0 +1,206 @@
# 运八网络货运平台 - 操作手册
> 本文档基于 2026-07-10 对测试环境 `https://ybxcx.ynyun8.com:8000/admin` 的实际页面浏览编写。
> 共采集 352 个菜单项、184 个页面截图。
---
## 1. 平台端登录
**地址**`https://ybxcx.ynyun8.com:8000/admin`
**登录步骤**
1. 打开管理端地址,页面自动加载为 Element UI SPA
2. 确认机构自动选中"云南运八数据科技有限公司"(可从下拉切换其他分支机构)
3. 输入账号 `super_admin`,密码 `951260684NiAn..`
4. 完成**滑块验证码**(从左滑到右,成功后显示绿色"验证成功")
5. 如触发**图片验证码**,输入右侧验证码计算结果(数学题如"3+5=?"
6. 点击"登录"按钮(id=automaticLogon,登录前为 disabled 状态)
**登录技术细节**
- 密码使用 RSA 公钥加密后通过 `POST /ntocc-basic-api/authorize/encrypt` 传输
- HTTP Header 需携带 `secret: GouldAMap=d58bb5f7da1aa1d6b78741ded2450f2d`
- 登录成功后端返回 `Admin-Token` Cookie
- 前端使用 Vuex 管理状态(stateKeys: user, permission, enterprise, settings, tagsView, app 等)
**首页布局**
- 顶部导航栏(首页/基础信息/整车运输/管理服务/同城运输/增值服务/财务统计/系统管理/资源控制)
- 左侧菜单树(Element UI el-menuel-submenu 可展开的多级菜单)
- 主内容区(Dashboard 面板 + 路由页面)
- 右侧用户信息(超级管理员,退出登录按钮)
**首页 Dashboard 内容**
- 快捷入口卡片:发布货源、订单管理、客服管理、大数据中心、中闽大数据
- 运输流程图(货源发布 → 货源审核 → 货源管理 → 运输核算 → 运单管理 → 预付 → 财务打款)
- 平台车辆总计 / 平台运力(吨)
- 货源单统计(未接单/已接单/已结算/已撤销)
- 运输单统计(待运输/运输中/已卸货)
- 交易数据(充值总额/交易总额/运费总额/开票总额)
- 货源单类型分布(正常单/内容报价单)
---
## 2. 基础信息模块
### 2.1 平台管理
- **账号管理** (`/basicInfo/platUser/partyManage/partyList`):平台用户列表,支持查询/新增/编辑
- **角色管理** (`/basicInfo/platUser/roleManage/roleList`):角色列表,含角色名称/编码/描述/备注,支持权限分配
### 2.2 货主管理
- **个体货主** (`/basicInfo/shipment/shipmentManage/shipmentList`):列表含税源号/交易状态,支持搜索/导出/默认配置
- **货主信息** (`/basicInfo/shipment/selfShipmentForm`):个体货主表单录入(含Tab: 基本信息),支持提交/保存草稿
- **企业货主** (`/basicInfo/shipment/shipmentCompanyManage/shipmentCompanyList`):企业货主列表
- **企业信息** (`/basicInfo/shipment/selfCompanyShipmentForm`):企业货主表单,**多Tab**:企业信息、发票资质信息、发票信息维护、地址管理、承运服务、员工管理、多客户管理、合同管理、权限管理、快钱账户
- **分账记录** (`/basicInfo/shipment/ledgerRecord`):分账流水查询/导出/确认
### 2.3 承运管理
- **车队管理** (`/basicInfo/driver/driverTeamManage/driverTeamList`):车队列表,支持查询/新增/导入/导出/一键开启
- **车队信息** (`/basicInfo/driver/selfDriverTeamForm`):车队表单,**多Tab**:基本信息、车队司机、车队车辆、常跑路线、绑卡/解绑记录
- **司机管理** (`/basicInfo/driver/driverManage/driverList`):司机列表,支持查询/导入/导出/一键开账号/批量签署委托合同
- **司机信息** (`/basicInfo/driver/selfDriverForm`):司机表单,**多Tab**:司机信息(含未认证状态)、我的车辆、运单记录
- **平台车辆**:平台车辆列表
- **车辆地图**:车辆位置实时地图
- **运输停车报警** (`/basicInfo/driver/transportParkingAlarm`):停车异常列表
### 2.4 车辆服务
- **车辆保险** (`/basicInfo/vehicleService/vehicleInsurance`):列表含车牌号/保险公司,支持查询/新增/编辑/删除
- **车辆维修** (`/basicInfo/vehicleService/vehicleRepair`):列表含车牌号/维修地点/维修金额,支持查询/新增/编辑/删除
- **车辆违章** (`/basicInfo/vehicleService/vehicleViolation`):列表含车牌号/违章地点/罚款金额,支持查询/详情
- **车辆事故** (`/basicInfo/vehicleService/vehicleAccident`):列表含车牌号/事故地点,支持查询/新增/编辑/删除
### 2.5 数据字典
- **商品档案** (`/basicInfo/dict/goods/goodsType`):货物类型管理
- **单位档案** (`/basicInfo/dict/goods/unit`):计量单位,含维护人/更新时间
- **车型/车长/车宽/车高/轴数/吨位管理**:车辆规格字典,均含排序号/名称/编辑
- **增值类型** (`/basicInfo/dict/extraFeeType`):增值费用配置
- **银行类型** / **快钱银行类型** / **银行编码管理** / **银行网点管理**:银行字典维护
- **能源卡类型** (`/basicInfo/dict/energyCardType`):能源卡分类,支持新增
### 2.6 审核管理
- **司机审核** (`/basicInfo/review/carrierReview`):司机注册审核,支持开通高德账号/司机身份证上报/查看详情
- **换号审核** (`/basicInfo/review/MobilePhoneAudit`):手机号更换审核,含原手机号/新手机号对比
- **车辆审核** (`/basicInfo/review/VehicleReview`):车辆注册审核,支持车牌号上报/查看详情
- **货主审核** (`/basicInfo/review/shipperReview`):货主注册审核
- **维修审核** (`/basicInfo/review/carRepairReview`):车辆维修申请审核
- **开票审核** (`/basicInfo/review/financeReview`):发票开具审核,含发票抬头/税号
- **对账审核** (`/basicInfo/review/duizhangReview`):运单对账审核,含运费/扣减金额
- **维修流程/开票流程/对账流程**:流程可视化配置
- **车队司机** (`/basicInfo/review/teamDriverReview`):车队司机审核,含同步运单/开通高德
- **车队车辆** (`/basicInfo/review/teamVehicleReview`):车队车辆审核
- **车队审核** (`/basicInfo/review/driverTeamReview`):车队长审核,含同步运单/编辑
- **核验审核** (`/basicInfo/review/verificationReview`):运单核验,含确认/还原按钮
### 2.7 商户中心
- **商户管理** (`/basicInfo/merchantCenter/merchantManagement`):浦发银行商户
- **快钱** (`/basicInfo/merchantCenter/hat99BillManagement`):快钱商户,支持新增商户
- **光大会员列表** (`/basicInfo/merchantCenter/everbrightBillMangement`):光大银行会员
- **光大文件** (`/basicInfo/merchantCenter/cebFiles`):光大文件上传管理
- **光大监管商户号** (`/basicInfo/merchantCenter/merchantAccount`):监管商户配置
- **会员资金明细** (`/basicInfo/merchantCenter/memberFundDetails`):会员账户资金
- **光大推送** (`/basicInfo/merchantCenter/everbrightPush`):推送记录(含取消选择)
- **光大监管商户** (`/basicInfo/merchantCenter/superviseMerchants`):监管商户列表(含新增)
### 2.8 账户管理
- **余额统计** (`/basicInfo/account/Balance`):浦发/快钱账户余额(含实时查询)
- **光大余额统计** (`/basicInfo/account/everbrightBalanceStatistics`):光大账户余额
- **账户充值** (`/basicInfo/account/recharge`):含短信验证码
- **分账记录/变更记录**:账务变动查询
- **提现记录** (`/basicInfo/account/WithdrawalsRecord`):含提现编码/金额/标记提现
- **平台公户** (`/basicInfo/account/platformHousehold`):银行公户管理(含是否默认)
- **支付流水** (`/basicInfo/account/payFlow`):含确认/还原操作
- **支付明细** (`/basicInfo/account/remitDefiniteForPay`):含支付凭证/流水号
- **收款编码** (`/basicInfo/account/CollectionCoding`):收款方信息管理
- **收款记录** (`/basicInfo/account/CollectionRecord`):含同步收款记录
- **车队长收款记录** (`/basicInfo/account/driverCaptain`):车队长收款项
---
## 3. 整车运输(TMS核心)
### 3.1 货源管理
- **发布货源** (`/tms/order/order_publish`)**多Tab**: 发布货源(含OCR识别)、项目货源、常跑路线、指定车队和司机、指定承运费率。表单含货主搜索/地图选点/货物信息
- **货源管理** (`/tms/order/order_hall`):货源大厅列表,含接单方式设置
- **项目货源** (`/tms/order/order_project`):**多Tab**: 常跑路线、指定车队和司机、指定承运费率
- **货源审核** (`/tms/order/cargoaudit`):货源审核列表
### 3.2 运输管理
- **运单跟踪** (`/tms/transportManage/waybillManage`):**多Tab**: 待装货、待运输、待卸货。含批量删除/批量全删
- **运单管理** (`/tms/transportManage/Transport`):运单列表,含查询/导出/拆分/开票
- **运单轨迹** (`/tms/transportManage`)GPS轨迹查看
### 3.3 承运结算
流程:运费核算 → 货主打款 → 财务打款 → 回单签收
- 电子回单 / 货主支付
- 合并明细 / 合并付款 / 合并打款
- 财务驳回 / 打款记录 / 运单审核
- **垫资-财务打款**:平台先行垫付
- **垫资-货主打款**:货主后还款
- 清分列表:结算汇总
### 3.4 运单异常处理
运单证件异常/业务异常/时长异常/货物重量异常/运费金额异常/轨迹异常/风控异常运单
---
## 4. 其他业务模块速查
| 模块 | 主要页面 | 说明 |
|------|---------|------|
| 能源卡 | 余额/充值记录/消费记录 | 能源卡账户管理 |
| 加油管理 | 油站管理/油卡余额/加油记录/油卡消费 | 油气站服务 |
| 货主结算 | 收款对账/对账列表/收款单据/收款列表 | 货主端结算 |
| 监管上报 | 司机/车辆/路单/资金上报+异常路单 | 网络货运监管对接 |
| 发票管理 | 发票索取/列表+滇运通/三十六匠/满货达/浙样红 | 多渠道开票 |
| 客服运维 | 预警/投诉/评价/轨迹/运单证明 | 客服工作台 |
| 合同管理 | 货主/承运/货源/委托书/代收协议+三十六匠/车犇 | 合同全生命周期 |
| 同城运输 | 运单调度/指派订单 | 短途运输 |
| 费用管理 | 清分结算/运单费用/提现管理/司机费用/月结结算 | 费用结算 |
| 财务统计 | 自定义表/承运/货主/业务客户/平台客户报表+费用利润 | 数据报表 |
| 增值服务 | 保险服务(保单查询)+万金油服务(账户/储值/消费) | 增值业务 |
| 税务管理 | 平台信息/货主/司机信息/运单上报/授权委托/货主开票 | 税务对接 |
| ETC管理 | 企业注册/实时&历史开票/长途分单 | ETC全流程 |
| ETC开票 | 开票申请/记录/红冲/运单ETC抵扣 | ETC发票管理 |
| 物流金融 | 放款管理 | 供应链金融 |
| 系统管理 | 协议/web/司机/货主/委托书+网站门户+消息管理+运维工具 | 系统配置 |
---
## 5. 支付与资金流
```
货主 →(货主打款)→ 平台账户 →(财务打款)→ 司机/车队长
↓(垫资)
平台先行垫付 → 司机
↓(垫资-货主打款)
货主还款 → 平台
```
**银行通道**:浦发银行 / 快钱 / 光大银行 / 网商银行
---
## 6. 司机端 APP 核心流程
1. 登录 → 货源大厅浏览 → 接单
2. 车队长派单给司机(或司机自行接单)
3. 到达装货地 → 装货确认(上传装货图片/填写吨数)
4. 开始运输 → 到达卸货地 → 卸货确认(上传卸货图片)
5. 等待结算 → 财务打款 → 提现
---
## 7. 测试环境信息汇总
| 项目 | 信息 |
|------|------|
| 管理端地址 | https://ybxcx.ynyun8.com:8000/admin |
| API基地址 | https://ybxcx.ynyun8.com:8000/ |
| 管理员 | super_admin / 951260684NiAn.. |
| 车队长 | 13113113113 / 88888888 |
| 司机 | 15188888888 / 88888888 |
| 司机端包名 | com.arpa.ynchenggangdriver |
| 机构编码 | 49adb23841asw3118yunnanchenggang |
| 高德地图Key | Web: d58bb5f7da1aa1d6b78741ded2450f2d |
| 支付方式 | arpa_2 (浦发/快钱/光大/网商) |
| 上报省份 | 28 (云南) |
| Excel导出上限 | 20000条 |
+208 -57
View File
@@ -1,78 +1,229 @@
# 项目画像(通用基线版,请按项目实际情况维护)
# 运八网络货运平台 - 项目画像
> 用途:为本仓库内测试分析、测试点、测试用例提供项目差异化约束
>
> 使用原则:本文件先提供测试行业常用的通用基线,后续项目落地时必须补充项目真实规则;若与正式需求、产品说明、接口文档冲突,以项目最新确认结论为准。
>
> 用途:为本仓库内测试分析、测试点、测试用例提供"项目差异化约束"
> 维护要求:当架构、业务模式、风控策略、履约策略、权限模型、计费规则等发生变更时,必须同步更新本文件。
> 数据来源:2026-07-10 通过 Playwright 对测试环境管理端在线页面实际浏览采集(352个菜单项、184个页面截图)。
## 1. 项目简介
- 项目名称:待补充
- 项目类型:默认按中后台系统、交易类系统、会员营销系统、内容平台或工具平台中的一种理解,未明确前不得擅自细化。
- 目标用户:默认至少包含终端用户、运营人员、客服/审核人员、系统管理员中的部分角色,具体以项目实际为准。
- 核心业务域:待补充,可从下单、履约、营销、会员、支付、退款、内容发布、审批流等域中选择。
- 当前版本范围:以本次 `requirements/` 下需求文档为准,未写入需求范围的能力默认不纳入本期。
- **项目名称**:运八网络货运平台(YunBa Network Freight Platform
- **所属公司**:云南运八数据科技有限公司(组织机构代码:YNCG)
- **软著版本**:TMS(运输管理系统)
- **项目类型**:网络货运平台(中后台管理系统 + 司机端APP + 货主端)
- **平台官网**www.ynyun8.com
- **客服电话**400-000-2888
- **支付方式**:arpa_2(云企付二期)+ 网商银行(浦发/快钱/光大)
- **网络货运上报**:云南省(reportProvince=28
- **测试环境**
- 管理端:https://ybxcx.ynyun8.com:8000/admin
- API基地址:https://ybxcx.ynyun8.com:8000/
- WebSocketwss://ybxcx.ynyun8.com:8000/
- **测试账号**
- 超级管理员:super_admin / 951260684NiAn..
- 车队长:13113113113 / 88888888
- 司机:15188888888 / 88888888
- **目标用户角色**
- 平台运营人员(super_admin):后台管理与审核
- 货主(托运人):发布货源、管理运单、结算付款
- 车队长:接单并分派给名下司机
- 司机:实际运输执行,上传装卸货资料
- 财务人员:运单打款、资金管理
- 客服人员:订单咨询、异常协查
## 2. 业务边界与禁用能力
## 2. 核心业务域(基于实际在线系统菜单结构)
- 本项目明确不支持的能力:凡需求文档、接口文档、项目说明中未声明支持的能力,默认按“不支持”处理,不得在测试分析和测试用例中臆造。
- 受监管或合规限制的流程:涉及支付、退款、发票、实名、隐私数据、权限审批、操作留痕等能力时,默认认为存在合规要求,测试中需覆盖鉴权、留痕、异常拦截和数据保护。
- 灰度/地域/渠道差异说明:若需求未明确,则默认检查 Web/H5/App/小程序、测试环境与生产配置、不同地域或租户下是否存在规则差异,并将其作为待确认项。
### 2.1 首页 Dashboard
- 平台车辆总计 / 平台运力统计
- 货源单(未接单/已接单/已结算/已撤销)
- 运输单(待运输/运输中/已卸货)
- 交易数据(充值总额/交易总额/运费总额/开票总额)
- 快捷入口:发布货源、订单管理、客服管理、大数据中心、中闽大数据
- 运输流程图展示
## 3. 核心业务规则(项目级)
### 2.2 基础信息 = 平台管理 + 货主管理 + 承运管理 + 车辆服务 + 数据字典 + 审核管理 + 商户中心 + 账户管理 + 彩虹糖
- 结算与支付规则:凡涉及金额、折扣、积分、优惠、手续费、税费、退款分摊时,默认要求金额计算可追溯、展示口径一致、前后端结果一致、重复提交不导致重复扣减。
- 营销与优惠规则:默认检查优惠互斥、叠加优先级、门槛命中、适用范围、失效时间、回滚恢复和异常场景;若项目无营销能力,应在项目化配置中显式写明。
- 风控与权限规则:默认要求关键操作具备角色限制、越权拦截、二次确认或风控校验;高风险动作失败时不得进入成功态。
- 状态流转规则:默认所有核心对象都应具备明确状态机约束,禁止跳状态、逆状态、重复终态处理;异常中断后状态应可解释、可恢复、可追踪。
**平台管理**:账号管理、角色管理(含权限分配)
**货主管理**:个体货主/企业货主列表+表单(含多Tab:发票资质/地址/承运服务/员工/合同/权限/快钱账户等)、分账记录
**承运管理**:车队管理(列表+表单含多Tab)、司机管理(列表+表单含多Tab)、平台车辆、车辆地图、运输停车报警
**车辆服务**:车辆保险、车辆维修、车辆违章、车辆事故
**数据字典**:商品档案、商品类型、单位档案、车型/车长/车宽/车高/轴数/吨位管理、增值类型、银行类型(含快钱)、银行编码/网点管理、能源卡类型
**审核管理**:司机审核(含开通高德/身份证上报)、换号审核、车辆审核(含车牌号上报)、货主审核、维修审核、开票审核、对账审核、车队司机/车辆审核、车队审核、核验审核
**商户中心**:商户管理(浦发)、快钱、光大会员列表、光大文件、光大监管商户号、会员资金明细、光大推送、光大监管商户
**账户管理**:余额统计(浦发/快钱/光大)、账户充值(含短信验证)、分账记录、变更记录、提现记录(浦发/光大)、平台公户、支付流水(含确认/还原)、支付明细(含流水号)、收款编码/记录、车队长收款记录
**彩虹糖**(风控):司机审核、车辆审核、司机比对、车辆比对
## 4. 技术与集成约束
### 2.3 整车运输 TMS(核心业务)
- 关键依赖系统:默认关注认证中心、用户中心、库存/资源中心、支付网关、消息系统、营销中心、风控系统、文件服务、第三方回调服务等;实际未接入的依赖请在项目化配置中删除。
- 外部接口约束:默认按存在超时、重试、幂等、限流、熔断、降级、重复回调、乱序回调、部分成功等风险设计测试。
- 数据一致性策略:若需求未明确,默认按“关键交易结果最终一致、关键扣减与状态更新需具备幂等保护”理解,并将强一致/最终一致边界列入待确认。
**货源管理**:发布货源(含OCR识别Tab/地图选点/指定车队司机/指定承运费率Tab)、货源大厅、项目货源(含创建项目/常跑路线/指定车队司机/指定承运费率Tab)、货源审核
## 5. 高风险场景与历史事故
**运输管理**:运单跟踪(含待装货/待运输/待卸货Tab)、运单管理(含批量删除/拆分/开票/导出)、运单轨迹
- 资损风险点:重复提交、重复支付、重复退款、优惠多减、金额少收/多收、库存超扣、积分或券未正确回滚、并发下重复创建资源。
- 可用性风险点:弱网超时、接口抖动、依赖不可用、消息延迟、回调丢失、页面重复点击、前后端缓存不一致、批量操作部分失败。
- 数据风险点:脏数据兼容、历史数据迁移、空值/默认值污染、精度丢失、跨租户串数据、删除后残留引用。
- 典型线上事故防御策略:默认对核心链路补充幂等、重试、回滚、补偿、审计日志、告警阈值和人工兜底场景。
**预付管理**:预付运费、预付统计、预付记录
## 6. 测试策略偏好(项目定制)
**运单认证核算**:运单证件异常、运单业务异常、运单时长异常、货物重量异常、运费金额异常、待处理异常运单、轨迹异常、风控异常运单、运费核算
- P0 优先覆盖链路:登录鉴权、核心主流程、金额/资源扣减、状态变更、提交确认、异常回滚、查询展示一致性。
- 必测异常场景:参数非法、前置条件不满足、重复点击、并发提交、超时重试、依赖失败、权限不足、状态已变化、数据部分缺失。
- 非功能重点:弱网、超时、高并发、权限隔离、接口幂等、审计日志、性能基线、兼容性、可观测性。
- 自动化优先级建议:稳定且高频回归的核心主流程、历史缺陷高发链路、金额与状态计算逻辑、关键接口鉴权与幂等校验优先自动化。
**运单认证审核**:运单业务异常、运单认证审核、运单时长异常、货物重量异常、运费金额异常
## 7. 需求冲突判定口径
**承运结算**:运费核算、货主打款、异常运单、回单签收、财务打款、财务分账、电子回单、货主支付、合并明细、合并付款、财务驳回、打款记录、合并打款、运单审核、**垫资-财务打款**、**垫资-货主打款**、清分列表
- 什么情况下判定为“冲突”:
- 同一对象在不同需求中出现相反规则。
- 同一阈值、时效、次数、金额口径不一致。
- 同一状态机的起点、终点、流转条件描述不一致。
- 同一角色权限、数据范围、可见性规则前后不一致。
- 新需求声明“沿用旧逻辑”,但实际描述已改变旧规则。
- 冲突处理优先级规则:
- 优先看当前版本正式需求是否显式声明“替换/废弃/继承”旧规则。
- 若无显式声明,优先要求补充版本边界、生效范围、影响模块。
- 若涉及金额、库存、权益、权限、安全、合规,默认按高风险冲突处理,必须在需求阶段确认。
- 需求文档修改建议模板:
- 建议类型:规则合并 / 版本边界补充 / 阈值统一 / 状态机修正 / 权限口径修正 / 异常处理补充
- 建议描述:明确指出当前需求条目、冲突来源条目、冲突点和推荐修订文本方向
- 影响范围:说明影响的角色、模块、接口、数据口径、历史兼容逻辑、回归范围
### 2.4 能源卡管理
能源卡余额、充值记录、消费记录
## 8. 通用输出约束(供测试任务直接使用)
### 2.5 加油管理
油站管理、消费统计、油卡余额、加油记录、油费预付、油卡消费
- 需求分析必须同时覆盖功能目标、边界、角色、前置条件、状态流转、关键规则、风险与待确认项。
- 测试点必须同时覆盖主流程、异常流程、边界条件、数据校验、状态流转、权限控制、并发幂等、弱网超时、历史缺陷防御。
- 测试用例预期结果必须同时覆盖 UI/接口反馈和数据状态变化,不能只写“成功”或“失败”。
- 若需求存在歧义、缺字段、缺状态、缺口径,必须显式输出:
### 2.6 货主结算
收款对账、对账列表、收款单据、收款列表
```md
> ⚠️ 待确认:问题、影响范围、建议确认方向
```
### 2.7 监管上报(网络货运监管平台对接)
司机上报、车辆上报、路单上报、资金上报、业务/时长/质量/金额异常路单
- 对于高风险业务规则,若项目未明确给出,不得基于经验直接写死为真实规则,只能作为风险假设或待确认项输出。
### 2.8 发票管理
- 发票索取、发票列表
- 浙样红、方众数据导出
- 轨迹导出2、轨迹导出
- **滇运通**:运单/资金流水/司机/车辆导出、添加浙样红订单、司机开票
- **三十六匠发票**:轨迹异常运单、司机/车辆/运单/资金上传、上传查询
- **满货达发票**:承运人/司机/车辆/运单上传、运单其他上传、开票结果查询
- **滇运通开票**:承运人/司机/车辆/货源/运单上传、运单其他上传
### 2.9 客服运维
偏离预警、疲劳预警、超速预警、运输异常、评价管理、投诉处理、投诉意见反馈、司机评价、货主评价、撤单统计、轨迹事件、异常运单证明、好运宝车辆状态/日志记录、异常运单申诉/审核
### 2.10 补单管理 + 小象开票
补单操作、车队派单、承运人管理、创建运单
### 2.11 管理服务
- **合同管理**:仓储合同、运输合同
- **运输合同**:货主合同、承运合同、货源合同、委托书合同、代收协议、委托协议书
- **三十六匠协议**:三十六匠协议/承运合同/代收协议
- **车犇协议**:车犇协议/批量导出协议
- **同城运输**:运单调度、指派订单
- **下单管理**:订单开单、批量导入、运单管理、回单确认、异常管理、投诉管理
- **费用管理**:清分结算、运单费用、提现管理、司机费用、月结结算、申请清分
### 2.12 财务统计(报表)
自定义表、承运报表、货主报表、业务客户报表、平台客户报表、货主费用、司机费用、上游费用、电子对账单、运单利润、月度利润、运单开票、首页统计、数据统计
### 2.13 增值服务
- 运输合同(全类型:货主/承运/货源/委托书/代收协议等)
- 保险服务:保单查询
- 万金油服务:账户余额、储值返点记录、消费记录
### 2.14 税务管理
平台信息、货主信息、司机信息、运单上报、授权委托、货主开票
### 2.15 ETC管理 + ETC开票管理
企业注册、实时开票、历史开票、运单上报、长途分单、ETC开票申请/记录、ETC红冲发票查询、ETC开票运单、已抵扣/未抵扣发票、运单开票申请、运单ETC抵扣、ETC抵扣管理
### 2.16 物流金融
放款管理
### 2.17 司机开票管理
开票公司管理、承运人管理、承运人临登查询、运单开票查询
### 2.18 系统管理
- **协议管理**:web协议、司机协议、货主协议、委托书
- **网站门户**:轮播图片、新闻管理、门户信息、门户配置、图片预览、客户案例
- **消息管理**:应用通知管理、短信发送管理、消息推送记录、验证码统计表、司机催款记录、超时异常运单、超时未派单
- **运维工具**:问题咨询、机构管理、自动更新、行为日志、扣费记录、合同模板、操作管理、用户登录/创建记录、光大手工调账、车队长运费任务运维、资源控制
- 其他:导航管理、数据工具、权限创建、修改密码、平台企业、机构充值、机构配置、开票信息、消费记录
## 3. 目标用户与端
| 端 | 平台 | 用户角色 | 主要功能 |
|---|------|---------|---------|
| 运八平台端 | Web管理后台(Element UI SPA) | 运营/财务/客服 | 全部管理功能(352个菜单项) |
| 运八司机端 | Android/iOS App | 司机/车队长 | 接单、运输、上传资料、提现 |
| 运八货主端 | Android/iOS/PC | 货主 | 发布货源、结算、付款 |
- **司机端包名**com.arpa.ynchenggangdriver
- **司机端主Activity**com.arpa.ntocc.MainActivity
## 4. 业务边界与禁用能力
- 营销活动/优惠券/积分体系:本项目不支持(marketing_rules.md标记)
- 司机同时接多单:默认不允许(allowMult=0
- 运输中车队长调单:默认不允许(allowCaptainDispatchInTransit=0
- 装卸货后台操作:默认关闭(loadOrUnloadInBackground=0
- 装货荷载吨数校验:默认关闭(loadTonnageVerification=0
- 重新装卸货:默认不允许(secondUploadDetail=0
- 司机授权协议:默认不需要(needDriverLicense=0
- 蚂蚁区块链/找油网服务:关闭
## 5. 核心业务规则
### 5.1 结算与支付规则
- 支付方式:云企付二期(arpa_2)
- 支持银行:浦发银行、快钱、光大银行、网商银行
- 金额计算必须可追溯,前后端一致,重复提交不重复扣减
- 保费支付人:默认货主支付(insuredPayer=1
### 5.2 运单核心规则
- 运单核心状态机:待运输 -> 运输中 -> 已卸货 -> 已结算 -> 已垫付(垫资)/已打款
- 禁止跳状态、逆状态、重复终态处理
- 异常中断后状态应可解释、可恢复、可追踪
### 5.3 垫资规则
- 垫资运单条件:货主标记垫资 AND 货源标记垫资
- 非垫资运单条件:货主或货源任一未标记垫资
- 垫资流程:平台先行垫付运费给司机 -> 货主后还款给平台
### 5.4 费用结构
- 货主合计付款 = 基础运费 + 服务费
- 能源费:货主配置比例金额,从运费转化为能源费
- 居间费:手动清分车队长收款部分
- 清分司机费用:手动清分司机收款部分
- 车队长收款 = 居间费 + 1%税费
## 6. 技术与集成约束
### 6.1 关键依赖系统
- 认证中心:ntocc-basic-api/authorize(滑块验证码 + 图片验证码 + RSA加密传输)
- 高德地图:定位、轨迹、电子围栏(Web/Android/iOS三端Key
- 银行通道:浦发银行、快钱、光大银行、网商银行
- 滇运通:司机代开发票系统
- 华为OBS:文件存储
- 短信平台
- 三十六匠/满货达/浙样红/车犇:第三方开票/协议平台
### 6.2 技术栈
- 前端:Vue.js + Element UI + 高德地图 JSAPI
- 后端:Spring Boot 微服务(ntocc-basic-api / ntocc-admin-api / ntocc-tps-api等)
- 网关:OpenResty
- 数据库:MySQL + Redis
- 文件存储:华为云 OBS
- 支付:云企付二期
## 7. 高风险场景
### 7.1 资损风险
重复打款/退款、运费/服务费/能源费/居间费/税费计算错误、垫资与非垫资混判、调账金额错误
### 7.2 可用性风险
支付回调丢失/延迟、银行接口不可用、高德地图服务不可用、装卸货图片上传失败
### 7.3 数据风险
装卸货地址与电子围栏偏差、GPS轨迹数据缺失、合同/回单文件丢失、多机构数据隔离
### 7.4 登录安全
管理端登录:滑块验证码 + 图片验证码(needImage) + RSA密码加密(authorize/encrypt) + 多机构选择登录
## 8. 测试策略偏好
### 8.1 P0优先覆盖
登录鉴权、运单核心主流程(接单->运输->卸货->结算->打款)、金额计算(运费/服务费/能源费/居间费/税费)、运单状态流转、支付流程(货主打款/财务打款/垫资打款)、权限隔离
### 8.2 必测异常场景
参数非法、重复提交(幂等)、并发提交、超时重试、依赖服务不可用、越权操作、状态已变化后操作、回单/凭证缺失
### 8.3 非功能重点
弱网/断网(APP端)、并发打款、机构间数据隔离、接口幂等、Excel大数据量导出(默认20000条)、装卸货图片上传(大文件/OSS)
## 9. 需求冲突判定口径
同一运单状态流转规则/同一费用计算口径/同一角色权限/垫资条件在不同需求中不一致均视为冲突;新需求声明"沿用旧逻辑"但实际描述已改变旧规则视为冲突。
## 10. 通用输出约束
需求分析必须覆盖功能目标/边界/角色/前置条件/状态流转/关键规则/风险;测试点必须覆盖主流程/异常流程/边界条件/数据校验/状态流转/权限控制/并发幂等;测试用例预期结果必须同时覆盖UI反馈和数据状态变化;金额相关用例必须验证计算精度;权限相关用例必须验证机构数据隔离;涉及GPS/地图的功能需考虑坐标偏移和精度问题。
@@ -9,7 +9,7 @@
- 主流程:核心业务 Happy Path 必须覆盖。
- 异常流程:参数非法、前置条件不满足、状态不允许、库存不足、余额不足、权限不足、重复操作、超限操作等必须覆盖。
- 边界条件:最小值、最大值、临界值、空值、默认值、长度边界、数量边界、时间边界、金额边界必须按需求实际场景覆盖。
- 状态流转:创建、提交、生效、失效、取消、关闭、退款、撤回、恢复等关键状态变化必须覆盖。
- 状态流转:创建、提交、生效、失效、取消、关闭、撤回、恢复等关键状态变化必须覆盖。
- 规则组合:多条件叠加、互斥、优先级、覆盖关系、兜底规则必须覆盖。
- 数据校验:展示数据、落库数据、统计口径、列表汇总、详情字段、外部回传字段必须覆盖。
- 中后台页面:如果需求包含列表、新建、编辑、查看、失效、删除、筛选、选择弹窗等管理能力,除失败态外,正向成功链路和交互细项也必须覆盖。
@@ -22,8 +22,8 @@
对于高风险模块,测试用例必须体现风险导向,而不是平均用力。
- P0/P1 业务规则必须覆盖正向、逆向、边界、互斥、并发或幂等中的关键场景。
- 资金、库存、优惠、权益、单状态等资损类风险,必须覆盖结果一致性校验。
- 涉及角色隔离、数据隔离、门店隔离、组织隔离的需求,必须覆盖权限与越权场景。
- 资金、库存、优惠、权益、单状态等资损类风险,必须覆盖结果一致性校验。
- 涉及角色隔离、数据隔离、组织隔离的需求,必须覆盖权限与越权场景。
- 涉及外部系统、回调、异步任务、延迟生效、重试补偿的需求,必须覆盖时序异常与重复触发场景。
## 3. 用例设计质量达标
+44 -84
View File
@@ -1,6 +1,6 @@
# 业务术语表
> 本文件定义了项目中长期稳定、跨商城场景高频出现的核心业务术语。AI 在生成分析、测试点和测试用例时必须优先使用这些词汇,禁止混用口语化同义词。
> 本文件定义了项目中长期稳定、运输场景高频出现的核心业务术语。AI 在生成分析、测试点和测试用例时必须优先使用这些词汇,禁止混用口语化同义词。
>
> 使用原则:
> 1. 先使用本术语表中的标准词。
@@ -10,92 +10,56 @@
## 1. 角色与业务主体
- **平台端**: 平台总部或品牌总部使用的管理后台,用于统一管理店铺、商品、营销、订单、会员、数据等能力。
- **商家端**: 商家、门店、代理商或直营网点使用的经营后台,用于管理本商家可见范围内的商品、订单、营销和资产
- **用户端**: C 端消费者使用的台,包括 App、H5、小程序、PC 商城等购买入口
- **店铺**: 面向用户提供商品或服务经营能力的业务主体,可理解为商家经营单元
- **门店**: 线下经营或履约单元,可能具备独立库存、独立配送范围、独立核销能力
- **供应商**: 提供商品、履约或货源支持的上游主体,可能影响供货价、库存和发货链路
- **运营人员**: 负责配置商品、活动、价格、运费、会员权益等后台能力的业务角色
- **客服**: 负责处理订单咨询、退款、售后、补单、异常协查等问题的后台角色。
- **运八平台端**: 平台总部或托运人使用的管理后台,用于统一管理货源、审核、司机、车辆、货主、打款、数据等能力。
- **运八司机端**: 司机、车队长使用的移动端,包括 Android/iOS/小程序,用于司机、车队长接单、派单、运输、提现等能力
- **运八货主端**: 托运人使用的台,包括 Android/iOS/PC端等,用于货主发布货源、结算、付款等能力
- **货主**: 有运输需求的托运人,可以使用运八平台端、运八货主端进行货源、资金等管理
- **车队长**: 可以理解为一个运输企业,本身该角色不能进行实际运输,仅执行接单后,将运输的单子指派给名下的司机
- **司机**: 进行实际货物运输,需要上传装卸货的资料以及图片
- **运营人员**: 负责审核工作包含司机、车辆、货主等所有角色注册和运输的审核,也可代货主发布货源、结算运单
- **客服**: 负责处理订单咨询、异常协查等问题的后台角色。
- **财务**:负责处理运单实际打款的角色。
- **滇运通**:负责帮司机代开发票的系统。
## 2. 商品与库存
## 2. 货源
- **SPU**: 标准产品单位,表示一类商品的抽象定义,如“iPhone 15”
- **SKU**: 库存量单位,表示商品的最小可售规格,如“iPhone 15 黑色 256G”
- **商品规格**: 用于区分 SKU 的销售属性组合,如颜色、尺码、套餐版本
- **可售库存**: 当前可用于下单扣减的库存数量,不等于物理库存
- **锁定库存**: 用户下单后暂时占用、待支付或待确认释放的库存
- **回滚库存**: 订单取消、支付失败或超时关闭后,系统释放此前锁定库存的动作。
- **超卖**: 实际成功售卖数量超过可售库存的异常情况。
- **手动清分**: 该货源下所有运单结算方式名称
- **车队长全额收款**: 该货源下所有运单结算方式名称
- **自动清分**: 该货源下所有运单结算方式名称
- **垫资**: 货源下运单能否进行进行垫资打款的标识
- **电子围栏**: 当前货源下所有运单装卸货位置是否进行限制
## 3. 购物与订
## 3.
- **购物车**: 用户临时存放待购买商品的列表,不代表价格、库存、优惠结果最终已锁定
- **结算页**: 用户提交订单前的确认页面,用于展示最新商品、价格、库存、运费、优惠和实付信息
- **提交订单**: 用户确认购买并生成订单的动作,通常意味着进入待支付或待确认状态
- **订单**: 用户购买商品或服务形成的业务单据,是支付、履约、退款、售后的核心载体
- **子订单**: 拆单后形成的订单明细单元,常见于多商家、多仓、多履约场景
- **单状态**: 单在生命周期中的阶段标识,如待支付、待发货、待收货、已完成、已取消
- **单关闭**: 因超时未支付、风控失败、系统取消等原因终止单继续流转。
- **逆向流程**: 单创建后的反向处理链路,如取消、退款、退货退款、换货、补偿
- **车队长运单**: 由车队长接单分派给司机的运单
- **司机运单**: 由司机自行接单的运单
- **垫资运单**:货主、货源都标记为垫资时对应货源下的所有运单
- **非垫资运单**:货主、货源下只要有一个没有标记为垫资时对应货源下的所有运单
- **单**: 用户对货源接单后形成的数据,是支付、履约的核心载体
- **单状态**: 单在生命周期中的阶段标识,如待运输、运输中、已卸货、已结算、已垫付、已打款等
- **单关闭**: 因司机取消运单终止单继续流转。
- **逆向流程**: 单创建后的反向处理链路,如取消、每个节点的审核驳回
## 4. 支付与资金
- **待支付订单**: 已成功创建但尚未完成付款的订单状态
- **支付单**: 订单在支付环节生成的资金请求单据,用于对接三方支付或内部资金系统
- **支付流水**: 记录支付请求、支付结果、渠道单号、金额等信息的资金明细
- **支付方式**: 用户完成付款所使用的资金渠道,如微信支付、支付宝、余额、积分抵现
- **实付金额**: 用户最终实际支付的金额,通常等于应付金额减去各类可抵扣权益后的结果
- **原路退回**: 退款时按原支付方式、原资金路径退还用户资产的处理方式
- **挂账**: 订单生成但尚未完成付款,系统已形成应收记录但未完成资金入账的状态
- **资损**: 因金额计算错误、优惠错误、重复退款、库存超卖等问题导致平台或商家资产损失
- **调账**: 运单在打款后,用户未提现进行的资金调整
- **电子回单**: 运单产生支付记录后银行推送的回单
- **支付方式**: 用户完成付款所使用的资金渠道,如光大银行、浦发银行
- **货主合计付款**:货主实际需要支付给平台的费用,基础运费+服务费
- **合并打款**:货主-平台-司机一次性打款的操作
- **货主打款**:货主给平台支付费用
- **财务打款**:平台给司机、车队长支付费用
- **垫资-财务打款**:垫资运单由平台先行垫付运费给司机
- **垫资-货主打款**:垫资运单平台垫付运费后货主偿还费用。
- **能源费**: 货主配置里的比例金额,对应货主名下所有货源司机接单后自动将部分运费转化为能源费。
- **居间费**: 手动清分运单车队长收款的金额。
- **清分司机费用**: 手动清分运单司机收款的金额。
- **车队长收款**:车队长实收费用,需要根据居间费给车队长多打1%的税费。
- **资损**: 因金额计算错误、重复打款等问题导致平台或货主资产损失。
## 5. 营销与优惠
## 5. 风控、权限与系统能力
- **优惠券**: 可在满足条件时抵扣订单金额或给予折扣的营销权益
- **平台券**: 由平台统一发放和承担成本的优惠券,通常作用于平台范围内指定商品、店铺或活动。
- **商家券**: 由商家或店铺发放和承担成本的优惠券,通常只在指定商家范围内可用。
- **品类券**: 只对指定商品类目或商品范围生效的优惠券。
- **满减券**: 订单或商品金额达到门槛后才可生效的优惠券。
- **折扣券**: 以打折方式生效的优惠券,而非固定金额抵扣。
- **优惠门槛**: 优惠生效所需满足的条件,如满 100 可减 20。
- **适用范围**: 某个优惠可生效的商品、类目、店铺、用户、渠道或时间范围。
- **优惠叠加**: 多种优惠是否允许同时生效的规则。
- **优惠互斥**: 多种优惠不能同时生效,只能按优先级或选择规则命中其一。
- **试算**: 在正式提交前,根据当前商品、用户、活动、券、积分等条件预估优惠和实付结果的过程。
- **优惠分摊**: 将订单级优惠按规则分配到商品、子单、退款项上的计算过程。
- **一口价**: 以固定成交价覆盖常规价格和营销计算链路的促销方式。
- **满减送**: 满足金额或件数条件后,给予减价、赠品或附加权益的活动方式。
- **限时折扣**: 在指定时间内生效的临时价格优惠活动。
- **秒杀**: 在短时间窗口内以强时效、强库存约束进行的促销活动。
- **拼团**: 通过多人组团满足条件后生效的营销活动。
## 6. 会员与权益
- **会员**: 具备等级、成长值、标签、专属价格或专属权益的用户身份。
- **会员等级**: 用于区分会员权益范围的层级,如普通会员、VIP、SVIP。
- **会员价**: 针对会员身份生效的专属销售价格或折扣规则。
- **会员权益**: 会员可享受的专属能力,如会员价、包邮、积分加速、专属券等。
- **积分**: 可用于兑换、抵现、成长或运营激励的虚拟权益资产。
- **积分抵现**: 将积分按兑换比例折算为订单可抵扣金额的能力。
- **余额**: 用户在平台或商家体系内预存或结余的可消费资金。
## 7. 履约、售后与核销
- **履约**: 订单支付后到商品或服务完成交付之间的执行链路,如发货、配送、自提、到店消费。
- **发货**: 商家或仓库将商品交给物流或配送体系的动作。
- **签收**: 用户确认收到商品或系统确认妥投的状态。
- **售后**: 支付后围绕退款、退货、换货、补寄、补偿等问题展开的处理流程。
- **整单退款**: 针对订单全部商品和全部已支付金额发起的退款。
- **部分退款**: 针对订单中的部分商品、部分数量或部分金额发起的退款。
- **退款分摊**: 在部分退款场景下,将优惠、运费、积分等按规则分配到退款项的过程。
- **核销**: 对券码、提货码、预约码、订单码等进行校验并确认已消费/已使用的动作,常见于到店自提、到店服务、卡券消费场景。
- **核销码**: 用于完成核销动作的识别码、二维码、条形码或数字口令。
## 8. 风控、权限与系统能力
- **风控拦截**: 系统判定交易、账号或操作存在风险后自动阻断继续执行的行为。
- **风控拦截**: 系统判定运单存在风险后自动阻断继续执行的行为
- **权限控制**: 根据角色、数据范围、组织关系等限制用户可见、可操作范围的机制。
- **越权**: 用户访问或操作了其本不应拥有权限的数据或功能。
- **幂等性**: 同一业务请求被重复提交时,系统结果保持一致,且不会重复扣款、重复创建、重复退款或重复扣减资源。
@@ -105,10 +69,6 @@
- **回调**: 外部系统处理完成后主动通知本系统结果的机制,常见于支付、退款、物流等链路。
- **审计日志**: 用于记录关键操作人、操作时间、操作对象和变更结果的可追溯日志。
## 9. 术语使用约束
## 6. 术语使用约束
- **订单关闭** 与 **退款成功** 不是同义词,关闭订单不代表资金已经退回。
- **优惠券使用** 与 **核销** 不是同义词;商城下单抵扣通常描述为“使用优惠券”或“优惠券抵扣”,到店消费确认才更常用“核销”。
- **挂账** 只在涉及应收记录或账务状态时使用;普通商城待支付场景优先写“待支付订单”。
- **平台券**、**商家券**、**店铺券** 不应混写;若项目内三者含义不同,必须以项目需求或项目画像中的定义为准。
- **退款**、**退货退款**、**换货**、**售后关闭** 不应混写,生成用例时要按实际逆向类型写全称。
暂无
@@ -1,4 +1,4 @@
# 可选业务术语表(SaaS 扩展域)
# 可选业务术语表(SaaS 扩展域)--暂不需要
> 本文件只在需求文档、项目画像或关联需求明确涉及对应领域时才应纳入上下文。不要将这些术语默认用于所有商城项目。
@@ -12,32 +12,21 @@
- [ ] **弱网/断网**:提交请求瞬间断网,是否有重试机制或友好提示。
- [ ] **重复提交**:快速多次点击“提交”按钮(防抖/幂等性检查)。
- [ ] **超时处理**:接口响应超过 30 秒,前端是否有 Loading 状态或超时提示。
- [ ] **页面切换**:在支付码输入页切换到后台再切回,是否保留状态。
- [ ] **页面切换**:在支付验证码输入页切换到后台再切回,是否保留状态。
### 3. 状态流转
- [ ] **逆向流程**支付后退款、下单后取消、发货后退货、定金转退
- [ ] **并发操作**同一账号在两个设备同时操作;库存仅剩 1 件时两人同时购买
### 4. 车企商城特有业务
- [ ] **VIN 码校验**:输入已售 VIN、错误格式 VIN、大小写混用。
- [ ] **配置器互斥**:选择 A 配件后,B 配件是否自动置灰(如轮毂与轮胎的匹配)。
- [ ] **价格变动**:用户加购后,后台修改价格,结算页是否实时刷新。
- [ ] **权益叠加**:车主积分、推荐奖励、官方优惠券三者是否违规叠加。
### 5. 账号与权限
- [ ] **多端登录**:同一账号在手机 App 和 车机端 同时登录,状态是否同步。
- [ ] **未登录访问**:直接通过 URL 访问订单详情页,是否拦截跳转登录。
### 3. 账号与权限
- [ ] **多端登录**同一账号在多端 同时登录,状态是否同步
- [ ] **未登录访问**直接通过 URL 访问运单详情页,是否拦截跳转登录
- [ ] **隐私授权**:首次使用未点击“同意隐私协议”,是否禁止调用定位/相机权限。
### 6. 后台 CRUD 页面
### 4. 后台 CRUD 页面
- [ ] **列表字段**:列表页展示字段、默认排序、分页项是否与需求一致。
- [ ] **查询重置**:搜索、筛选、重置、空结果提示是否完整。
- [ ] **查看只读**:查看态是否真正不可编辑,避免与编辑态混淆。
- [ ] **正向成功链路**:不要只测“保存失败/限制条件”,还要覆盖新建成功、编辑成功。
- [ ] **状态与按钮映射**:不同状态下操作栏按钮是否正确展示,是否存在越权或错态操作。
- [ ] **端间数据隔离**:平台端、商家端、门店端配置数据是否真正隔离,避免串数。
- [ ] **选择弹窗细粒度**商品/优惠券/奖品选择弹窗的刷新、搜索、分页、排序、选择反馈是否完整。
- [ ] **端间数据隔离**:平台端、货主端配置数据是否真正隔离,避免串数。
- [ ] **选择弹窗细粒度**:选择弹窗的刷新、搜索、分页、排序、选择反馈是否完整。
### 7. C 端资格与展示状态
- [ ] **状态拆分**未开始、进行中、已结、已失效是否分别验证,而不是合并成一个模糊负向场景。
- [ ] **门店老用户**:店铺维度老用户不弹窗是否单独覆盖,避免只校验平台维度老用户。
### 5. 展示状态
- [ ] **状态拆分**已结单、运输中、已结、已完成等状态是否分别验证,而不是合并成一个模糊负向场景。
@@ -2,62 +2,8 @@
> 这些是过去项目中发生过的真实 Bug,生成新用例时,请针对这些逻辑设计防御性测试用例。
### 缺陷 ID: BUG-202310-05
### 缺陷 ID: BUG-202310-05--示例
- **模块**: 购物车
- **描述**: 商品降价后加入购物车,随后商品恢复原价,结算时依然按降价后的价格计算,导致资损。
- **根因**: 购物车缓存了价格,结算时未重新从商品中心获取最新价格。
- **防御用例**: `验证商品加入购物车后,后台修改价格,结算时系统自动更新为最新价格`
### 缺陷 ID: BUG-202311-12
- **模块**: 优惠券
- **描述**: 使用“满100减50”优惠券购买 100 元商品,退货时未扣除优惠金额,导致用户获利。
- **根因**: 退款逻辑未考虑优惠分摊。
- **防御用例**: `验证使用优惠券购买多件商品后,部分退款时优惠金额按比例扣除`
### 缺陷 ID: BUG-202312-07
- **模块**: 下单接口
- **描述**: 调用下单接口时,通过篡改请求参数,将商品数量改为负数,系统未做边界校验,使订单总金额变为负数,用户支付后平台产生负向应收,造成资损。
- **根因**: 下单接口对商品数量仅做了非空校验,未校验正整数及防止整数溢出。
- **防御用例**: `验证调用下单接口时,传入商品数量为 0、负数、超大整数(如 9999999)时,系统均能拦截并返回错误码,不生成有效订单`
### 缺陷 ID: BUG-202401-15
- **模块**: 支付网关
- **描述**: 用户下单时选择“普通订单”(应付金额 100 元),在调起支付前通过抓包修改支付接口请求参数,将支付类型从“微信支付”改为“全额积分支付”。由于后端未校验订单原始支付方式,积分系统扣除了用户 100 积分(1 积分=1 元),用户实际未付现金即获得商品。日损失积分资产超 10 万。
- **根因**: 支付接口仅校验了用户积分余额是否充足,未与订单核心表中的支付方式快照做一致性校验。
- **防御用例**: `验证下单时选择现金支付,支付阶段强制改为积分支付或余额支付时,后端应校验请求支付方式与订单生成时记录的支付方式一致,不一致则拒绝支付`
### 缺陷 ID: BUG-202401-22
- **模块**: 并行扣减
- **描述**: 秒杀活动中,用户通过多线程并发调用下单接口(同一商品 ID,同一用户),由于缺少分布式锁或乐观锁,导致同一件商品被同一用户成功下单 3 次,库存扣减超出实际售卖数量,产生超卖资损。
- **根因**: 库存扣减 SQL 为 `update stock set count = count - 1 where product_id = ?`,未使用 `and count > 0` 条件,且业务层未做幂等和并发控制。
- **防御用例**: `验证同一用户对同一限购商品发起 10 次并发下单请求,最终只成功创建 1 个订单,库存扣减 1 件`
### 缺陷 ID: BUG-202402-03
- **模块**: 价格计算
- **描述**: 商品 A 单价 50 元,参与“满 2 件打 8 折”活动。用户将 1 件加入购物车,下单前活动变更为“满 3 件打 7 折”,但前端仍展示旧折扣,提交订单时后端沿用旧活动的价格计算规则,导致用户少付。
- **根因**: 后端未在订单入库前重新计算促销活动价格,而是信任前端传入的活动 ID 和已优惠金额。
- **防御用例**: `验证商品促销活动变更后,用户使用旧的活动 ID 提交订单,系统应抛弃前端传入的优惠信息,强制重新计算最新活动价格`
### 缺陷 ID: BUG-202402-18
- **模块**: 退款/逆向流程
- **描述**: 用户使用混合支付(现金 80 元 + 余额 20 元)购买 100 元商品。申请全额退款时,退款逻辑先调用余额退款接口(退还 20 元),然后调用现金退款接口(退还 80 元)。但现金退款接口因网络超时返回失败,系统记录退款失败,但实际上余额的 20 元已退给用户,用户凭空获利。
- **根因**: 退款流程未使用分布式事务或 TCC 模式,分步调用外部接口出现部分成功时无法回滚。
- **防御用例**: `验证混合支付全额退款时,若现金退款接口调用失败,系统应能自动回滚已退的余额部分,或保持整体失败状态,绝不出现部分退款成功`
### 缺陷 ID: BUG-202403-11
- **模块**: 价格篡改
- **描述**: 用户将商品加入购物车后,通过浏览器开发者工具修改页面中某个商品的“单价” DOM 元素(从 100 改为 0.01),提交订单时后端未校验单价,直接使用前端传回的 0.01 元创建支付单,用户以 1 分钱买走商品。
- **根因**: 下单接口设计时错误地将商品单价作为可信任的入参,未从商品中心重新获取真实单价。
- **防御用例**: `验证所有与金额、价格、数量相关的核心字段(单价、总价、运费等)均不能信任前端传入,下单时后端必须独立从商品库/价格服务中重新获取并计算`
### 缺陷 ID: BUG-202403-20
- **模块**: 重复支付
- **描述**: 用户在支付网关点击“确认支付”按钮后,由于网络延迟前端未收到回调,用户连续点击 3 次,系统生成了 3 个相同的支付请求(同一订单号),三方支付渠道返回 3 个不同的交易单号,且订单系统最终对同一订单进行了 3 次金额累加,多收了用户 2 份钱。
- **根因**: 支付接口未做幂等性校验,允许同一订单号多次发起支付请求并修改订单状态。
- **防御用例**: `验证同一订单号在 1 秒内收到 5 次相同支付请求,后端仅处理第一次请求,后续请求直接返回“处理中”或“重复请求”,订单状态不被多次累加`
### 缺陷 ID: BUG-202404-02
- **模块**: 积分与现金互转
- **描述**: 活动期间积分可抵扣现金(100 积分 = 1 元)。用户下单时使用 5000 积分抵扣 50 元,订单总金额 100 元,实付 50 元。后续用户申请全额退款,系统退还了 5000 积分 + 50 元现金,相当于积分被重复退还(原积分未核销),用户用 0 成本套取 50 元现金。
- **根因**: 退款时未先扣回已使用的积分(或积分已被消耗),而是直接重新发放等额积分。
- **防御用例**: `验证使用积分抵扣部分现金后,申请退款时应先原路返还积分(若积分未过期)或按比例折算成现金,确保平台不产生额外资产损失`
+1 -1
View File
@@ -1,4 +1,4 @@
# 营销叠加互斥规定
# 营销叠加互斥规定--该项目暂时不需要
> 核心业务规则,生成用例时**严禁**违反以下逻辑(以 `/zanmall_order/order/confirm` + `/zanmall_order/order/submit` 当前代码为准):
@@ -0,0 +1,37 @@
# 货源优秀用例范式
> 适用于平台端货源配置、列表管理、状态流转展示需求。
> 重点不是照抄标题,而是学习以下覆盖结构:后台正向成功链路、后台失败/限制链路、选择弹窗交互、端间数据隔离、状态拆分、幂等与并发。
## 推荐覆盖框架
1. 后台列表能力
- 列表字段
- 默认排序与分页
- 搜索、筛选、重置、空结果提示
- 状态与操作栏映射
2. 后台配置能力
- 新建成功
- 编辑成功
- 时间/名称/奖品等失败态
- 失效、删除、查看只读
3. 选择弹窗能力
- 刷新
- 搜索
- 字段展示
- 分页
- 排序
- 单选/多选反馈
- 数据归属范围
## 示例用例
| 用例编号 | 模块 | 用例标题 | 优先级 | 类型 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 | 备注 |
| :---------- | :----------------------- | :------------------------------- | :----- | :------- | :------------------------------------------ | :----------------------------------------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :--- |
| MKT_ACT_001 | 平台端-货源管理-货源配置 | 验证平台端新建合法货源可保存成功 | P0 | 功能测试 | 平台运营账号已登录;存在 1 个符合条件的货主 | 1. 点击新建货源<br>2. 填写装卸货地、货物、价格等字段<br>3. 点击确定保存<br>4. 进入详情查看 | 装货地址=云南省昆明市五华区人民政府;卸货地址=云南省曲靖市马龙区人民政府;货物名称=钢材;运输单价=1 | 1. 进入新建活动页<br>2. 所有数据填入正常,展示正确<br>3. 页面提示保存成功并跳转活动列表页并刷新列表<br>4. 详情页展示与保存内容一致,后台主表和资源明细表正确落库 | 示例 |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |