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

204 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 报告厅信息界面功能测试用例
## 🎯 测试概览
**编写时间**: 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. 基础测试数据
```json
{
"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')` <br/>2. `await browser.waitFor(3000)` <br/>3. `const snapshot = await browser.snapshot()` 验证页面包含“报告厅信息”标题、搜索框、【新增】按钮、表格区域、分页组件 |
| **预期结果** | 页面 3 秒内加载完成;所有核心元素可见且可交互 |
| **Playwright 示例** |
```javascript
await browser.navigate('http://localhost/hq/hallInfo');
await browser.waitFor(3000);
const snapshot = await browser.snapshot();
// 断言标题存在
```
#### TC002: 默认数据列表展示
| 字段 | 说明 |
|------|------|
| **测试目标** | 验证表格列(名称、状态、图片、描述、操作)显示完整,数据加载正确 |
| **步骤** | 1. 页面加载完成后解析表格 <br/>2. 检查列头文本 <br/>3. 验证至少存在 1 条数据 |
| **预期结果** | 列头文本正确,数据行显示完整,分页信息正确 |
### 阶段二:CRUD 功能测试(20 分钟)
#### TC003: 新增报告厅信息
| 字段 | 说明 |
|------|------|
| **测试目标** | 验证新增功能完整性,包括表单校验、图片上传、保存成功提示及列表刷新 |
| **前置条件** | None |
| **步骤** | 1. 点击【新增】按钮 <br/>2. 填写“报告厅名称”、“描述” <br/>3. 选择状态为“可用” <br/>4. 上传 任意一张图片 (路径: test/hall-info/test-images/`) <br/>5. 点击【保存】按钮 <br/>6. 等待成功提示并搜索新增名称 |
| **预期结果** | 弹窗关闭、提示“操作成功”,列表第一行显示新数据,图片缩略图显示正常 |
| **Playwright 示例** |
```javascript
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. 在列表中搜索并点击对应行【编辑】 <br/>2. 修改描述为“可容纳 180–200 人,带高清投影” <br/>3. 点击【保存】 <br/>4. 验证修改生效 |
| **预期结果** | 提示“操作成功”,描述字段显示新内容 |
#### TC005: 状态切换(可用 ↔ 不可用)
| 字段 | 说明 |
|------|------|
| **测试目标** | 验证状态切换按钮或下拉框能实时更新报告厅可用状态 |
| **步骤** | 1. 点击状态切换或下拉,改为“不可用” <br/>2. 等待提示刷新 <br/>3. 再次切换回“可用” |
| **预期结果** | 状态字段值正确切换,表格颜色/标签同步更新 |
#### TC006: 删除报告厅信息
| 字段 | 说明 |
|------|------|
| **测试目标** | 验证单条删除与批量删除功能 |
| **步骤** | 1. 勾选“测试报告厅 A”复选框 <br/>2. 点击【删除】按钮,确认弹窗 <br/>3. 验证提示成功并列表中不再出现该数据 |
| **预期结果** | 数据删除成功,表格刷新后该条目消失 |
### 阶段三:表单校验与异常测试(5 分钟)
#### TC007: 必填字段校验
| 字段 | 说明 |
|------|------|
| **测试目标** | 验证未填写必填项时的校验提示 |
| **步骤** | 1. 点击【新增】 <br/>2. 不填任何字段直接保存 |
| **预期结果** | 名称、状态、图片均显示红色校验提示,无法提交成功 |
#### TC008: 名称重复校验
| 字段 | 说明 |
|------|------|
| **测试目标** | 当报告厅名称已存在时,系统应提示重复并阻止保存 |
| **步骤** | 1. 新增或编辑时填写已存在的名称“测试报告厅 B” <br/>2. 点击保存 |
| **预期结果** | 弹窗提示“报告厅名称已存在”,表单不关闭 |
### 阶段四:搜索、排序与分页(5 分钟)
#### TC009: 关键字搜索
| 字段 | 说明 |
|------|------|
| **步骤** | 1. 在搜索框输入“测试报告厅” <br/>2. 点击【搜索】 |
| **预期结果** | 表格仅显示名称包含“测试报告厅”的记录,分页信息更新 |
#### TC010: 分页跳转
| 字段 | 说明 |
|------|------|
| **步骤** | 1. 若数据超过 10 条,点击分页到第 2 页 <br/>2. 观察页面加载 |
| **预期结果** | 正确跳转到第 2 页,数据加载正常 |
### 阶段五:图片上传专项测试(5 分钟)
#### TC011: 多张图片上传
| 字段 | 说明 |
|------|------|
| **测试目标** | 验证支持一次上传多张图片并正确保存 |
| **步骤** | 1. 新增报告厅时选择 任意多张图片 <br/>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`。