| 环境 | URL | 说明 |
|---|---|---|
| 开发环境 | https://dev-api.sanqiang.com |
开发测试使用 |
| 测试环境 | https://test-api.sanqiang.com |
集成测试使用 |
| 预生产环境 | https://pre-api.sanqiang.com |
预发布验证 |
| 生产环境 | https://api.sanqiang.com |
正式环境 |
| 角色 | 用户名 | 密码 | 区域 | 说明 |
|---|---|---|---|---|
| 运营管理员 | admin | admin123 | - | 超级管理员 |
| 运营人员 | operator01 | test123456 | 城东区域 | 普通运营 |
| 供应商 | supplier001 | test123456 | 城东区域 | 供应商账号 |
| 客户 | client001 | test123456 | 城东区域 | 客户账号 |
| 配送员 | deliver001 | test123456 | 城东区域 | 配送员账号 |
用例编号: API-模块-序号
用例名称: [接口名称]
前置条件: 执行该用例的前置条件
测试步骤: 详细的操作步骤
预期结果: 期望的返回结果
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-001 |
| 用例名称 | Web端正常登录 |
| 前置条件 | 用户账号已存在且状态正常 |
| 测试步骤 | 1. 构造登录请求 {username: "admin", password: "admin123"}2. POST 到 /api/web/auth/login3. 检查响应状态码和返回数据 |
| 请求参数 | username=adminpassword=admin123 |
| 预期结果 | 1. HTTP状态码:200 2. 返回token和refreshToken 3. userInfo中包含正确的用户信息 4. token有效期为7200秒 |
| 测试数据 | username: admin, password: admin123 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-002 |
| 用例名称 | Web端登录-密码错误 |
| 前置条件 | 用户账号存在 |
| 测试步骤 | 1. 构造登录请求 {username: "admin", password: "wrongpass"}2. POST 到 /api/web/auth/login3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:401 2. code: 401 3. message: "用户名或密码错误" |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-003 |
| 用例名称 | Web端登录-账号不存在 |
| 前置条件 | 无 |
| 测试步骤 | 1. 构造登录请求 {username: "notexist", password: "anypass"}2. POST 到 /api/web/auth/login3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:401 2. code: 401 3. message: "用户名或密码错误" |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-004 |
| 用例名称 | Web端登录-账号已禁用 |
| 前置条件 | 存在一个已禁用的账号 user_disabled |
| 测试步骤 | 1. 构造登录请求 {username: "user_disabled", password: "test123"}2. POST 到 /api/web/auth/login3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:403 2. code: 403 3. message: "账号已被禁用" |
| 优先级 | P1 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-005 |
| 用例名称 | 小程序端登录 |
| 前置条件 | 客户/供应商/配送员账号存在 |
| 测试步骤 | 1. 构造登录请求 {username: "client001", password: "test123456"}2. POST 到 /api/mini/auth/login3. 检查响应数据 |
| 预期结果 | 1. HTTP状态码:200 2. 返回token和用户信息 3. userInfo中包含regionId和regionName |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-006 |
| 用例名称 | 登录-缺少必填参数 |
| 前置条件 | 无 |
| 测试步骤 | 1. 构造请求 {username: "admin"}(缺少password)2. POST 到 /api/web/auth/login3. 检查参数校验响应 |
| 预期结果 | 1. HTTP状态码:400 2. code: 400 3. message: "缺少必填参数: password" |
| 优先级 | P1 |
| 测试类型 | 参数校验测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-007 |
| 用例名称 | 登录-参数格式错误 |
| 前置条件 | 无 |
| 测试步骤 | 1. 构造请求 {username: 123, password: "test"}(username类型错误)2. POST 到 /api/web/auth/login3. 检查参数校验响应 |
| 预期结果 | 1. HTTP状态码:400 2. code: 400 3. message包含"参数类型错误" |
| 优先级 | P1 |
| 测试类型 | 参数校验测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-008 |
| 用例名称 | 刷新Token-正常 |
| 前置条件 | 存在有效的refreshToken |
| 测试步骤 | 1. 使用登录获取的refreshToken 2. POST 到 /api/web/auth/refresh-token3. 检查新token |
| 预期结果 | 1. HTTP状态码:200 2. 返回新的token和refreshToken |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-009 |
| 用例名称 | 刷新Token-Token过期 |
| 前置条件 | 使用过期的refreshToken |
| 测试步骤 | 1. 使用已过期的refreshToken 2. POST 到 /api/web/auth/refresh-token3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:401 2. code: 401 3. message: "refreshToken已过期,请重新登录" |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-010 |
| 用例名称 | 获取当前用户信息 |
| 前置条件 | 已登录并获取有效token |
| 测试步骤 | 1. 使用有效token 2. GET /api/web/auth/current-user3. 检查用户信息 |
| 预期结果 | 1. HTTP状态码:200 2. 返回完整的用户信息 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-011 |
| 用例名称 | 无Token访问需认证接口 |
| 前置条件 | 无token |
| 测试步骤 | 1. 不携带Authorization头 2. GET /api/web/auth/current-user3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:401 2. code: 401 3. message: "未授权,请先登录" |
| 优先级 | P0 |
| 测试类型 | 安全测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-012 |
| 用例名称 | Token格式错误 |
| 前置条件 | 无 |
| 测试步骤 | 1. 使用格式错误的token Authorization: Bearer invalid_token2. GET /api/web/auth/current-user3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:401 2. code: 401 3. message: "无效的Token" |
| 优先级 | P0 |
| 测试类型 | 安全测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-013 |
| 用例名称 | 修改密码-正常修改 |
| 前置条件 | 用户已登录 |
| 测试步骤 | 1. POST /api/web/user/change-password2. {oldPassword: "admin123", newPassword: "newpass123"}3. 使用新密码验证登录 |
| 预期结果 | 1. 修改成功 2. 新密码可以正常登录 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-014 |
| 用例名称 | 修改密码-原密码错误 |
| 前置条件 | 用户已登录 |
| 测试步骤 | 1. POST /api/web/user/change-password2. {oldPassword: "wrongpass", newPassword: "newpass123"}3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "原密码错误" |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-015 |
| 用例名称 | 修改密码-新密码不符合复杂度 |
| 前置条件 | 用户已登录 |
| 测试步骤 | 1. POST /api/web/user/change-password2. {oldPassword: "admin123", newPassword: "123"}3. 检查参数校验响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "密码长度不能少于6位" |
| 优先级 | P1 |
| 测试类型 | 参数校验测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-016 |
| 用例名称 | 创建用户-正常创建 |
| 前置条件 | 运营人员已登录 |
| 测试步骤 | 1. POST /api/web/users2. {username: "newuser", realName: "新用户", phone: "13800000001", role: "client", regionId: "REGION_001"}3. 检查创建结果 |
| 预期结果 | 1. HTTP状态码:200 2. 返回用户ID和初始密码 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-017 |
| 用例名称 | 创建用户-用户名重复 |
| 前置条件 | 已存在用户名为 "admin" |
| 测试步骤 | 1. POST /api/web/users2. {username: "admin", realName: "测试", phone: "13800000001", role: "client"}3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:409 2. code: 409 3. message: "用户名已存在" |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-018 |
| 用例名称 | 创建用户-角色不属于该端 |
| 前置条件 | 运营人员已登录 |
| 测试步骤 | 1. POST /api/web/users2. {username: "newadmin", realName: "新管理员", phone: "13800000001", role: "admin"}3. 检查响应 |
| 预期结果 | 允许创建(运营可创建所有角色)或返回相应错误 |
| 优先级 | P1 |
| 测试类型 | 权限测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-019 |
| 用例名称 | 获取用户列表-分页查询 |
| 前置条件 | 存在多个用户 |
| 测试步骤 | 1. GET /api/web/users?page=1&pageSize=102. 检查分页返回 |
| 预期结果 | 1. 返回list、total、page、pageSize、totalPages 2. list中包含用户信息 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-020 |
| 用例名称 | 获取用户列表-按角色筛选 |
| 前置条件 | 存在多种角色用户 |
| 测试步骤 | 1. GET /api/web/users?role=supplier2. 检查返回数据 |
| 预期结果 | 只返回供应商角色的用户 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-021 |
| 用例名称 | 获取用户列表-关键词搜索 |
| 前置条件 | 存在用户名为 "张三" 的用户 |
| 测试步骤 | 1. GET /api/web/users?keyword=张三2. 检查返回数据 |
| 预期结果 | 返回包含"张三"的用户 |
| 优先级 | P1 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-022 |
| 用例名称 | 更新用户信息 |
| 前置条件 | 存在目标用户 |
| 测试步骤 | 1. PUT /api/web/users/{userId}2. {realName: "新姓名", phone: "13900000001"}3. 验证更新结果 |
| 预期结果 | 用户信息已更新 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-023 |
| 用例名称 | 删除用户-软删除 |
| 前置条件 | 存在目标用户 |
| 测试步骤 | 1. DELETE /api/web/users/{userId}2. 查询用户列表 3. 尝试用该账号登录 |
| 预期结果 | 1. 删除成功 2. 用户列表不显示该用户 3. 登录失败 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-USER-024 |
| 用例名称 | 重置密码 |
| 前置条件 | 存在目标用户 |
| 测试步骤 | 1. POST /api/web/user/reset-password/{userId}2. 检查返回的新密码 3. 使用新密码登录 |
| 预期结果 | 1. 返回随机生成的新密码 2. 新密码可以正常登录 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-001 |
| 用例名称 | 订单预览 |
| 前置条件 | 客户已登录,存在有效的价格清单 |
| 测试步骤 | 1. POST /api/mini/client/orders/preview2. {priceListId: "PL_001", items: [{productId: "PROD_001", quantity: 10}], addressId: "ADDR_001"}3. 检查预览结果 |
| 预期结果 | 1. 返回订单预览信息 2. 包含商品明细、总金额、收货地址 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-002 |
| 用例名称 | 创建订单-正常创建 |
| 前置条件 | 客户已登录,存在有效的价格清单和收货地址 |
| 测试步骤 | 1. POST /api/mini/client/orders2. 传入完整的订单信息 3. 检查订单创建结果 |
| 预期结果 | 1. 返回订单ID和订单号 2. 初始状态为 pending_payment |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-003 |
| 用例名称 | 创建订单-价格版本已失效 |
| 前置条件 | 使用已失效的价格清单 |
| 测试步骤 | 1. POST /api/mini/client/orders2. 使用失效的priceListId 3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. code: 1001 3. message: "价格版本已过期" |
| 优先级 | P0 |
| 测试类型 | 业务规则测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-004 |
| 用例名称 | 创建订单-商品库存不足 |
| 前置条件 | 商品库存不足 |
| 测试步骤 | 1. POST /api/mini/client/orders2. 传入超过库存的数量 3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. code: 1004 3. message: "商品库存不足" |
| 优先级 | P1 |
| 测试类型 | 业务规则测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-005 |
| 用例名称 | 创建订单-缺少必填参数 |
| 前置条件 | 客户已登录 |
| 测试步骤 | 1. POST /api/mini/client/orders2. 缺少addressId 3. 检查参数校验响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "缺少必填参数" |
| 优先级 | P1 |
| 测试类型 | 参数校验测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-006 |
| 用例名称 | 从购物车创建订单 |
| 前置条件 | 客户已登录,购物车中有商品 |
| 测试步骤 | 1. POST /api/mini/client/orders/from-cart2. 传入cartIds和addressId 3. 检查订单创建结果 |
| 预期结果 | 1. 订单创建成功 2. 购物车中对应商品被清除 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-007 |
| 用例名称 | 客户获取订单列表 |
| 前置条件 | 客户存在订单 |
| 测试步骤 | 1. GET /api/mini/client/orders2. 检查返回数据 |
| 预期结果 | 1. 只返回当前客户的订单 2. 分页正确 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-008 |
| 用例名称 | 客户按状态筛选订单 |
| 前置条件 | 客户存在多种状态的订单 |
| 测试步骤 | 1. GET /api/mini/client/orders?status=pending_payment2. 检查返回数据 |
| 预期结果 | 只返回待支付状态的订单 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-009 |
| 用例名称 | 获取订单详情 |
| 前置条件 | 订单存在 |
| 测试步骤 | 1. GET /api/mini/client/orders/{orderId}2. 检查详情信息 |
| 预期结果 | 返回完整的订单详情,包含商品明细、状态日志等 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-010 |
| 用例名称 | 查看他人订单-权限验证 |
| 前置条件 | 存在其他客户的订单 |
| 测试步骤 | 1. 使用当前客户token 2. GET 其他客户的订单详情 3. 检查权限响应 |
| 预期结果 | 1. HTTP状态码:403 2. code: 403 3. message: "无权限访问该订单" |
| 优先级 | P0 |
| 测试类型 | 安全测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-011 |
| 用例名称 | 客户直接取消未支付订单 |
| 前置条件 | 存在待支付订单 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/direct-cancel2. {reason: "不想要了"}3. 检查订单状态 |
| 预期结果 | 1. 订单状态变为 cancelled 2. 不产生退款 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-012 |
| 用例名称 | 客户发起取消申请 |
| 前置条件 | 存在已支付订单 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/cancel2. {reason: "不想要了"}3. 检查订单状态 |
| 预期结果 | 1. 订单状态变为 pending_review_cancel 2. 需要运营审核 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-013 |
| 用例名称 | 取消已配送订单 |
| 前置条件 | 存在配送中订单 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/cancel2. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "当前状态不允许取消" |
| 优先级 | P0 |
| 测试类型 | 业务规则测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-014 |
| 用例名称 | 发起微信支付 |
| 前置条件 | 存在待支付订单 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/wechat-pay2. 检查返回的支付参数 |
| 预期结果 | 返回微信支付所需的签名参数 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-015 |
| 用例名称 | 支付已完成订单 |
| 前置条件 | 存在已支付订单 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/wechat-pay2. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "订单已支付" |
| 优先级 | P0 |
| 测试类型 | 业务规则测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-016 |
| 用例名称 | 客户确认收货 |
| 前置条件 | 存在待确认收货的订单 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/confirm-receive2. 检查订单状态 |
| 预期结果 | 1. 订单状态变为 completed 2. 记录 completed_time |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-017 |
| 用例名称 | 运营获取订单列表 |
| 前置条件 | 运营人员已登录 |
| 测试步骤 | 1. GET /api/web/orders2. 检查返回数据 |
| 预期结果 | 返回所有区域的订单(运营可查看全部) |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-018 |
| 用例名称 | 运营按区域筛选订单 |
| 前置条件 | 运营人员已登录 |
| 测试步骤 | 1. GET /api/web/orders?regionId=REGION_0012. 检查返回数据 |
| 预期结果 | 只返回指定区域的订单 |
| 优先级 | P1 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-019 |
| 用例名称 | 运营审核取消申请-同意 |
| 前置条件 | 存在待审核取消的订单 |
| 测试步骤 | 1. POST /api/web/orders/{orderId}/review-cancel2. {approved: true, reviewNote: "同意取消"}3. 检查订单状态 |
| 预期结果 | 1. 订单状态变为 cancelled 2. 如已支付,触发退款流程 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-020 |
| 用例名称 | 运营审核取消申请-驳回 |
| 前置条件 | 存在待审核取消的订单 |
| 测试步骤 | 1. POST /api/web/orders/{orderId}/review-cancel2. {approved: false, reviewNote: "拒绝取消"}3. 检查订单状态 |
| 预期结果 | 订单状态恢复为原状态(如 pending_delivery) |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-021 |
| 用例名称 | 运营分配配送 |
| 前置条件 | 存在待分配配送的订单 |
| 测试步骤 | 1. POST /api/web/orders/{orderId}/assign-delivery2. {deliverId: "USER_050"}3. 检查分配结果 |
| 预期结果 | 1. 订单状态变为 delivering 2. 创建配送任务 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-022 |
| 用例名称 | 运营调整订单-减量 |
| 前置条件 | 存在配送中的订单 |
| 测试步骤 | 1. POST /api/web/orders/{orderId}/adjust2. {items: [{orderItemId: "ITEM_001", quantity: 8, status: "reduced"}], reason: "部分缺货"}3. 检查调整结果 |
| 预期结果 | 1. 订单金额重新计算 2. 如有差额,生成退款记录 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-023 |
| 用例名称 | 运营调整订单-订单已锁定 |
| 前置条件 | 订单被其他运营锁定 |
| 测试步骤 | 1. 尝试调整已锁定的订单 2. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:409 2. code: 1002 3. message: "订单已被锁定" |
| 优先级 | P0 |
| 测试类型 | 并发测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-024 |
| 用例名称 | 订单锁定与解锁 |
| 前置条件 | 存在目标订单 |
| 测试步骤 | 1. POST /api/web/orders/{orderId}/lock2. 验证锁定状态 3. POST /api/web/orders/{orderId}/unlock4. 验证解锁状态 |
| 预期结果 | 1. 锁定后其他用户无法操作 2. 解锁后恢复可操作状态 |
| 优先级 | P1 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-025 |
| 用例名称 | 客户催单 |
| 前置条件 | 存在配送中的订单 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/urge2. 检查催单结果 |
| 预期结果 | 1. 返回催单次数 2. 发送通知给运营和配送员 |
| 优先级 | P1 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ORDER-026 |
| 用例名称 | 超出催单次数限制 |
| 前置条件 | 当天已催单3次 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/urge2. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. code: 1005 3. message: "超出催单次数限制" |
| 优先级 | P1 |
| 测试类型 | 业务规则测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-001 |
| 用例名称 | 运营分配配送任务 |
| 前置条件 | 存在待分配的订单 |
| 测试步骤 | 1. POST /api/web/delivery-tasks/assign2. {orderId: "ORDER_001", deliverId: "USER_050"}3. 检查分配结果 |
| 预期结果 | 1. 创建配送任务 2. 返回任务ID和任务号 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-002 |
| 用例名称 | 批量分配配送任务 |
| 前置条件 | 存在多个待分配的订单 |
| 测试步骤 | 1. POST /api/web/delivery-tasks/assign-batch2. 传入多个分配任务 3. 检查批量分配结果 |
| 预期结果 | 所有任务分配成功 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-003 |
| 用例名称 | 分配给不存在的配送员 |
| 前置条件 | 无 |
| 测试步骤 | 1. POST /api/web/delivery-tasks/assign2. 使用不存在的deliverId 3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "配送员不存在" |
| 优先级 | P1 |
| 测试类型 | 参数校验测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-004 |
| 用例名称 | 配送员获取待取货任务 |
| 前置条件 | 配送员已登录 |
| 测试步骤 | 1. GET /api/mini/deliverer/tasks?status=pending2. 检查返回数据 |
| 预期结果 | 1. 只返回待取货状态的任务 2. 只返回当前配送员的任务 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-005 |
| 用例名称 | 配送员确认取货 |
| 前置条件 | 存在待取货的配送任务 |
| 测试步骤 | 1. POST /api/mini/deliverer/tasks/{taskId}/pickup2. {remark: "货物完好", imageUrls: ["url1", "url2"]}3. 检查任务状态 |
| 预期结果 | 1. 任务状态变为 picking 2. 记录取货时间和凭证 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-006 |
| 用例名称 | 配送员确认送达 |
| 前置条件 | 存在配送中的任务 |
| 测试步骤 | 1. POST /api/mini/deliverer/tasks/{taskId}/deliver2. {items: [{taskItemId: "DLV_ITEM_001", deliveredQuantity: 10}], remark: "客户签收"}3. 检查任务状态 |
| 预期结果 | 1. 任务状态变为 completed 2. 关联订单状态更新 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-007 |
| 用例名称 | 部分送达 |
| 前置条件 | 存在配送中的任务 |
| 测试步骤 | 1. POST /api/mini/deliverer/tasks/{taskId}/deliver2. 部分商品 deliveredQuantity 小于 quantity 3. 检查状态变更 |
| 预期结果 | 1. 任务部分完成 2. 订单进入 partial_delivered 状态 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-008 |
| 用例名称 | 配送员申请取消任务 |
| 前置条件 | 存在配送中的任务 |
| 测试步骤 | 1. POST /api/mini/deliverer/tasks/{taskId}/cancel2. {reason: "客户联系不上"}3. 检查任务状态 |
| 预期结果 | 1. 任务状态变为 cancelled 2. 通知运营人员 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-009 |
| 用例名称 | 配送时效预警 |
| 前置条件 | 存在即将超时的配送任务 |
| 测试步骤 | 1. GET /api/web/delivery-tasks/warnings?withinMinutes=602. 检查预警列表 |
| 预期结果 | 返回即将在60分钟内超时的任务 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-010 |
| 用例名称 | 配送员获取时效预警 |
| 前置条件 | 配送员存在即将超时的任务 |
| 测试步骤 | 1. GET /api/mini/deliverer/tasks/warnings2. 检查预警列表 |
| 预期结果 | 只返回当前配送员的预警任务 |
| 优先级 | P1 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-011 |
| 用例名称 | 配送员交班 |
| 前置条件 | 配送员有待交接的任务 |
| 测试步骤 | 1. POST /api/mini/deliverer/handover2. {handoverType: "shift_out", targetDeliverId: "USER_051", taskIds: ["DLV_001", "DLV_002"]}3. 检查交接结果 |
| 预期结果 | 1. 任务转交给接班配送员 2. 返回交接单号 |
| 优先级 | P1 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-012 |
| 用例名称 | 交接给不存在的配送员 |
| 前置条件 | 无 |
| 测试步骤 | 1. POST /api/mini/deliverer/handover2. 使用不存在的 targetDeliverId 3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "接班配送员不存在" |
| 优先级 | P1 |
| 测试类型 | 参数校验测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-013 |
| 用例名称 | 运营获取配送任务列表 |
| 前置条件 | 运营人员已登录 |
| 测试步骤 | 1. GET /api/web/delivery-tasks2. 检查返回数据 |
| 预期结果 | 返回所有区域的配送任务 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-014 |
| 用例名称 | 获取配送任务详情 |
| 前置条件 | 任务存在 |
| 测试步骤 | 1. GET /api/web/delivery-tasks/{taskId}2. 检查详情信息 |
| 预期结果 | 返回完整的任务详情,包含配送明细 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-015 |
| 用例名称 | 供应商确认取货 |
| 前置条件 | 存在待取货的配送任务 |
| 测试步骤 | 1. POST /api/mini/supplier/pickup-tasks/{taskId}/confirm2. {remark: "货物已交接", imageUrls: ["url1"]}3. 检查任务状态 |
| 预期结果 | 1. 任务状态更新 2. 记录确认时间和凭证 |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-016 |
| 用例名称 | 客户评价配送员-正常评价 |
| 前置条件 | 1. 客户已登录 2. 存在一笔属于该客户且状态为 completed 的订单,并已生成配送任务且有配送员 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/deliverer-review2. 请求体: {score: 5, tags: ["服务好","送达快"], content: "配送及时,服务态度好", isAnonymous: false}3. 检查响应与订单详情中的评价信息 |
| 预期结果 | 1. HTTP状态码:200 2. 返回评价ID与score 3. 再次 GET /api/mini/client/orders/{orderId},delivererReview 不为空,且 canReviewDeliverer=false |
| 优先级 | P0 |
| 测试类型 | 功能测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-017 |
| 用例名称 | 客户评价配送员-评分超出范围 |
| 前置条件 | 同 TC-DELIVERY-016 |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/deliverer-review2. 请求体: {score: 0} 或 {score: 6}3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "评分必须在1-5之间" |
| 优先级 | P0 |
| 测试类型 | 参数校验测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-018 |
| 用例名称 | 客户评价配送员-重复评价 |
| 前置条件 | 该订单已成功评价过一次 |
| 测试步骤 | 1. 再次 POST /api/mini/client/orders/{orderId}/deliverer-review2. 使用任意合法请求体 3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "该订单已评价" |
| 优先级 | P1 |
| 测试类型 | 业务规则测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-DELIVERY-019 |
| 用例名称 | 客户评价配送员-非已完成订单评价 |
| 前置条件 | 存在一笔属于该客户但状态不为 completed 的订单(如 delivering) |
| 测试步骤 | 1. POST /api/mini/client/orders/{orderId}/deliverer-review2. 请求体: {score: 5}3. 检查错误响应 |
| 预期结果 | 1. HTTP状态码:400 2. message: "仅已完成订单可评价" |
| 优先级 | P1 |
| 测试类型 | 业务规则测试 |
| 参数类型 | 校验规则 | 错误提示 |
|---|---|---|
| string | 不能为空、null、undefined | "xxx不能为空" |
| number | 不能为null、undefined | "xxx不能为空" |
| array | 不能为空数组 | "xxx不能为空" |
| object | 不能为null、undefined | "xxx不能为空" |
| 字段 | 最小长度 | 最大长度 | 说明 |
|---|---|---|---|
| username | 4 | 20 | 用户名 |
| password | 6 | 20 | 密码 |
| realName | 2 | 50 | 真实姓名 |
| phone | 11 | 11 | 手机号(中国) |
| detailAddress | 5 | 500 | 详细地址 |
| 字段 | 最小值 | 最大值 | 说明 |
|---|---|---|---|
| page | 1 | - | 页码 |
| pageSize | 1 | 100 | 每页条数 |
| quantity | 0.0001 | 999999 | 商品数量 |
| price | 0 | 999999999 | 价格(分) |
| amount | 0 | 999999999999 | 金额(分) |
| 接口 | 参数 | 校验规则 | 错误码 |
|---|---|---|---|
| 登录 | username | 必填,4-20字符 | 400 |
| 登录 | password | 必填,6-20字符 | 400 |
| 创建用户 | username | 必填,4-20字符,唯一 | 400/409 |
| 创建用户 | phone | 必填,11位手机号 | 400 |
| 创建用户 | role | 必填,枚举值 | 400 |
| 修改密码 | oldPassword | 必填,与原密码一致 | 400 |
| 修改密码 | newPassword | 必填,6-20字符,不与原密码相同 | 400 |
| 参数 | 校验规则 | 错误提示 |
|---|---|---|
| contactPerson | 必填,2-20字符 | "联系人不能为空" |
| contactPhone | 必填,11位手机号 | "手机号格式不正确" |
| province | 必填 | "省份不能为空" |
| city | 必填 | "城市不能为空" |
| detailAddress | 必填,5-500字符 | "详细地址不能为空" |
| addressType | 必填,pickup/delivery/both | "地址类型不正确" |
| 参数 | 校验规则 | 错误提示 |
|---|---|---|
| priceListId | 必填,对应价格清单存在且生效 | "价格清单不存在或已失效" |
| items | 必填,非空数组 | "订单商品不能为空" |
| items[].productId | 必填 | "商品ID不能为空" |
| items[].quantity | 必填,大于0,最多4位小数 | "商品数量不正确" |
| addressId | 必填,对应地址存在 | "收货地址不存在" |
| paymentMethod | 必填,wechat/offline | "支付方式不正确" |
| reason | 取消/调整时必填,2-200字符 | "原因不能为空" |
| 参数 | 校验规则 | 错误提示 |
|---|---|---|
| orderId | 必填,对应订单存在且可分配 | "订单不存在或状态不正确" |
| deliverId | 必填,对应配送员存在且可用 | "配送员不存在或不可用" |
| taskIds | 交接时必填,非空数组 | "请选择要交接的任务" |
| remark | 可选,最大200字符 | "备注长度不能超过200字符" |
| imageUrls | 可选,最多10个URL | "图片数量不能超过10张" |
| 参数 | 校验规则 | 错误提示 |
|---|---|---|
| title | 必填,2-100字符 | "询价单标题不能为空" |
| regionId | 必填,对应区域存在 | "区域不存在" |
| productIds | 必填,非空数组 | "请选择询价商品" |
| items[].productId | 必填 | "商品ID不能为空" |
| items[].unitId | 必填 | "单位ID不能为空" |
| items[].price | 必填,大于0,2位小数 | "价格必须大于0" |
| 参数 | 校验规则 | 错误提示 |
|---|---|---|
| effectiveTime | 必填,日期格式,晚于当前时间 | "生效时间必须晚于当前时间" |
| items | 必填,非空数组 | "价格项不能为空" |
| items[].price | 必填,0.01-999999.99 | "价格超出范围" |
| version | 自动递增 | - |
| 操作 | 允许的状态 | 错误提示 |
|---|---|---|
| 支付 | pending_payment | "当前状态不允许支付" |
| 取消(直接) | pending_payment | "当前状态不允许直接取消" |
| 取消(申请) | pending_delivery, delivering, partial_delivered, pending_confirm | "当前状态不允许申请取消" |
| 确认收货 | pending_confirm | "当前状态不允许确认收货" |
| 分配配送 | pending_delivery | "当前状态不允许分配配送" |
| 调整订单 | delivering, partial_delivered | "当前状态不允许调整订单" |
| 操作 | 允许的状态 | 错误提示 |
|---|---|---|
| 取货 | pending | "当前状态不允许取货" |
| 送达 | picking, delivering | "当前状态不允许确认送达" |
| 取消 | pending, picking | "当前状态不允许取消" |
| 交接 | pending, picking | "当前状态不允许交接" |
| 状态码 | 含义 | 使用场景 |
|---|---|---|
| 200 | 成功 | 正常请求成功 |
| 400 | 请求参数错误 | 参数校验失败、格式错误等 |
| 401 | 未授权 | 未登录、Token过期、Token无效 |
| 403 | 无权限 | 权限不足、账号被禁用 |
| 404 | 资源不存在 | 查询的资源不存在 |
| 409 | 资源冲突 | 订单已锁定、数据重复等 |
| 500 | 服务器错误 | 系统内部异常 |
| 错误码 | 说明 | 适用场景 |
|---|---|---|
| 1001 | 价格版本已过期 | 下单时使用的价格版本已失效 |
| 1002 | 订单已被锁定 | 订单被其他用户锁定 |
| 1003 | 配送任务已被接单 | 配送任务已被其他配送员接收 |
| 1004 | 库存不足 | 商品库存无法满足订单需求 |
| 1005 | 超出催单次数限制 | 当天催单次数已达上限(3次) |
| 2001 | 订单状态不允许此操作 | 当前状态不支持该操作 |
| 2002 | 配送任务状态不允许此操作 | 当前状态不支持该操作 |
| 2003 | 询价单状态不允许此操作 | 当前状态不支持该操作 |
| 3001 | 报价已过期 | 提交报价时询价单已关闭 |
| 3002 | 报价时间已截止 | 超出报价截止时间 |
| 4001 | 价格版本正在生效中 | 存在待生效版本,无法发布新版本 |
| 5001 | 退款金额超出已支付金额 | 退款金额大于实际支付 |
| 5002 | 退款处理中 | 退款正在处理中,请勿重复提交 |
{
"code": 400,
"message": "参数校验失败",
"data": null,
"timestamp": 1700000000000,
"errors": [
{
"field": "username",
"message": "用户名不能为空"
},
{
"field": "password",
"message": "密码长度不能少于6位"
}
]
}
{
"code": 400,
"message": "参数校验失败",
"errors": [
{
"field": "phone",
"message": "手机号格式不正确"
}
]
}
{
"code": 1002,
"message": "订单已被锁定",
"data": {
"orderId": "ORDER_001",
"lockOperator": "张三",
"lockTime": "2026-03-19T10:00:00+08:00"
}
}
{
"code": 403,
"message": "无权限访问该资源",
"data": null
}
{
"code": 401,
"message": "Token已过期,请重新登录",
"data": null
}
┌─────────────────┐
│ 请求到达 │
└────────┬────────┘
▼
┌─────────────────┐
│ 参数校验 │──失败──▶ 返回400错误
└────────┬────────┘
│成功
▼
┌─────────────────┐
│ 认证校验 │──失败──▶ 返回401错误
└────────┬────────┘
│成功
▼
┌─────────────────┐
│ 权限校验 │──失败──▶ 返回403错误
└────────┬────────┘
│成功
▼
┌─────────────────┐
│ 业务规则校验 │──失败──▶ 返回业务错误码
└────────┬────────┘
│成功
▼
┌─────────────────┐
│ 业务处理 │──失败──▶ 返回500错误
└────────┬────────┘
│成功
▼
┌─────────────────┐
│ 返回成功响应 │
└─────────────────┘
| 级别 | 记录内容 |
|---|---|
| INFO | 正常业务操作(登录、订单创建、状态变更等) |
| WARN | 业务异常(库存不足、支付失败等) |
| ERROR | 系统异常(数据库错误、第三方接口超时等) |
| 异常类型 | 处理方式 |
|---|---|
| 微信接口超时 | 重试3次,每次间隔2秒 |
| 微信返回失败 | 记录错误码,提示用户 |
| 微信退款失败 | 标记退款状态为failed,人工处理 |
| 异常类型 | 处理方式 |
|---|---|
| 地图接口超时 | 使用缓存数据或默认坐标 |
| 地理编码失败 | 返回原始地址,提示用户确认 |
说明:本章节聚焦“接口路径/参数口径对齐”相关改动,建议作为提测必跑清单执行。
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-WEB-001 |
| 用例名称 | Web登录路径对齐验证 |
| 前置条件 | 存在有效Web账号(如:admin/admin123) |
| 测试步骤 | 1. POST /api/web/auth/login,请求体 {username:"admin", password:"admin123"}2. 使用返回token调用 GET /api/web/auth/current-user3. 调用 POST /api/web/auth/logout |
| 预期结果 | 1. 三个接口均返回HTTP 200 2. 不出现路径错误(如 /api/api/web/...)3. 当前用户信息字段完整 |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-WEB-002 |
| 用例名称 | Web修改密码路径对齐验证 |
| 前置条件 | 已登录并持有有效token |
| 测试步骤 | 1. POST /api/web/admin/users/change-password2. 请求体 {oldPassword:"***", newPassword:"***"}3. 使用新密码重新登录 |
| 预期结果 | 1. 密码修改成功 2. 新密码可登录,旧密码不可登录 |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-WEB-003 |
| 用例名称 | 报价对比接口验证 |
| 前置条件 | 存在同一询价单下至少2家供应商报价 |
| 测试步骤 | 1. GET /api/web/admin/quotation-compare?inquiryId=INQ_001&supplierIds=SUP_001,SUP_0022. 检查返回字段结构 |
| 预期结果 | 1. 返回HTTP 200 2. 返回数组包含 productName、unitName、prices、lowestPrice、highestPrice |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-WEB-004 |
| 用例名称 | 发票接口路径对齐验证 |
| 前置条件 | 存在可开票订单 |
| 测试步骤 | 1. POST /api/invoice/create 创建发票2. GET /api/invoice/list 查询列表3. GET /api/invoice/detail/{invoiceId} 查询详情4. POST /api/invoice/issue/{invoiceId} 开具 |
| 预期结果 | 1. 路径均可访问(HTTP 200) 2. 返回结果符合发票状态流转 |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-WEB-005 |
| 用例名称 | 系统配置批量状态更新参数口径验证 |
| 前置条件 | 已存在至少2条系统配置 |
| 测试步骤 | 1. POST /api/system-config/batch-status2. 请求体 {ids:["CFG_001","CFG_002"], is_active:1}3. 重新查询配置列表确认状态 |
| 预期结果 | 1. 接口返回HTTP 200 2. 返回更新条数正确 3. 配置状态更新成功 |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-WEB-006 |
| 用例名称 | 配送预警详情与处理接口验证 |
| 前置条件 | 存在未处理预警记录 warningId |
| 测试步骤 | 1. GET /api/delivery-warning/detail/{warningId}2. POST /api/delivery-warning/handle/{warningId},请求体 {handleType:"contacted", remark:"已电话确认"}3. 再次查询列表 |
| 预期结果 | 1. 详情接口返回HTTP 200 2. 处理接口返回HTTP 200 3. 预警状态由未处理变为已处理 |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-MINI-001 |
| 用例名称 | 小程序登录/登出路径验证 |
| 前置条件 | 存在可用小程序账号(client/supplier/deliver) |
| 测试步骤 | 1. POST /api/mini/auth/login2. GET /api/mini/auth/current-user3. POST /api/mini/auth/logout |
| 预期结果 | 1. 三个接口均返回HTTP 200 2. 无历史兼容路径调用(如 /api/web/mini/...) |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-MINI-002 |
| 用例名称 | 小程序客户资料接口路径验证 |
| 前置条件 | 客户账号已登录 |
| 测试步骤 | 1. GET /api/mini/client/profile2. PUT /api/mini/client/profile 更新手机号/姓名3. 再次GET校验更新结果 |
| 预期结果 | 1. 两个接口均返回HTTP 200 2. 更新结果可读回 3. 不再调用旧路径 /api/mini/user/profile |
| 优先级 | P0 |
| 测试类型 | 回归测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-BE-001 |
| 用例名称 | delivery-warning/handle 参数兼容性 |
| 前置条件 | 存在未处理预警记录 |
| 测试步骤 | 1. 方式A:POST /api/delivery-warning/handle/{warningId},body传 handleType/remark2. 方式B:POST 同一路径,query传 handle_type/remark3. 比对处理结果 |
| 预期结果 | 两种传参方式均可正常处理(HTTP 200) |
| 优先级 | P1 |
| 测试类型 | 兼容性测试 |
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-ALIGN-BE-002 |
| 用例名称 | 系统配置批量更新 body 参数校验 |
| 前置条件 | 已登录并具备配置管理权限 |
| 测试步骤 | 1. POST /api/system-config/batch-status,body缺少 ids2. POST /api/system-config/batch-status,body缺少 is_active3. POST完整body |
| 预期结果 | 1. 参数缺失时返回400及明确错误信息 2. 参数完整时返回200并更新成功 |
| 优先级 | P1 |
| 测试类型 | 参数校验测试 |
| 用例编号 | 用例名称 | 执行结果 | 执行人 | 执行时间 | 备注 |
|---|---|---|---|---|---|
| TC-USER-001 | Web端正常登录 | PASS | - | - | - |
| 用例编号 | 用例名称 | 执行结果(PASS/FAIL) | 执行人 | 执行时间 | 备注 |
|---|---|---|---|---|---|
| TC-ALIGN-WEB-001 | Web登录路径对齐验证 | 待执行 | - | - | - |
| TC-ALIGN-WEB-002 | Web修改密码路径对齐验证 | 待执行 | - | - | - |
| TC-ALIGN-WEB-003 | 报价对比接口验证 | 待执行 | - | - | - |
| TC-ALIGN-WEB-004 | 发票接口路径对齐验证 | 待执行 | - | - | - |
| TC-ALIGN-WEB-005 | 系统配置批量状态更新参数口径验证 | 待执行 | - | - | - |
| TC-ALIGN-WEB-006 | 配送预警详情与处理接口验证 | 待执行 | - | - | - |
| TC-ALIGN-MINI-001 | 小程序登录/登出路径验证 | 待执行 | - | - | - |
| TC-ALIGN-MINI-002 | 小程序客户资料接口路径验证 | 待执行 | - | - | - |
| TC-ALIGN-BE-001 | delivery-warning/handle 参数兼容性 | 待执行 | - | - | - |
| TC-ALIGN-BE-002 | 系统配置批量更新 body 参数校验 | 待执行 | - | - | - |
| 缺陷ID | 严重级别 | 所属模块 | 缺陷描述 | 复现步骤 | 预期结果 | 实际结果 | 状态 |
|---|---|---|---|---|---|---|---|
| BUG-001 | 高 | 用户模块 | 登录接口... | ... | ... | ... | 待修复 |
| 接口类型 | 响应时间要求 |
|---|---|
| 登录类 | < 500ms |
| 查询类 | < 300ms |
| 操作类 | < 1s |
| 文件上传 | < 5s |