SOP-101:政策标签创建 E2E 测试

支持复制到 Excel 的标准 SOP 模板;每个 任务(Task ID) 表示一个可打卡的子文档,便于人工/机器按照序号完成并记录进度。

文档元数据

  • 文档类型:SOP / Checklist
  • 适用场景http://localhost:3000/crm/order 订单管理界面 + 政策标签创建流程
  • 创建者:QA / 自动化工程
  • 最近更新时间:2025-12-22
  • 相关接口定义core/openapi/crm.swagger.jsonOrderServicePolicyLabelService 模块

业务说明

政策标签创建方式:政策标签通过订单中的政策类产品来创建。当订单中包含服务类型为"政策"的产品时,提交订单后系统会自动创建政策标签并触发相应的审批工作流。

关键概念: - 政策产品:产品/服务中服务类型为"政策"的产品(如:全国-自运营政策、全国-代运营政策等) - 政策标签:订单中政策产品的实例,需要经过审批流程才能生效 - 审批流程:部门审批 → 经理审批 → 总监审批 → 抄送 → 财务审批 → 生效

前置条件

条件 检查方式
本地或测试环境可访问 http://localhost:3000/crm/order 浏览器打开,页面未返回 500/404
已使用有订单权限的用户登录 登录接口/前端登录流程成功,能加载左侧导航
测试客户准备就绪 确认客户列表中存在可用的测试客户
政策产品已配置 产品/服务中存在可用的政策类产品
审批人配置完整 部门负责人、经理、总监、财务等审批人账号可用

任务矩阵(Excel Checklist 行模板)

每个任务独立一个表格,依次执行并记录状态;状态列可直接粘贴到 Excel 以打勾 [ ][x]

任务 T1:环境与账号验证

入口:http://localhost:3000/crm/order

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:打开浏览器 浏览器启动成功 浏览器窗口打开 屏幕截图 [ ] 步骤 2
步骤2:输入 URL http://localhost:3000/crm/order 页面开始加载 地址栏显示正确 URL 屏幕截图 [ ] 步骤 3
步骤3:登录 账号/密码 登录成功,跳转到主页 左侧导航栏显示 屏幕截图、浏览器日志 [ ] 步骤 4
步骤4:导航到「订单」 点击左侧「订单」菜单或直接访问订单页面 页面成功加载、显示订单列表表格、无 500 错误 UI:存在标题「订单列表」、表格;Console:无错误 屏幕截图、浏览器日志 [ ] T2

订单列表页面

图:订单列表页面,显示未提交订单、正式订单、批量订单三个选项卡

任务 T2:创建订单并选择客户

前置条件:T1 成功且当前在订单列表页面

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:点击「创建订单」按钮 弹出创建订单对话框 对话框显示,标题为「创建订单」 屏幕截图 [ ] 步骤 2
步骤2:选择客户 客户下拉框选择测试客户(如:测试5) 客户成功选择,客户资料自动填充 下拉框显示所选客户,客户资料区域显示客户简称、负责人、联系电话等信息 屏幕截图 [ ] 步骤 3
步骤3:选择销售 销售下拉框选择销售人员 销售成功选择 下拉框显示所选销售 屏幕截图 [ ] 步骤 4
步骤4:选择部门 部门下拉框选择部门 部门成功选择 下拉框显示所选部门 屏幕截图 [ ] T3

创建订单表单

图:创建订单表单,显示选择客户、销售、部门以及客户资料自动填充

已选择客户的订单表单

图:已选择客户的订单表单,客户资料已自动填充

任务 T3:添加政策产品

前置条件:T2 成功,订单表单已填写基本信息

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:点击「+ 添加产品」按钮 弹出添加产品对话框 对话框显示,标题为「添加产品」,显示产品分类和产品列表 屏幕截图 [ ] 步骤 2
步骤2:浏览政策产品分类 查看产品分类:2024年头条政策、2024年腾讯政策、2024年快手政策Q1、其他 产品分类正确显示 产品分类列表显示,可点击展开 屏幕截图 [ ] 步骤 3
步骤3:选择政策产品 勾选政策产品复选框(如:CP20241208-0044 全国-自运营政策) 产品复选框被勾选 复选框显示为选中状态 屏幕截图 [ ] 步骤 4
步骤4:点击「确认」按钮 弹出产品配置对话框 对话框显示产品名称、折扣率滑块、备注输入框 屏幕截图 [ ] 步骤 5
步骤5:设置折扣率 使用滑块调整折扣率(如:2.5%) 折扣率成功设置 滑块位置和数值显示正确 屏幕截图 [ ] 步骤 6
步骤6:填写备注(可选) 备注:测试政策标签创建 备注成功填写 输入框显示备注内容 屏幕截图 [ ] 步骤 7
步骤7:点击「添加」按钮 产品添加到订单产品列表,对话框关闭 订单表单中的产品列表显示新添加的产品,服务类型显示为「政策」(蓝色标签) 屏幕截图 [ ] T4

添加产品对话框

图:添加产品对话框,显示政策产品分类和产品列表

产品已选中

图:选中政策产品后的状态

产品配置对话框

图:产品配置对话框,设置折扣率和备注

政策产品类型说明

产品类型 服务类型标签 说明
政策产品 政策(蓝色) 用于创建政策标签,提交后触发审批流程
普通服务 服务(绿色) 普通服务产品,不触发政策审批流程

任务 T4:确认产品并提交订单

前置条件:T3 成功,政策产品已添加到订单

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:验证产品列表 查看订单表单中的产品列表 产品列表显示已添加的政策产品,服务类型为「政策」(蓝色标签) 产品列表中存在政策产品,服务类型标签正确 屏幕截图 [ ] 步骤 2
步骤2:记录产品信息 记录产品 ID、名称、折扣率等信息 信息已记录 笔记/剪贴板 文本记录 [ ] 步骤 3
步骤3:上传打款证明(可选) 上传打款证明截图 图片成功上传 预览区域显示上传的图片 屏幕截图 [ ] 步骤 4
步骤4:上传合同(可选) 上传合同 PDF 文件 合同成功上传 上传区域显示文件名 屏幕截图 [ ] 步骤 5
步骤5:点击「提交订单」按钮 订单提交成功,对话框关闭,订单列表刷新 显示成功提示,订单列表中出现新订单 截图 + 系统提示 [ ] T5

产品已添加到订单

图:产品已添加到订单,显示服务类型为"政策"的蓝色标签

任务 T5:验证政策标签创建

前置条件:T4 成功,订单已提交

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:查看订单详情 点击订单列表中的订单编号 显示订单详情页面 订单详情页面加载,显示订单信息和产品列表 屏幕截图 [ ] 步骤 2
步骤2:确认政策标签状态 查看订单中政策产品的状态 政策标签状态为「待审批」或「审批中」 产品列表中政策产品显示相应状态 屏幕截图 [ ] 步骤 3
步骤3:导航到工作流模块 点击左侧「工作流」菜单 显示工作流列表 工作流列表页面加载 屏幕截图 [ ] 步骤 4
步骤4:查找政策标签工作流 搜索或筛选最新的政策标签工作流 找到对应的政策标签审批流程 工作流列表中显示相关流程,状态为「进行中」 屏幕截图 [ ] T6

任务 T6:政策标签审批流程(示例)

前置条件:T5 成功,政策标签工作流已创建

注意:此任务展示审批流程的示例步骤。实际审批流程可能因配置而异,具体流程参见工作流配置文件 policy_label_create_prod.yaml

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:部门领导审批 登录部门领导账号,查看待办,点击「批准」 审批成功,流程进入下一环节 显示成功提示,流程状态更新 屏幕截图 [ ] 步骤 2
步骤2:经理审批 登录经理账号,查看待办,点击「批准」 审批成功,流程进入下一环节 显示成功提示,流程状态更新 屏幕截图 [ ] 步骤 3
步骤3:总监审批 登录总监账号,查看待办,点击「批准」 审批成功,流程进入下一环节 显示成功提示,流程状态更新 屏幕截图 [ ] 步骤 4
步骤4:财务审批 登录财务账号,查看待办,点击「批准」 审批成功,流程完成,政策标签生效 显示成功提示,流程状态变为「已完成」 屏幕截图 [ ] T7

任务 T7:验证政策标签生效

前置条件:T6 成功,审批流程已完成

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:查看工作流详情 打开工作流详情页面 工作流状态为「已完成」 工作流详情页面显示完整审批链路 屏幕截图 [ ] 步骤 2
步骤2:查看订单状态 返回订单详情页面 订单中政策产品状态更新为「已生效」 产品列表中政策产品显示「已生效」状态 屏幕截图 [ ] 步骤 3
步骤3:验证政策标签可用 在系统中查找该政策标签 政策标签在系统中可用,可以应用到相关业务 政策标签列表显示新创建的标签 屏幕截图 [ ]

API 参考(必须遵循的接口)

接口 方法 说明 关键字段 & 数据格式
/api/v1/orders POST 创建订单 body 需要 coreCreateOrderRequest 定义,包含:
- customerId(integer):客户 ID
- sellerId(integer):销售 ID
- departmentId(integer):部门 ID
- orderItems(array):订单项列表,每项包含:
  - productId(integer):产品 ID
  - quantity(integer):数量
  - discountRate(number):折扣率
  - remark(string):备注
/api/v1/orders/{orderId} GET 获取订单详情 通过订单 ID 获取完整订单信息,包含订单项、政策标签状态等
/api/v1/orders GET 订单列表 可通过 filterspageSizepageNumber 查询订单列表
/api/v1/products GET 产品列表 获取可用产品列表,可通过 type 参数筛选政策产品(type=policy)
/api/v1/policy-labels GET 政策标签列表 获取政策标签列表,可通过 orderId 查询指定订单的政策标签
/api/v1/workflows GET 工作流列表 获取工作流列表,可通过 type 参数筛选政策标签审批流程

参见完整定义:core/openapi/crm.swagger.jsondefinitions 下相关定义

订单对象字段说明(coreOrder)

字段名 类型 必填 说明
id integer 否(自动生成) 订单 ID
no string 否(自动生成) 订单编号(如 DD20251221-0001)
customerId integer 客户 ID
sellerId integer 销售 ID
departmentId integer 部门 ID
orderItems array 订单项列表
totalAmount number 否(自动计算) 订单总金额
status string 否(自动设置) 订单状态

订单项字段说明(coreOrderItem)

字段名 类型 必填 说明
id integer 否(自动生成) 订单项 ID
orderId integer 否(自动关联) 订单 ID
productId integer 产品 ID
productName string 否(自动填充) 产品名称
productType string 否(自动填充) 产品类型(service/policy)
quantity integer 数量(默认 1)
discountRate number 折扣率(百分比)
remark string 备注
policyLabelId integer 否(政策产品自动生成) 关联的政策标签 ID

进度采集模板(机器辅助/人手填报)

Task ID Status Evidence Operator Timestamp Notes
T1 [ ] / [x] screen-T1.png qa-bot 2025-12-22T09:00:00 "登录成功"
T2 [ ] / [x] screen-T2.png qa-zhang 2025-12-22T09:03:00 "客户已选择"
T3 [ ] / [x] screen-T3.png qa-zhang 2025-12-22T09:05:00 "政策产品已添加"
T4 [ ] / [x] screen-T4.png qa-zhang 2025-12-22T09:06:00 "订单已提交"
T5 [ ] / [x] screen-T5.png qa-bot 2025-12-22T09:08:00 "政策标签已创建"
T6 [ ] / [x] screen-T6.png qa-zhang 2025-12-22T09:15:00 "审批流程完成"
T7 [ ] / [x] screen-T7.png qa-bot 2025-12-22T09:20:00 "政策标签已生效"

Tip:监控系统可定时读取 Task ID + Status 列;每次 status 变更都写入对应 EvidenceTimestamp 以供追踪。

异常与恢复

  • 页面未加载:确认后端服务运行 gateway + core;查看浏览器 ConsoleNetwork 500/401;记录 Request ID 并换账号重试。
  • 创建订单失败:记录 toast 错误、截图,检查客户、销售、部门是否正确选择;查看 API 响应错误信息。
  • 产品列表为空:确认产品/服务模块中存在可用的政策产品;检查产品配置和状态。
  • 政策产品无法添加:检查产品的服务类型是否为"政策";确认产品状态为"启用"。
  • 订单提交后无工作流:检查政策产品配置是否正确;确认工作流配置文件 policy_label_create_prod.yaml 是否正确部署。
  • 审批流程异常:检查审批人账号和权限;查看工作流日志和错误信息。

测试数据示例

成功案例

创建订单请求

{
  "order": {
    "customerId": 123,
    "sellerId": 456,
    "departmentId": 789,
    "orderItems": [
      {
        "productId": 1043,
        "quantity": 1,
        "discountRate": 2.5,
        "remark": "测试政策标签创建"
      }
    ]
  }
}

预期响应

{
  "id": 12345,
  "no": "DD20251222-0001",
  "customerId": 123,
  "sellerId": 456,
  "departmentId": 789,
  "orderItems": [
    {
      "id": 54321,
      "productId": 1043,
      "productName": "全国-自运营政策",
      "productType": "policy",
      "quantity": 1,
      "discountRate": 2.5,
      "remark": "测试政策标签创建",
      "policyLabelId": 67890
    }
  ],
  "status": "submitted"
}

失败案例

案例一:缺少必填字段

{
  "order": {
    "customerId": 123
  }
}

预期:API 返回 400 错误,提示缺少必填字段 sellerIddepartmentId

案例二:产品不存在

{
  "order": {
    "customerId": 123,
    "sellerId": 456,
    "departmentId": 789,
    "orderItems": [
      {
        "productId": 99999,
        "quantity": 1
      }
    ]
  }
}

预期:API 返回 404 错误,提示产品不存在。

附录:Checklist 导出格式

Task ID,Task Name,Status,Evidence,Operator,Notes
T1,环境与账号验证,[ ],screen-T1.png,qa-bot,"login ok"
T2,创建订单并选择客户,[ ],screen-T2.png,qa-bot,"customer selected"
T3,添加政策产品,[ ],screen-T3.png,qa-zhang,"policy product added"
T4,确认产品并提交订单,[ ],screen-T4.png,qa-zhang,"order submitted"
T5,验证政策标签创建,[ ],screen-T5.png,qa-bot,"policy label created"
T6,政策标签审批流程,[ ],screen-T6.png,qa-zhang,"approval completed"
T7,验证政策标签生效,[ ],screen-T7.png,qa-bot,"policy label activated"

直接复制上述 CSV/Excel 内容可实现标准化追踪。

相关文档