8.1 KiB
8.1 KiB
报告厅信息界面功能测试用例
🎯 测试概览
编写时间: 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/
📝 备注
- 以上测试用例可作为 Playwright 自动化脚本直接参考。
- 图片上传请使用绝对路径或
path.join(process.env.HOME, 'Downloads/报告厅照片', fileName)动态拼接。 - 测试完成后,请生成执行报告并提交至
docs/测试文档/后勤管理/报告厅信息/目录下,命名为报告厅信息界面测试执行报告-YYYY-MM-DD.md。