# 功能测试用例

**创建日期**：2026-01-28  
**测试范围**：数据库客户端核心功能

---

## 一、连接管理测试

### TC-001: 创建数据库连接

**前置条件**：
- 应用已启动
- 数据库服务可访问

**测试步骤**：
1. 点击"新建连接"按钮
2. 填写连接信息（名称、类型、主机、端口、用户名、密码、数据库）
3. 点击"测试连接"验证连接
4. 点击"保存"

**预期结果**：
- ✅ 连接创建成功
- ✅ 连接出现在连接树中
- ✅ 可以选中连接

**优先级**：P0

---

### TC-002: 编辑数据库连接

**前置条件**：
- 已存在至少一个连接

**测试步骤**：
1. 右键点击连接节点
2. 选择"编辑连接"
3. 修改连接信息
4. 点击"保存"

**预期结果**：
- ✅ 连接信息更新成功
- ✅ 连接树中显示更新后的信息

**优先级**：P0

---

### TC-003: 删除数据库连接

**前置条件**：
- 已存在至少一个连接

**测试步骤**：
1. 右键点击连接节点
2. 选择"删除连接"
3. 确认删除

**预期结果**：
- ✅ 连接删除成功
- ✅ 连接从连接树中移除

**优先级**：P0

---

### TC-004: 连接列表加载

**前置条件**：
- 已存在至少一个连接

**测试步骤**：
1. 启动应用
2. 查看连接树

**预期结果**：
- ✅ 连接列表自动加载
- ✅ 所有连接正确显示

**优先级**：P0

---

## 二、SQL执行测试

### TC-005: MySQL查询执行

**前置条件**：
- 已创建MySQL连接
- 已选中连接和数据库

**测试步骤**：
1. 在SQL编辑器中输入：`SELECT * FROM table_name LIMIT 10;`
2. 点击"执行"按钮

**预期结果**：
- ✅ SQL执行成功
- ✅ 结果在结果面板中显示
- ✅ 结果格式正确（表格）

**优先级**：P0

---

### TC-006: Redis命令执行

**前置条件**：
- 已创建Redis连接
- 已选中连接和数据库

**测试步骤**：
1. 在SQL编辑器中输入：`KEYS *`
2. 点击"执行"按钮

**预期结果**：
- ✅ 命令执行成功
- ✅ 结果在结果面板中显示
- ✅ 结果格式正确（列表或表格）

**优先级**：P0

---

### TC-007: MongoDB查询执行

**前置条件**：
- 已创建MongoDB连接
- 已选中连接和数据库

**测试步骤**：
1. 在SQL编辑器中输入：`db.collection.find({})`
2. 点击"执行"按钮

**预期结果**：
- ✅ 查询执行成功
- ✅ 结果在结果面板中显示
- ✅ 结果格式正确（JSON）

**优先级**：P0

---

### TC-008: SQL执行错误处理

**前置条件**：
- 已创建连接并选中

**测试步骤**：
1. 在SQL编辑器中输入错误的SQL：`SELECT * FROM non_existent_table;`
2. 点击"执行"按钮

**预期结果**：
- ✅ 错误信息在结果面板中显示
- ✅ 错误信息清晰明确
- ✅ 应用不崩溃

**优先级**：P0

---

## 三、表结构查看测试

### TC-009: MySQL表结构查看

**前置条件**：
- 已创建MySQL连接
- 已选中连接和数据库
- 数据库中存在表

**测试步骤**：
1. 右键点击表节点
2. 选择"查看结构"
3. 查看结构面板

**预期结果**：
- ✅ 表结构信息正确显示
- ✅ 字段信息完整（字段名、类型、允许NULL、键、默认值、额外）
- ✅ 索引信息完整（索引名、列名、唯一、类型）

**优先级**：P0

---

### TC-010: MongoDB集合结构查看

**前置条件**：
- 已创建MongoDB连接
- 已选中连接和数据库
- 数据库中存在集合

**测试步骤**：
1. 右键点击集合节点
2. 选择"查看结构"
3. 查看结构面板

**预期结果**：
- ✅ 集合结构信息正确显示
- ✅ 文档总数显示
- ✅ 字段统计信息显示（基于采样）
- ✅ 文档示例显示
- ✅ 索引信息显示

**优先级**：P0

---

### TC-011: Redis Key信息查看

**前置条件**：
- 已创建Redis连接
- 已选中连接和数据库
- 数据库中存在Key

**测试步骤**：
1. 右键点击Key节点
2. 选择"查看结构"
3. 查看结构面板

**预期结果**：
- ✅ Key信息正确显示
- ✅ Key类型显示
- ✅ TTL显示
- ✅ 长度显示
- ✅ 值预览显示

**优先级**：P0

---

## 四、右键菜单测试

### TC-012: 连接节点右键菜单

**前置条件**：
- 已存在至少一个连接

**测试步骤**：
1. 右键点击连接节点
2. 查看菜单项

**预期结果**：
- ✅ 菜单正确显示
- ✅ 菜单项包括：查看结构、编辑连接、删除连接、刷新、测试连接
- ✅ 菜单定位在鼠标位置
- ✅ 点击菜单项后菜单关闭

**优先级**：P0

---

### TC-013: 数据库节点右键菜单

**前置条件**：
- 已存在连接并展开数据库

**测试步骤**：
1. 右键点击数据库节点
2. 查看菜单项

**预期结果**：
- ✅ 菜单正确显示
- ✅ 菜单项根据数据库类型显示（MySQL/MongoDB/Redis）
- ✅ 菜单定位在鼠标位置

**优先级**：P0

---

### TC-014: 表节点右键菜单

**前置条件**：
- 已存在连接并展开到表节点

**测试步骤**：
1. 右键点击表节点
2. 查看菜单项

**预期结果**：
- ✅ 菜单正确显示
- ✅ 菜单项包括：查看结构、生成SELECT语句、复制表名、刷新
- ✅ 菜单定位在鼠标位置

**优先级**：P0

---

### TC-015: 菜单项功能测试

**前置条件**：
- 已存在连接和表

**测试步骤**：
1. 右键点击表节点
2. 依次点击各菜单项

**预期结果**：
- ✅ "查看结构"：切换到结构面板并显示表结构
- ✅ "生成SELECT语句"：在SQL编辑器中生成SELECT语句
- ✅ "复制表名"：表名复制到剪贴板
- ✅ "刷新"：刷新表列表

**优先级**：P0

---

## 五、SQL编辑器测试

### ~~TC-016: 多Tab编辑器~~ ⚠️ 暂时移除

**状态**：多Tab支持暂时移除，仅保留一个SQL编辑区

**说明**：功能将在后续版本恢复

---

### TC-017: SQL自动保存

**前置条件**：
- 已创建连接
- 已打开SQL编辑器

**测试步骤**：
1. 在SQL编辑器中输入SQL
2. 等待几秒
3. 刷新页面或重新打开应用

**预期结果**：
- ✅ SQL内容自动保存
- ✅ 重新打开后SQL内容恢复

**优先级**：P1

---

## 六、结果面板测试

### TC-018: 结果显示

**前置条件**：
- 已执行SQL查询

**测试步骤**：
1. 执行查询
2. 查看结果面板

**预期结果**：
- ✅ 结果正确显示
- ✅ 结果格式正确（表格/JSON/列表）
- ✅ 可以切换"结果"和"消息"Tab
- ✅ 可以切换"结果"和"结构"Tab

**优先级**：P0

---

### TC-019: 大数据量结果

**前置条件**：
- 已创建连接
- 表中存在大量数据

**测试步骤**：
1. 执行查询大量数据的SQL
2. 查看结果面板

**预期结果**：
- ✅ 结果正确显示
- ✅ 性能可接受（不卡顿）
- ✅ 可以分页或滚动查看

**优先级**：P1

---

## 七、测试连接功能测试

### TC-020: 右键菜单测试连接

**前置条件**：
- 已存在至少一个连接

**测试步骤**：
1. 右键点击连接节点
2. 选择"测试连接"

**预期结果**：
- ✅ 显示测试结果（成功/失败）
- ✅ 成功时显示"连接测试成功"
- ✅ 失败时显示错误信息

**优先级**：P0

---

## 八、书签和模板测试 ❌ 已废弃

**说明**：书签和模板功能已删除，以下测试用例已废弃。

### TC-021: 书签管理 ❌ 已废弃

**状态**：功能已删除

### TC-022: SQL模板管理 ❌ 已废弃

**状态**：功能已删除

---

## 九、测试检查清单

### 功能测试
- [ ] TC-001: 创建数据库连接
- [ ] TC-002: 编辑数据库连接
- [ ] TC-003: 删除数据库连接
- [ ] TC-004: 连接列表加载
- [ ] TC-005: MySQL查询执行
- [ ] TC-006: Redis命令执行
- [ ] TC-007: MongoDB查询执行
- [ ] TC-008: SQL执行错误处理
- [ ] TC-009: MySQL表结构查看
- [ ] TC-010: MongoDB集合结构查看
- [ ] TC-011: Redis Key信息查看
- [ ] TC-012: 连接节点右键菜单
- [ ] TC-013: 数据库节点右键菜单
- [ ] TC-014: 表节点右键菜单
- [ ] TC-015: 菜单项功能测试
- [ ] ~~TC-016: 多Tab编辑器~~（暂时移除，仅保留一个编辑区）
- [ ] TC-017: SQL自动保存
- [ ] TC-018: 结果显示
- [ ] TC-019: 大数据量结果
- [ ] TC-020: 右键菜单测试连接
- [ ] ~~TC-021: 书签管理~~（已废弃，功能已删除）
- [ ] ~~TC-022: SQL模板管理~~（已废弃，功能已删除）

### 集成测试
- [ ] 连接管理 → SQL执行流程
- [ ] 右键菜单 → 表结构查看流程
- [ ] SQL执行 → 结果显示流程

### 性能测试
- [ ] 大数据量查询性能
- [ ] ~~多Tab编辑器性能~~（暂时移除）
- [ ] 连接列表加载性能

---

## 十、测试环境

### 数据库环境
- MySQL 8.0+
- Redis 6.0+
- MongoDB 4.4+

### 测试数据
- MySQL：至少包含一个数据库和一个表
- Redis：至少包含一个Key
- MongoDB：至少包含一个集合

---

## 十一、测试报告

**测试日期**：待填写  
**测试人员**：待填写  
**测试结果**：待填写

