backend-e2e-publish-test-2026-06-28.md 4.2 KB

管理后台发布功能 E2E 测试报告

测试环境: http://cfc.iwintrue.com:80 测试时间: 2026-06-28 ~ 2026-06-29 测试账号: 13800138000(admin角色,adminId=7) commit: origin/cfclub 最新(5538c88 fix: ambiguous mapping冲突) 测试时间(第二次验证): 2026-06-29 02:55 UTC+8 测试方式: Python urllib 模拟 HTTP 请求


一、登录认证

测试项 结果 说明
管理员登录 ✅ 通过 phone=13800138000, code=000000
JWT Token ✅ 有效 adminId=7, roles=[admin],

应用配置已启用 skip-captcha 跳过验证码校验** |


二、文章发布 API

接口: POST /api/admin/articles/publish JWT认证: 使用 Bearer Token 请求体: {"title":"E2E测试文章","content":"测试内容","status":"published"}

测试结果 HTTP状态 说明
❌ 失败 HTTP 500 Internal Server Error 服务器内部错误

响应:

{
  "timestamp": "2026-06-29T00:41:37.475+00:00",
  "status": 500,
  "error": "Internal Server Error",
  "path": "/api/admin/articles/publish"
}

分析: 500 为 Spring Boot 默认错误响应(非业务异常)。可能原因:

  1. ArticleService 内 createdBy 字段为空导致数据库约束冲突
  2. 缺少其他必需字段(categoryId、coverImage、tags 等)
  3. 内部 NPE 或其他未捕获异常

三、活动发布 API — ✅ 完全通过

JWT认证: 使用 Bearer Token

步骤 接口 结果 说明
创建活动 POST /api/activity/create ✅ HTTP 200 activityId=6(累计已验证5次创建+发布成功:id=1,2,3,4,5,6)
发布活动 POST /api/activity/publish ✅ HTTP 200 发布成功

创建请求体:

{
  "title": "E2E测试活动",
  "description": "测试",
  "activityType": "运动",
  "location": "线上",
  "maxParticipants": 50,
  "points": 30,
  "price": 0,
  "visibleRange": "all",
  "status": "draft"
}

发布响应: {"code":200,"message":"success","data":"发布成功"}

结论: 活动创建 → 发布端到端流程完全正常。


四、商品上下架 API — ⚠️ 认证正常,业务受限

步骤 接口 认证方式 结果 说明
创建商品 POST /api/product/create Bearer + X-User-Id ⚠️ HTTP 200 业务拒绝
上下架 POST /api/product/shelve Bearer + X-User-Id 未测试(无商品ID)

创建请求体:

{
  "name": "E2E测试商品",
  "description": "测试",
  "price": 99,
  "stock": 100,
  "status": "active",
  "images": "https://x.com/a.jpg"
}

响应: {"code":500,"message":"仅审核通过的服务商可发布商品","data":null}

认证机制:

  • ProductController 使用 X-User-Id 请求头(非标准 JWT @RequestAttribute("userId")
  • 需同时传递 Authorization: Bearer <token> + X-User-Id: <userId>

限制: admin 账号(userId=7)非已审核供应商,无法创建商品


五、完整结果汇总

功能模块 测试结果 HTTP状态 说明
管理员登录 ✅ 通过 200 JWT 认证正常
文章发布 ❌ 失败 500 ArticleService 内部错误
活动发布 ✅ 完全通过 200 创建+发布全流程正常
商品上下架 ⚠️ 业务限制 200(code=500) admin 非服务商,需已审核 vendor 账号

5.1 通过项(第三次验证无误)

  • 管理端 JWT 认证机制:POST /api/admin-auth/login 返回有效 token
  • 活动创建 + 发布流程:端到端测试通过,累计成功 6 次(id=1~6)
  • 商品 API 认证机制:Bearer + X-User-Id 双头验证通过
  • skip-captcha 测试模式:管理端登录验证码已跳过

5.2 待排查项

  • 文章发布 500: ArticleService.create 内部异常,需检查 createdBy 字段处理或 DB 约束
  • 商品发布权限: 需已审核通过的服务商账号方能测试完整上下架流程

六、测试方法

# Python 直接请求(无需浏览器)
python e2e_run.py

# 输出文件
e2e_result_new.txt - 每次测试的原始响应