6.4 KiB
6.4 KiB
测试医生资质图片功能
测试步骤
1. 数据库准备
首先执行SQL文件添加字段:
# 如果使用 la_ 前缀
mysql -u root -p your_database < server/sql/add_doctor_qualification_images.sql
# 如果使用 zyt_ 前缀,先修改SQL文件中的表名
# 将 la_admin 替换为 zyt_admin
验证字段是否添加成功:
DESC la_admin;
-- 或
DESC zyt_admin;
-- 应该能看到 qualification_images 字段
2. 管理后台测试
2.1 添加医生并上传资质图片
- 登录管理后台
- 进入"医生管理"页面
- 点击"新增医生"按钮
- 填写基本信息:
- 账号:test_doctor
- 姓名:测试医生
- 密码:123456
- 其他必填字段...
- 在"专业信息"部分找到"资质图片"字段
- 点击上传按钮,选择1-3张测试图片
- 点击"确定"保存
2.2 编辑医生资质图片
- 在医生列表中找到刚创建的医生
- 点击"编辑"按钮
- 在"资质图片"字段中:
- 可以删除已有图片
- 可以添加新图片
- 可以调整图片顺序
- 点击"确定"保存
2.3 查看医生详情
- 点击医生列表中的"详情"按钮
- 确认能看到
qualification_images字段 - 确认图片URL格式正确
3. API接口测试
3.1 测试添加医生接口
curl -X POST "http://your-domain/adminapi/auth.admin/add" \
-H "Content-Type: application/json" \
-H "token: your_admin_token" \
-d '{
"account": "test_doctor2",
"name": "测试医生2",
"password": "123456",
"password_confirm": "123456",
"gender": 1,
"role_id": [1],
"dept_id": [1],
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
"disable": 0,
"multipoint_login": 1
}'
3.2 测试编辑医生接口
curl -X POST "http://your-domain/adminapi/auth.admin/edit" \
-H "Content-Type: application/json" \
-H "token: your_admin_token" \
-d '{
"id": 1,
"account": "test_doctor",
"name": "测试医生",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\",\"https://example.com/cert3.jpg\"]",
"disable": 0,
"multipoint_login": 1
}'
3.3 测试医生详情接口
curl -X GET "http://your-domain/adminapi/auth.admin/detail?id=1" \
-H "token: your_admin_token"
预期返回:
{
"code": 1,
"msg": "success",
"data": {
"id": 1,
"name": "测试医生",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
...
}
}
3.4 测试小程序端医生详情接口
curl -X GET "http://your-domain/api/doctor/detail?id=1"
预期返回:
{
"code": 1,
"msg": "success",
"data": {
"id": 1,
"name": "测试医生",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
...
}
}
4. 小程序端测试
4.1 查看医生详情页
- 打开小程序
- 进入医生列表页面
- 点击任意医生进入详情页
- 滚动到"擅长领域"下方
- 应该能看到"医生资质"区域(如果该医生有资质图片)
- 资质图片以3列网格布局展示
4.2 测试图片预览
- 点击任意资质图片
- 应该弹出图片预览界面
- 可以左右滑动查看所有资质图片
- 可以双指缩放查看图片细节
- 点击关闭按钮或返回键退出预览
5. 边界情况测试
5.1 无资质图片
- 医生没有上传资质图片时,小程序端不显示"医生资质"区域
- 管理后台显示空的上传区域
5.2 单张图片
- 上传1张图片,正常显示
- 预览时只有1张图片
5.3 多张图片
- 上传9张图片(最大限制)
- 所有图片都能正常显示
- 预览时可以滑动查看所有图片
5.4 图片格式
- 测试 JPG 格式 ✓
- 测试 PNG 格式 ✓
- 测试 JPEG 格式 ✓
5.5 错误数据处理
- 空字符串:不显示资质区域
- null:不显示资质区域
- 无效JSON:不显示资质区域(有容错处理)
- 非数组JSON:不显示资质区域
6. 性能测试
6.1 图片加载速度
- 测试3张图片的加载时间
- 测试9张图片的加载时间
- 确认图片懒加载是否生效
6.2 预览性能
- 测试预览大图的加载速度
- 测试滑动切换的流畅度
测试检查清单
- 数据库字段添加成功
- 管理后台可以上传资质图片
- 管理后台可以编辑资质图片
- 管理后台可以删除资质图片
- 添加医生接口正常工作
- 编辑医生接口正常工作
- 医生详情接口返回资质图片
- 小程序端正常显示资质图片
- 小程序端图片预览功能正常
- 无资质图片时不显示该区域
- 支持多种图片格式
- 错误数据有容错处理
- 图片加载性能良好
常见问题排查
问题1:管理后台上传图片后不显示
排查步骤:
- 检查浏览器控制台是否有错误
- 检查图片上传接口是否成功
- 检查
material-picker组件是否正常工作 - 检查
formData.qualification_images是否有值
问题2:小程序端不显示资质图片
排查步骤:
- 检查医生详情接口返回的数据
- 检查
qualification_images字段是否有值 - 检查
qualificationImagescomputed 是否正确解析 - 检查图片URL是否可访问
- 检查小程序域名白名单配置
问题3:图片预览失败
排查步骤:
- 检查
uni.previewImage是否正常调用 - 检查图片URL格式是否正确
- 检查小程序权限配置
- 查看小程序控制台错误信息
问题4:数据库字段不存在
排查步骤:
- 确认是否执行了SQL文件
- 确认表名前缀是否正确(la_ 或 zyt_)
- 手动执行
DESC命令检查字段 - 检查数据库连接是否正确
测试数据示例
示例1:单张图片
["https://example.com/doctor-cert-1.jpg"]
示例2:多张图片
[
"https://example.com/doctor-cert-1.jpg",
"https://example.com/doctor-cert-2.jpg",
"https://example.com/doctor-cert-3.jpg"
]
示例3:完整医生数据
{
"id": 1,
"name": "李医生",
"title": "主任医师",
"license_no": "110101199001011234",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
"enable_image_consult": 1,
"enable_video_consult": 1
}