Files
hzdyjs/docs/测试文档/后勤管理/报告厅信息/报告厅信息界面测试用例-2025-07-09.md
T
zlwu f969e4ff7d refactor: 物业报修模块重构
1. 重命名物业报修相关类,统一添加Hq前缀
2. 更新相关文档和SQL文件
3. 优化前端样式和视图
4. 清理无用的测试文件

Issue #123
2025-07-09 16:55:24 +08:00

8.1 KiB
Raw Blame History

报告厅信息界面功能测试用例

🎯 测试概览

编写时间: 2025-07-09
测试工具: Cursor + Playwright MCP
测试范围: 后勤管理 → 报告厅信息界面
测试类型: 端到端功能 + UI 可用性 + 校验逻辑
预计执行时长: 40–60 分钟

📋 测试准备

1. 环境要求

  • ✅ 前端运行地址: http://localhost (默认 80 端口)
  • ✅ 后端运行地址: http://localhost:8080
  • ✅ 管理员测试账号: admin / admin123
  • ✅ Playwright MCP 插件已启用
  • ✅ 测试图片目录: test/hall-info/test-images/

2. 基础测试数据

{
  "testHalls": [
    {
      "hallName": "测试报告厅 A",
      "hallDescription": "可容纳 200 人的大型多媒体报告厅",
      "hallStatus": "1",
      "hallImageFile": "报告厅-01.jpg"
    },
    {
      "hallName": "测试报告厅 B",
      "hallDescription": "小型多功能报告厅,适合研讨会",
      "hallStatus": "1",
      "hallImageFile": "报告厅-02.jpg"
    }
  ]
}

🧪 测试执行计划

Playwright 代码片段示例均遵循 MCP snapshot → click/type → waitFor 的通用写法,可直接复制到 Playwright 脚本中。

阶段一:页面基础验证(10 分钟)

TC001: 页面加载和核心元素检查

字段 说明
测试目标 验证“报告厅信息”页面可以在 3 秒内完成加载并正确渲染核心元素
前置条件 已登录系统,导航到 后勤管理 → 报告厅管理 → 报告厅信息 菜单
步骤 1. 调用 browser.navigate('http://localhost/hq/bgtgl/hallInfo')
2. await browser.waitFor(3000)
3. const snapshot = await browser.snapshot() 验证页面包含“报告厅信息”标题、搜索框、【新增】按钮、表格区域、分页组件
预期结果 页面 3 秒内加载完成;所有核心元素可见且可交互
Playwright 示例
await browser.navigate('http://localhost/hq/hallInfo');
await browser.waitFor(3000);
const snapshot = await browser.snapshot();
// 断言标题存在

TC002: 默认数据列表展示

字段 说明
测试目标 验证表格列(名称、状态、图片、描述、操作)显示完整,数据加载正确
步骤 1. 页面加载完成后解析表格
2. 检查列头文本
3. 验证至少存在 1 条数据
预期结果 列头文本正确,数据行显示完整,分页信息正确

阶段二:CRUD 功能测试(20 分钟)

TC003: 新增报告厅信息

字段 说明
测试目标 验证新增功能完整性,包括表单校验、图片上传、保存成功提示及列表刷新
前置条件 None
步骤 1. 点击【新增】按钮
2. 填写“报告厅名称”、“描述”
3. 选择状态为“可用”
4. 上传 任意一张图片 (路径: test/hall-info/test-images/`)
5. 点击【保存】按钮
6. 等待成功提示并搜索新增名称
预期结果 弹窗关闭、提示“操作成功”,列表第一行显示新数据,图片缩略图显示正常
Playwright 示例
await browser.click('新增按钮', "button:has-text('新增')");
await browser.type('名称', "input[placeholder*='报告厅名称']", '测试报告厅 A');
await browser.type('描述', "textarea[placeholder*='描述']", '可容纳 200 人的大型多媒体报告厅');
await browser.click('状态下拉', "select[placeholder*='状态']");
await browser.selectOption('状态选项', 'select', ['1']);
// 上传图片
await browser.fileUpload('选择图片', "input[type='file']", 'test/hall-info/test-images/');
await browser.click('保存', "button:has-text('保存')");
await browser.waitFor(2000);

TC004: 编辑报告厅信息

字段 说明
测试目标 验证编辑功能并确保修改后的数据正确保存
前置条件 已存在“测试报告厅 A”记录
步骤 1. 在列表中搜索并点击对应行【编辑】
2. 修改描述为“可容纳 180–200 人,带高清投影”
3. 点击【保存】
4. 验证修改生效
预期结果 提示“操作成功”,描述字段显示新内容

TC005: 状态切换(可用 ↔ 不可用)

字段 说明
测试目标 验证状态切换按钮或下拉框能实时更新报告厅可用状态
步骤 1. 点击状态切换或下拉,改为“不可用”
2. 等待提示刷新
3. 再次切换回“可用”
预期结果 状态字段值正确切换,表格颜色/标签同步更新

TC006: 删除报告厅信息

字段 说明
测试目标 验证单条删除与批量删除功能
步骤 1. 勾选“测试报告厅 A”复选框
2. 点击【删除】按钮,确认弹窗
3. 验证提示成功并列表中不再出现该数据
预期结果 数据删除成功,表格刷新后该条目消失

阶段三:表单校验与异常测试(5 分钟)

TC007: 必填字段校验

字段 说明
测试目标 验证未填写必填项时的校验提示
步骤 1. 点击【新增】
2. 不填任何字段直接保存
预期结果 名称、状态、图片均显示红色校验提示,无法提交成功

TC008: 名称重复校验

字段 说明
测试目标 当报告厅名称已存在时,系统应提示重复并阻止保存
步骤 1. 新增或编辑时填写已存在的名称“测试报告厅 B”
2. 点击保存
预期结果 弹窗提示“报告厅名称已存在”,表单不关闭

阶段四:搜索、排序与分页(5 分钟)

TC009: 关键字搜索

字段 说明
步骤 1. 在搜索框输入“测试报告厅”
2. 点击【搜索】
预期结果 表格仅显示名称包含“测试报告厅”的记录,分页信息更新

TC010: 分页跳转

字段 说明
步骤 1. 若数据超过 10 条,点击分页到第 2 页
2. 观察页面加载
预期结果 正确跳转到第 2 页,数据加载正常

阶段五:图片上传专项测试(5 分钟)

TC011: 多张图片上传

字段 说明
测试目标 验证支持一次上传多张图片并正确保存
步骤 1. 新增报告厅时选择 任意多张图片
2. 保存后查看图片列表
预期结果 所有上传图片均生成缩略图,放大预览正常

TC012: 不合法格式/大小校验

字段 说明
测试目标 上传超出大小或非图片格式文件时提示错误
步骤 1. 尝试上传 test.txt 或 >5MB 的图片
预期结果 显示“仅支持 jpg/png 且大小 ≤5MB”错误提示,禁止上传

阶段六:权限与安全(可选)

  • TC013: 普通用户无法访问“报告厅信息”菜单
  • TC014: Token 失效后访问页面应跳转登录

✅ 验证点汇总

  • 页面元素存在性与响应速度
  • CRUD 全流程成功提示与数据持久化
  • 表单前端 & 后端校验一致性
  • 图片上传与文件系统存储完整性
  • 搜索/分页/排序交互稳定性
  • 权限与安全控制

⏱️ 性能指标

指标 目标
页面首次加载 ≤ 3 秒
新增 / 编辑请求 ≤ 1 秒
图片上传 ≤ 2 秒/张

📂 Playwright 代码与资源路径

  • 脚本目录: test/hall-info/
  • 示例脚本: test/hall-info/hall-info-e2e.spec.js
  • 图片资源: test/hall-info/test-images/

📝 备注

  1. 以上测试用例可作为 Playwright 自动化脚本直接参考。
  2. 图片上传请使用绝对路径或 path.join(process.env.HOME, 'Downloads/报告厅照片', fileName) 动态拼接。
  3. 测试完成后,请生成执行报告并提交至 docs/测试文档/后勤管理/报告厅信息/ 目录下,命名为 报告厅信息界面测试执行报告-YYYY-MM-DD.md。