管家二维码预约免审核功能测试指南
🎯 测试目标
验证访客扫描管家二维码进行预约时,能够自动跳过审核流程,并正确设置审核人为发放二维码的管家。
📋 测试前准备
1. 数据库准备
确保以下表中有测试数据:
-- 1. 检查管家数据
SELECT * FROM butler WHERE phone = '13800138000';-- 2. 检查二维码使用记录
SELECT * FROM qr_code_usage WHERE butler_phone = '13800138000';-- 3. 如果没有数据,插入测试数据
INSERT INTO butler (usercode, username, phone, province, city, district, community, createdate, status, openid
) VALUES ('BUTLER001', '测试管家', '13800138000', '黑龙江省', '哈尔滨市', '香坊区', '四季上东', NOW(), '已确认', 'butler_test_openid_001'
);
2. 服务启动
确保以下服务正常运行:
- Spring Boot 应用
- MySQL 数据库
- 相关的 Service 和 Controller
🧪 测试用例
测试用例1:正常流程测试
目标:验证访客扫描管家二维码预约的完整流程
步骤:
- 管家生成访客二维码
- 访客扫描二维码进入预约页面
- 访客填写预约信息并提交
- 检查预约记录的审核状态
预期结果:
- 预约类型:
appointtype = "邀请"
- 审核状态:
auditstatus = "已通过"
- 场地状态:
venuestatus = "待入场"
- 审核人:
auditusername = "测试管家"
(对应的管家姓名)
- 审核人openid:
auditopenid = "butler_test_openid_001"
- 审核时间:
auditdate
不为空
验证SQL:
SELECT appointtype, auditstatus, venuestatus, auditusername, auditopenid, auditdate,visitorphone, community
FROM appointment
WHERE appointtype = '邀请'
ORDER BY recorddate DESC
LIMIT 1;
测试用例2:管家信息查询失败
目标:验证当无法找到管家信息时的容错处理
步骤:
- 删除或修改二维码使用记录中的管家手机号
- 访客提交预约
- 检查预约记录
预期结果:
- 审核状态:
auditstatus = "已通过"
- 审核人:
auditusername = "系统自动审核"
- 审核人openid:
auditopenid = "system"
测试用例3:二维码记录不存在
目标:验证当二维码使用记录不存在时的处理
步骤:
- 清空 qr_code_usage 表中的相关记录
- 访客提交预约(模拟直接访问)
- 检查预约记录
预期结果:
- 审核状态:
auditstatus = "已通过"
- 审核人:
auditusername = "系统自动审核"
📊 测试数据验证
1. 预约记录检查
-- 查看最新的邀请类型预约
SELECT id, appointtype, auditstatus, venuestatus,auditusername, auditopenid, auditdate,visitorphone, platenumber, community,recorddate
FROM appointment
WHERE appointtype = '邀请'
ORDER BY recorddate DESC
LIMIT 5;
2. 二维码使用记录检查
-- 查看二维码使用情况
SELECT qr_id, butler_phone, butler_name,visitor_openid, visitor_phone,is_used, used_time, created_time
FROM qr_code_usage
WHERE is_used = 1
ORDER BY used_time DESC
LIMIT 5;
3. 管家信息检查
-- 验证管家信息
SELECT usercode, username, phone, openid, community
FROM butler
WHERE phone IN (SELECT DISTINCT butler_phone FROM qr_code_usage WHERE is_used = 1
);
🔍 日志检查
在应用日志中查找以下关键信息:
1. 成功日志
邀请预约设置管家审核信息: 管家=测试管家, 管家openid=butler_test_openid_001
邀请预约无需审核,已自动通过: 社区=四季上东, 审核人=测试管家
通过二维码记录找到管家: 管家手机号=13800138000, 管家姓名=测试管家, 管家openid=butler_test_openid_001
2. 异常日志
未找到访客的二维码使用记录: visitorOpenid=xxx
未找到管家信息: 管家手机号=xxx
获取管家审核信息失败: xxx
🚨 常见问题排查
1. 预约状态仍为"待审批"
可能原因:
- 预约类型不是"邀请"
- 代码逻辑未正确执行
- 数据库事务回滚
排查方法:
- 检查预约类型设置逻辑
- 查看应用日志
- 检查数据库连接
2. 审核人显示为"系统自动审核"
可能原因:
- 二维码使用记录不存在
- 管家信息查询失败
- 管家手机号不匹配
排查方法:
- 检查 qr_code_usage 表数据
- 验证管家表中的手机号
- 查看错误日志
3. 审核时间为空
可能原因:
- LocalDateTime.now() 调用失败
- 数据库字段类型不匹配
排查方法:
- 检查数据库字段定义
- 验证时区设置
📈 性能测试
1. 并发测试
模拟多个访客同时扫描不同管家的二维码进行预约
2. 数据量测试
在大量历史数据的情况下测试查询性能
3. 异常恢复测试
模拟数据库连接中断等异常情况