黑名单校验功能测试指南
测试概述
本文档提供了车牌号黑名单校验功能的详细测试指南,包括测试场景、测试数据和预期结果。
测试环境准备
1. 确保服务正常运行
- 启动Spring Boot应用
- 确保数据库连接正常
- 确保外部API接口可访问
2. 准备测试数据
- 准备一些已知的黑名单车牌号
- 准备一些正常的车牌号
- 确保测试社区信息存在
测试场景
场景1: 正常车牌号预约
测试目的: 验证不在黑名单中的车牌号可以正常预约
测试步骤:
- 使用POST请求调用
/parking/appointment/insertAppointment
- 请求体包含正常车牌号(如:京A12345)
请求示例:
{"platenumber": "京A12345","community": "四季上东","visitorphone": "13800138000","visitdate": "2024-01-20 09:00:00 - 2024-01-20 11:00:00","ownername": "张三","ownerphone": "13900139000","visitreason": "访友"
}
预期结果:
- 返回状态码: 200
- 黑名单校验通过
- 预约创建成功
- 日志显示: "✅ 车牌号 京A12345 黑名单校验通过"
场景2: 黑名单车牌号预约
测试目的: 验证在黑名单中的车牌号被拒绝预约
测试步骤:
- 首先确保测试车牌号在黑名单中
- 使用POST请求调用
/parking/appointment/insertAppointment
- 请求体包含黑名单车牌号
请求示例:
{"platenumber": "京B99999","community": "四季上东","visitorphone": "13800138000","visitdate": "2024-01-20 09:00:00 - 2024-01-20 11:00:00","ownername": "李四","ownerphone": "13900139000","visitreason": "访友"
}
预期结果:
- 返回状态码: 200(业务失败)
- 返回消息: "该车牌号已被列入黑名单,无法进行预约"
- 预约创建失败
- 日志显示: "🚫 车牌号 京B99999 在黑名单中,拒绝预约"
场景3: 空车牌号处理
测试目的: 验证空车牌号或null值的处理
测试步骤:
- 使用POST请求调用
/parking/appointment/insertAppointment
- 请求体中车牌号为空或null
请求示例:
{"platenumber": "","community": "四季上东","visitorphone": "13800138000","visitdate": "2024-01-20 09:00:00 - 2024-01-20 11:00:00","ownername": "王五","ownerphone": "13900139000","visitreason": "访友"
}
预期结果:
- 跳过黑名单校验
- 继续后续预约流程
- 不会调用黑名单查询接口
场景4: 不同社区测试
测试目的: 验证不同社区的停车场编码映射
测试步骤:
- 分别测试"万象上东"和"四季上东"社区
- 验证使用正确的停车场编码
万象上东测试:
{"platenumber": "京C12345","community": "万象上东","visitorphone": "13800138000","visitdate": "2024-01-20 09:00:00 - 2024-01-20 11:00:00"
}
四季上东测试:
{"platenumber": "京D12345","community": "四季上东","visitorphone": "13800138000","visitdate": "2024-01-20 09:00:00 - 2024-01-20 11:00:00"
}
预期结果:
- 万象上东使用停车场编码: 2KST9MNP
- 四季上东使用停车场编码: 2KUG6XLU
- 日志中显示正确的停车场编码
日志监控
关键日志信息
监控以下日志信息来验证功能正常工作:
正常车牌(不在黑名单):
🚫 开始车牌号黑名单校验: 京A12345
🚫 调用黑名单查询接口,参数: {parkCodeList=[2KUG6XLU], pageNum=1, pageSize=1000, carCode=京A12345}
🚫 黑名单查询接口响应: {"data":{"total":0,"recordList":[],"count":0,"currCount":0},"resultCode":0,"message":"业务成功","status":1}
🚫 黑名单查询完成,车牌 京A12345 不在黑名单中,共查询到 0 条记录
✅ 车牌号 京A12345 黑名单校验通过
黑名单车牌:
🚫 开始车牌号黑名单校验: 黑AL1X07
🚫 调用黑名单查询接口,参数: {parkCodeList=[2KUG6XLU], pageNum=1, pageSize=1000, carCode=黑AL1X07}
🚫 黑名单查询接口响应: {"data":{"total":1,"recordList":[{"owner":"A1-b-0320","reason":"欠费","carCode":"黑AL1X07",...}],"count":1,"currCount":1},"resultCode":0,"message":"业务成功","status":1}
🚫 发现黑名单车牌: 黑AL1X07 - 原因: 欠费
异常日志
如果出现异常,关注以下日志:
🚫 黑名单校验异常: 连接超时
🚫 黑名单查询接口返回错误: resultCode=-1, status=0, message=服务器内部错误
性能测试
响应时间测试
- 正常情况下,黑名单校验应在2秒内完成
- 接口超时设置为8秒
并发测试
- 测试多个用户同时进行预约时的黑名单校验
- 验证不会出现并发问题
故障处理测试
外部接口不可用
测试目的: 验证外部黑名单接口不可用时的处理
测试方法:
- 临时断开网络或修改API配置
- 尝试进行预约
预期结果:
- 记录异常日志
- 允许预约继续(不阻塞业务)
- 返回黑名单校验失败的提示
回归测试
验证现有功能
确保添加黑名单校验后,现有的预约功能仍然正常:
- 手机号查询功能
- 地址信息自动填充
- 审核流程
- 时间段验证
- 业主信息验证
测试工具推荐
API测试工具
- Postman
- curl命令
- JMeter(性能测试)
日志查看
- 应用日志文件
- 控制台输出
- 日志分析工具
测试检查清单
- 正常车牌号可以预约
- 黑名单车牌号被拒绝
- 空车牌号正确处理
- 不同社区使用正确编码
- 异常情况正确处理
- 日志记录完整
- 性能满足要求
- 现有功能不受影响