Files
martial-master/docs/QUICK_TEST_GUIDE.md
宅房 7aa6545cbb
All checks were successful
continuous-integration/drone/push Build is passing
fix bugs
2025-12-12 05:13:10 +08:00

8.5 KiB
Raw Permalink Blame History

评委邀请码管理功能 - 快速测试指南

🚀 快速开始

1. 数据库准备

执行以下SQL脚本按顺序

# 1. 升级表结构(添加新字段)
mysql -h localhost -P 3306 -u root -proot blade < database/martial-db/upgrade_judge_invite_table.sql

# 2. 插入测试数据(可选)
mysql -h localhost -P 3306 -u root -proot blade < database/martial-db/insert_test_judge_invite_data.sql

或者直接在MySQL客户端中执行

-- 连接数据库
USE blade;

-- 添加新字段
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS invite_status INT DEFAULT 0 COMMENT '邀请状态(0-待回复,1-已接受,2-已拒绝,3-已取消)';
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS invite_time DATETIME COMMENT '邀请时间';
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS reply_time DATETIME COMMENT '回复时间';
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS reply_note VARCHAR(500) COMMENT '回复备注';
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS contact_phone VARCHAR(20) COMMENT '联系电话';
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS contact_email VARCHAR(100) COMMENT '联系邮箱';
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS invite_message VARCHAR(1000) COMMENT '邀请消息';
ALTER TABLE martial_judge_invite ADD COLUMN IF NOT EXISTS cancel_reason VARCHAR(500) COMMENT '取消原因';

-- 添加索引
ALTER TABLE martial_judge_invite ADD INDEX IF NOT EXISTS idx_invite_status (invite_status);
ALTER TABLE martial_judge_invite ADD INDEX IF NOT EXISTS idx_competition_status (competition_id, invite_status);

2. 后端服务

后端服务已经在运行端口8123如果没有运行执行

cd martial-master
mvn spring-boot:run

3. 前端服务

前端服务应该已经在运行,访问:

http://localhost:3000/martial/judgeInvite

测试步骤

测试1: 查看邀请列表

  1. 打开浏览器访问评委邀请码管理页面
  2. 选择一个赛事(如果有测试数据,会自动选择第一个赛事)
  3. 应该能看到:
    • 统计卡片显示数据(总数、待回复、已接受、已拒绝)
    • 表格显示邀请列表
    • 邀请码显示为橙色标签

预期结果

  • 统计卡片显示正确的数字
  • 表格显示5条测试数据
  • 邀请码列显示橙色标签

测试2: 邀请码复制功能

  1. 找到表格中的"邀请码"列
  2. 点击任意一个橙色的邀请码标签例如INV2025001
  3. 应该看到成功提示:"邀请码已复制: INV2025001"
  4. 打开记事本,按 Ctrl+V 粘贴
  5. 应该能看到邀请码内容

预期结果

  • 点击后显示成功提示
  • 剪贴板中有邀请码内容
  • 可以粘贴到其他应用

测试3: 搜索和筛选

  1. 按姓名搜索

    • 在"评委姓名"输入框输入"张三"
    • 点击"搜索"按钮
    • 应该只显示张三的邀请记录
  2. 按等级筛选

    • 选择"评委等级"为"国家级"
    • 点击"搜索"按钮
    • 应该只显示国家级评委的邀请
  3. 按状态筛选

    • 选择"邀请状态"为"待回复"
    • 点击"搜索"按钮
    • 应该只显示待回复的邀请
  4. 重置

    • 点击"重置"按钮
    • 所有筛选条件清空,显示全部数据

预期结果

  • 搜索功能正常
  • 筛选功能正常
  • 重置功能正常

测试4: 统计卡片

  1. 查看统计卡片的数字
  2. 切换不同的赛事
  3. 统计数字应该随之变化

预期结果

  • 总邀请数 = 5
  • 待回复 = 2
  • 已接受 = 2
  • 已拒绝 = 1

测试5: 操作按钮

  1. 重发按钮(待回复状态):

    • 找到状态为"待回复"的记录
    • 点击"重发"按钮
    • 应该显示"重发成功"
  2. 提醒按钮(待回复状态):

    • 找到状态为"待回复"的记录
    • 点击"提醒"按钮
    • 应该显示"提醒发送成功"
  3. 确认按钮(已接受状态):

    • 找到状态为"已接受"的记录
    • 点击"确认"按钮
    • 应该弹出确认对话框
    • 点击"确认"后显示"确认成功"

预期结果

  • 按钮根据状态显示/隐藏
  • 操作成功后显示提示
  • 列表自动刷新

测试6: 分页功能

  1. 如果数据超过10条应该显示分页器
  2. 点击"下一页"按钮
  3. 应该显示下一页的数据
  4. 修改"每页条数"
  5. 数据应该重新加载

预期结果

  • 分页器显示正确
  • 翻页功能正常
  • 每页条数切换正常

🔍 API测试

使用Postman或curl测试

1. 获取邀请列表

curl -X GET "http://localhost:8123/api/blade-martial/judgeInvite/list?current=1&size=10&competitionId=1"

预期响应

{
  "code": 200,
  "success": true,
  "data": {
    "records": [...],
    "total": 5,
    "size": 10,
    "current": 1
  }
}

2. 获取统计信息

curl -X GET "http://localhost:8123/api/blade-martial/judgeInvite/statistics?competitionId=1"

预期响应

{
  "code": 200,
  "success": true,
  "data": {
    "totalInvites": 5,
    "pendingCount": 2,
    "acceptedCount": 2,
    "rejectedCount": 1
  }
}

🐛 常见问题排查

问题1: 前端页面报错 "Failed to resolve import"

解决方案

  • 检查是否有不存在的导入
  • 已修复:删除了 import { getJudgeList } from '@/api/martial/judge'

问题2: 后端启动失败 "Port 8123 was already in use"

解决方案

  • 端口已被占用,说明服务已经在运行
  • 或者杀掉占用端口的进程:
    # Windows
    netstat -ano | findstr :8123
    taskkill /PID <进程ID> /F
    

问题3: 数据库连接失败

解决方案

  • 检查MySQL服务是否启动
  • 检查配置文件中的数据库连接信息
  • 确认数据库名称为 blade

问题4: 表格没有数据

解决方案

  1. 检查是否执行了数据库升级脚本
  2. 检查是否插入了测试数据
  3. 检查浏览器控制台是否有错误
  4. 检查后端日志是否有异常

问题5: 邀请码复制失败

解决方案

  • 检查浏览器是否支持Clipboard API
  • 如果是HTTP环境可能需要HTTPS
  • 会自动降级到 document.execCommand('copy')

📊 测试数据说明

测试数据包含5条邀请记录

ID 评委姓名 等级 邀请码 状态 说明
1 张三 国家级 INV2025001 待回复 刚发送的邀请
2 李四 一级 INV2025002 待回复 刚发送的邀请
3 王五 二级 INV2025003 已接受 已回复接受
4 赵六 国家级 INV2025004 已接受 裁判长,已接受
5 钱七 三级 INV2025005 已拒绝 已回复拒绝

核心功能验证清单

  • 页面正常加载
  • 统计卡片显示正确
  • 表格数据显示正确
  • 邀请码显示为橙色标签
  • 点击邀请码可以复制
  • 搜索功能正常
  • 筛选功能正常
  • 分页功能正常
  • 操作按钮显示正确
  • 重发功能正常
  • 提醒功能正常
  • 确认功能正常

🎯 重点测试项

最重要的功能:邀请码复制

这是本次开发的核心功能,必须确保:

  1. 邀请码显示为橙色深色标签
  2. 标签使用等宽粗体字体monospace, bold
  3. 鼠标悬停时显示手型光标cursor: pointer
  4. 点击后自动复制到剪贴板
  5. 显示成功提示消息"邀请码已复制: XXX"
  6. 支持现代浏览器和旧浏览器

测试浏览器兼容性

  • Chrome/Edge现代浏览器
  • Firefox现代浏览器
  • Safari现代浏览器
  • IE11旧浏览器降级方案

📝 测试报告模板

测试日期2025-12-12
测试人员:[姓名]
测试环境:
- 操作系统Windows 10
- 浏览器Chrome 120
- 后端版本4.0.1.RELEASE
- 前端版本Vue 3

测试结果:
✅ 页面加载正常
✅ 邀请码复制功能正常
✅ 统计卡片显示正确
✅ 搜索筛选功能正常
✅ 操作按钮功能正常

问题记录:
无

建议:
无

🎉 测试通过标准

所有以下条件都满足,即可认为测试通过:

  1. 页面无报错,正常加载
  2. 邀请码显示为橙色标签
  3. 点击邀请码可以复制
  4. 统计数据正确
  5. 搜索筛选功能正常
  6. 操作按钮功能正常
  7. 后端接口返回正确数据

祝测试顺利! 🚀