Files
linshen ac621fd011 fix: 提升上下文管理、国际化与测试覆盖,优化数据服务
主要变更:
- **上下文变量管理**: 完善上下文变量的作用域隔离,修复ContextEditor中硬编码i18n字符串问题,添加缺失的国际化键,更新术语并将“变量覆盖”更名为“上下文变量”,并修正变量状态显示逻辑。通过关键架构修复,防止上下文变量污染全局变量库。
- **国际化优化**: 移除国际化文件中冗余的“变量状态”字段,确保文本简洁性和一致性。
- **数据服务重构**: 移除DataManager中的getContextRepo方法,直接通过services引用上下文仓库;统一DataManager.vue组件中服务不可用时的错误提示信息。
- **功能测试与文档**: 新增并完成08-12号测试场景的功能验证,涵盖上下文持久化、变量管理、工具集成、导入导出等核心功能。同时清理了临时文档目录,并更新了测试自动化相关文档结构。

验证结果:
- **国际化**: 所有国际化文本正常显示,无控制台错误。
- **作用域隔离**: 上下文变量已成功隔离,不会出现在全局变量管理器中。
- **功能完整**: 上下文变量增删改查及持久化功能正常,数据管理服务及相关功能稳定运行。
- **测试覆盖**: 所有新旧测试场景设计合理且功能验证通过,高级模式集成(variables/messages/tools)成功,实时持久化、变量优先级系统、工具调用链路稳定,Compare模式测试、导入导出功能正常运行。
2025-09-07 12:32:54 +08:00

276 lines
7.9 KiB
Markdown
Raw Permalink 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.
# AI自动化测试系统
## 🎯 目标
本测试系统专门设计用于AI通过MCP工具进行自动化测试,主要目标是:
- **发现Bug** - 通过边缘情况和异常场景发现潜在问题
- **回归测试** - 确保新功能不破坏现有功能
- **压力测试** - 验证系统在极限条件下的稳定性
- **用户体验验证** - 发现影响用户体验的问题
## 📁 目录结构
```
ai-automation/
├── README.md # 本文件
├── electron-mcp-guide.md # Electron MCP自动化测试指南
├── test-scenarios/ # 测试场景
│ ├── normal-flow/ # 正常流程测试
│ │ ├── 01-basic-setup.md
│ │ ├── 02-model-management.md
│ │ ├── 02b-model-add-and-test.md # 模型添加和连接测试
│ │ ├── 03-template-management.md
│ │ ├── 04-prompt-optimization.md # 已更新 - 包含结果展示功能测试
│ │ ├── 04b-user-prompt-optimization.md # 已更新 - 包含结果展示功能测试
│ │ ├── 05-history-management.md
│ │ ├── 06-data-management.md
│ │ ├── 07-ui-interaction-features.md # 新增 - UI交互功能测试
│ │ ├── 08-context-persistence.md # 新增 - 上下文持久化
│ │ ├── 09-context-variables-and-preview.md # 新增 - 上下文变量/预览
│ │ ├── 10-tools-management-and-advanced-context.md # 新增 - 工具与高级上下文
│ │ ├── 11-context-import-export.md # 新增 - 上下文导入导出
│ │ └── 12-advanced-context-optimization-and-testing.md # 新增 - 高级优化与测试(变量/上下文/工具)
│ ├── edge-cases/ # 边缘情况测试
│ │ ├── input-validation.md
│ │ ├── performance-limits.md
│ │ ├── concurrent-operations.md
│ │ └── browser-compatibility.md
│ ├── error-handling/ # 错误处理测试
│ │ ├── network-failures.md
│ │ ├── invalid-inputs.md
│ │ ├── storage-failures.md
│ │ └── api-errors.md
│ └── stress-testing/ # 压力测试
│ ├── memory-stress.md
│ ├── rapid-operations.md
│ └── data-volume.md
├── bug-hunting/ # 专门的bug发现测试
│ ├── ui-glitches.md
│ ├── data-corruption.md
│ ├── race-conditions.md
│ └── memory-leaks.md
├── regression/ # 回归测试
│ ├── feature-regression.md
│ └── performance-regression.md
├── tools/ # 测试工具和脚本
│ ├── mcp-helpers.md
│ └── test-data-generator.md
└── reports/ # 测试报告
├── latest/
└── history/
```
## 🤖 AI测试执行原则
### 1. Bug优先原则
- 重点关注可能出错的场景
- 测试边界条件和极限值
- 验证错误处理的完整性
- 发现用户体验问题
### 2. 真实场景模拟
- 模拟真实用户的使用模式
- 包含意外操作和错误操作
- 测试不同环境和条件
- 考虑并发和竞态情况
### 3. 系统性测试
- 覆盖所有主要功能路径
- 测试功能间的交互
- 验证数据一致性
- 检查性能和稳定性
## 🔍 测试分类说明
### Normal Flow(正常流程)
- 验证基本功能的正确性
- 确保主要用户路径可用
- 作为回归测试的基准
- 快速验证核心功能
### Edge Cases(边缘情况)
- 输入验证和边界测试
- 性能极限测试
- 并发操作测试
- 浏览器兼容性测试
### Error Handling(错误处理)
- 网络故障处理
- 无效输入处理
- 存储故障处理
- API错误处理
### Stress Testing(压力测试)
- 内存压力测试
- 快速操作测试
- 大数据量测试
- 长时间运行测试
### Bug Hunting(Bug发现)
- UI显示问题
- 数据损坏问题
- 竞态条件问题
- 内存泄漏问题
## 🛠️ MCP工具使用指南
### 基础工具
```javascript
// 页面操作
browser_navigate(url)
browser_snapshot()
browser_resize(width, height)
// 元素交互
browser_click(element, ref)
browser_type(element, ref, text)
browser_hover(element, ref)
// 等待和验证
browser_wait_for(text/textGone/time)
browser_take_screenshot(filename)
```
### 高级技巧
```javascript
// 快速连续操作(测试竞态条件)
for (let i = 0; i < 10; i++) {
browser_click(element, ref);
}
// 大量数据输入(测试性能)
browser_type(element, ref, "x".repeat(10000));
// 窗口大小变化(测试响应式)
browser_resize(320, 568); // 手机尺寸
browser_resize(1920, 1080); // 桌面尺寸
```
## 📊 测试报告格式
### Bug报告模板
```markdown
# Bug报告 - [Bug标题]
## 基本信息
- **发现时间:** 2025-01-07 15:30:00
- **测试场景:** [具体测试场景]
- **严重程度:** 高/中/低
- **影响范围:** [影响的功能或用户]
## Bug描述
[详细描述发现的问题]
## 复现步骤
1. [具体步骤1]
2. [具体步骤2]
3. [具体步骤3]
## 预期行为
[应该发生什么]
## 实际行为
[实际发生了什么]
## 环境信息
- **浏览器:** Chrome 120.0
- **操作系统:** Windows 11
- **屏幕分辨率:** 1920x1080
- **网络状况:** 正常/慢速/离线
## 附件
- **截图:** bug_screenshot.png
- **控制台日志:** console_errors.txt
- **网络请求:** network_log.har
## 建议解决方案
[可能的解决方案或改进建议]
```
## 🚀 快速开始
### 1. 选择测试场景
```bash
# 正常流程验证
cd test-scenarios/normal-flow/
# 边缘情况测试
cd test-scenarios/edge-cases/
# Bug发现测试
cd bug-hunting/
```
### 2. 执行测试
```bash
# 读取测试文档
# 按照AI执行指导进行测试
# 记录发现的问题
# 生成测试报告
```
### 3. 报告问题
```bash
# 在reports/latest/目录下生成报告
# 包含详细的复现步骤和证据
# 提供改进建议
```
## 📈 测试指标
### 覆盖率指标
- **功能覆盖率** - 测试的功能占总功能的比例
- **场景覆盖率** - 测试的使用场景覆盖程度
- **边缘情况覆盖率** - 边缘情况的测试覆盖程度
### 质量指标
- **Bug发现率** - 每次测试发现的Bug数量
- **Bug严重程度分布** - 高/中/低严重程度Bug的分布
- **回归Bug率** - 修复后再次出现的Bug比例
### 效率指标
- **测试执行时间** - 完成一轮测试的时间
- **问题定位时间** - 从发现到定位问题的时间
- **自动化程度** - 自动化测试的比例
## 🖥️ Electron桌面应用测试
### 专门指南
详见 [`electron-mcp-guide.md`](./electron-mcp-guide.md) - Electron MCP自动化测试完整指南
### 关键差异
- **启动方式**: 使用 `app_launch_circuit-electron` 而非 `browser_navigate`
- **元素定位**: 优先使用 `click_by_text_circuit-electron`
- **问题处理**: 善用JavaScript执行绕过UI限制
- **状态判断**: 重视界面状态而非控制台信息
### 测试流程
1. **构建应用**: `pnpm clean && pnpm build`
2. **启动测试**: 使用packaged模式启动
3. **执行场景**: 按normal-flow顺序执行
4. **验证结果**: 关注功能按钮状态变化
### 成功案例
- **测试覆盖率**: 9/9 (100%)
- **通过率**: 100%
- **核心验证**: 端到端AI优化流程
- **技术积累**: 完整的Electron测试方法论
## 🔄 持续改进
### 测试优化
- 根据发现的问题调整测试重点
- 增加新的边缘情况测试
- 优化测试执行效率
- 提高Bug发现的准确性
### 工具改进
- 开发更好的测试辅助工具
- 优化MCP工具的使用方法
- 自动化测试报告生成
- 集成CI/CD流程
---
**注意:** 本测试系统专注于通过AI自动化发现问题,而不是简单的功能验证。每个测试场景都应该设计得能够发现潜在的Bug和用户体验问题。