# testflow **Repository Path**: vibot/testflow ## Basic Information - **Project Name**: testflow - **Description**: TestFlow - AI 驱动的自动化测试平台。支持 Axure 原型一键生成测试用例,AI 批量修改,MCP + Playwright 自动化执行。基于 React 18 + TypeScript + Node.js + MySQL 构建,集成 RAG 知识库增强,让测试用例编写效率提升。 - **Primary Language**: TypeScript - **License**: GPL-3.0 - **Default Branch**: 1.0.4 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-11-11 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TestFlow
**从 Axure 原型 10 分钟生成测试用例,用自然语言执行 UI 自动化** 🚀 [![Version](https://img.shields.io/badge/version-2.5.0-blue.svg)](https://github.com/testflow/testflow) [![License](https://img.shields.io/badge/license-GNU%20GPL-green.svg)](LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org) [快速开始](#-快速开始) · [功能特性](#-核心创新) · [文档](docs/) · [问题反馈](https://github.com/testflow/testflow/issues)
--- ## 💡 为什么选择 TestFlow? ### 传统测试的痛点 **① 编写用例阶段**: - ⏱️ 耗时 2-3 天手工编写 - 📉 覆盖率仅 60-70% - 🔁 易错点反复遗漏(边界值、风险场景) **② 执行用例阶段**: - 💻 需要编写代码(Selenium/Playwright) - 🎬 或使用录制回放(UI 变化即失效) - 🔧 维护成本极高 ### TestFlow 的解决方案 **① AI 编写用例**: - ⚡ **10 分钟完成**(从 Axure 原型一键生成) - 🎯 **覆盖率 85-95%**(AI + RAG 知识库增强) - 🧠 **自动补充边界值和风险场景**(+40% 专业度) **② 自然语言执行**: - 🗣️ **无需编写代码**(写 "点击登录按钮" 即可执行) - 🤖 **AI 智能元素定位**(UI 变化自动适配) - 📊 **实时进度监控**(WebSocket 推送 + 自动截图) --- ## ✨ 三大核心创新 ### 1️⃣ 🎨 AI 测试用例生成(Axure → 测试用例) 从原型文件到测试用例,**效率提升 20-50 倍**。 #### 工作流程:2 步审核 + 3 阶段生成 ``` 📤 上传 Axure HTML 文件 ↓ AI 深度解析 🤖 生成需求文档(Markdown) ↓ ✋ 人工审核修正(第 1 个审核点) ↓ 🔄 阶段 1:AI 拆分测试模块(3-6 个模块) ↓ ✋ 选择要生成的模块(第 2 个审核点) ↓ 🎯 阶段 2:AI 生成测试目的(每个模块 2-8 个测试目的) ↓ ✋ 选择要生成的测试目的(第 3 个审核点) ↓ ✅ 阶段 3:AI 生成测试点 + RAG 知识库增强(每个目的 3-10 个测试点) ↓ ✋ 审核/编辑/保存(第 4 个审核点) ↓ 💾 一键保存到用例库 ``` #### 核心优势 | 指标 | 传统手工 | TestFlow AI | 提升 | |------|---------|------------|------| | **编写时间** | 2-3 天 | **10-30 分钟** | **20-50x** ⚡ | | **功能覆盖率** | 60-70% | **85-95%** | **+25-35%** | | **边界值覆盖** | 40-60% | **80-95%** | **+40-55%** 🔍 | | **风险场景识别** | 50-70% | **85-95%** | **+35-45%** 🛡️ | [查看详细文档](docs/AI_GENERATOR.md) --- ### 2️⃣ 🧠 RAG 知识库增强(向量数据库) 让 AI 从四个维度记住团队的测试经验,避免重复踩坑。 #### 四大知识维度 | 维度 | 说明 | 示例 | |------|------|------| | 📘 **业务规则** | 常见业务逻辑和验证规则 | "订单金额必须 > 0,小数点后最多2位" | | 📗 **测试模式** | 成熟的测试设计模式 | "组合查询边界值测试模板" | | 📙 **历史踩坑** | 团队遇到的易错点和缺陷 | "库存扣减未考虑并发导致超卖" | | 📕 **风险场景** | 高风险和安全相关测试 | "支付回调重复通知导致重复扣款" | #### 工作原理 ``` 用户需求:"生成订单创建的测试用例" ↓ 🔍 向量化查询(阿里通义 Embedding 1024 维) ↓ 📚 Qdrant 语义检索(相似度 ≥ 0.5,从四大维度检索) 📘 业务规则:"订单金额必须 > 0" 📗 测试模式:"组合查询边界值测试模板" 📙 历史踩坑:"库存扣减未考虑并发导致超卖" 📕 风险场景:"支付回调重复通知导致重复扣款" ↓ 🎯 注入 AI Prompt(知识增强) ↓ 📝 输出专业测试用例 ✅ 包含金额边界值测试(0, -1, 0.001, 999999.99) ✅ 包含并发库存扣减测试(100 个并发请求) ✅ 包含支付回调幂等性测试(重复通知验证) ``` #### 核心价值 | 指标 | 无 RAG | 有 RAG | 提升 | |------|--------|--------|------| | **边界值覆盖率** | 40-60% | **80-95%** | **+40-55%** | | **风险场景识别** | 50-70% | **85-95%** | **+35-45%** | | **专业准确性** | 75-85% | **90-98%** | **+15-20%** | [查看 RAG 配置指南](docs/RAG_SETUP.md) --- ### 3️⃣ 🗣️ 自然语言执行 UI 自动化 无需编写代码,用自然语言描述即可执行浏览器自动化。 #### 对比传统方式 **❌ 传统 Selenium/Playwright 代码**: ```python from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("https://example.com/login") username = driver.find_element(By.XPATH, "//input[@id='username']") username.send_keys("admin@test.com") # ... 数十行代码 ``` **✅ TestFlow 自然语言执行**: ``` 1. 导航到登录页面 https://example.com/login 2. 在用户名输入框输入 admin@test.com 3. 在密码输入框输入 password123 4. 点击登录按钮 5. 验证页面显示"欢迎回来" ``` #### 技术原理 ``` 自然语言步骤 ↓ AI 解析器(理解语义) ↓ MCP 命令生成 ↓ Playwright 浏览器自动化 ↓ 实时截图 + WebSocket 推送 ``` #### 核心优势 | 维度 | Selenium/Playwright | 录制回放工具 | **TestFlow** | |------|---------------------|-------------|-------------| | **编写方式** | 编写代码 | 录制操作 | **自然语言描述** ✍️ | | **技术门槛** | 需要编程基础 | 无需编程 | **无需编程** 👍 | | **维护成本** | 中(需修改选择器) | 极高(UI 变化即失效) | **低(AI 智能适配)** 💰 | | **灵活性** | 高 | 低(无法修改录制脚本) | **高** 🔧 | | **元素定位** | 手动写选择器 | 固定坐标/选择器 | **AI 智能匹配** 🤖 | [查看执行详解](docs/EXECUTION.md) --- ## 🚀 快速开始 ### 一键启动(推荐) ```bash # 克隆项目 git clone https://github.com/testflow/testflow.git cd testflow # 一键启动(自动安装依赖、配置环境、启动服务) node scripts/start.js ``` ### 访问系统 ``` 前端: http://localhost:5173 默认账号: admin / admin ``` ### 可选:启用 RAG 知识库 ```bash # 启动 Qdrant 向量数据库 docker run -d -p 6333:6333 qdrant/qdrant # 配置 .env 文件 QDRANT_URL=http://localhost:6333 EMBEDDING_PROVIDER=aliyun EMBEDDING_API_KEY=your_aliyun_api_key # 重启服务 npm run dev ``` 详细安装指南:[INSTALLATION.md](docs/INSTALLATION.md) --- ## 🎮 使用指南 ### 1. AI 生成测试用例 ``` 功能测试用例 → AI 生成器 → 上传 Axure HTML → 生成需求文档 → 审核修正 → 生成测试模块 → 选择模块 → 生成测试目的 → 选择目的 → 生成测试点(RAG 增强)→ 保存 ``` ### 2. 执行测试用例 ``` 测试用例管理 → 选择用例 → 点击执行 → 实时监控 → 查看结果和截图 ``` ### 3. AI 批量修改 ``` 测试用例管理 → AI 批量更新 → 描述变更需求 → 审核提案 → 应用修改 ``` --- ## 🏗️ 技术栈 ### 核心技术 | 层级 | 技术 | 说明 | |------|------|------| | **前端** | React 18 + TypeScript + Tailwind CSS | 现代化 UI | | **后端** | Node.js + Express + Prisma ORM | API 服务 | | **数据库** | MySQL 8.0 | 关系型数据库 | | **AI** | OpenRouter (GPT-4o/DeepSeek/Claude/Gemini) | 多模型支持 | | **RAG** | Qdrant + 阿里通义 Embedding (1024 维) | 知识库增强 | | **自动化** | MCP + Playwright | 浏览器自动化 | | **实时通信** | WebSocket | 进度推送 | 完整架构:[ARCHITECTURE.md](docs/ARCHITECTURE.md) --- ## 📁 项目结构 ``` project/ ├── src/ # 前端源码 │ ├── components/ # React 组件 │ ├── pages/ # 页面(测试用例管理、AI 生成器) │ └── services/ # API 客户端 ├── server/ # 后端源码 │ ├── routes/ # API 路由 │ ├── services/ # 核心服务 │ │ ├── mcpClient.ts # MCP 客户端(自然语言执行) │ │ ├── aiParser.ts # AI 解析器(自然语言 → MCP 命令) │ │ ├── testExecution.ts # 测试执行编排 │ │ └── testCaseKnowledgeBase.ts # RAG 知识库 │ └── middleware/ # 中间件 ├── prisma/ # 数据库 │ └── schema.prisma # 数据库模式 ├── docs/ # 文档 │ ├── INSTALLATION.md # 安装指南 │ ├── AI_GENERATOR.md # AI 生成器详解 │ ├── RAG_SETUP.md # RAG 配置指南 │ ├── EXECUTION.md # 自然语言执行原理 │ ├── ARCHITECTURE.md # 技术架构 │ ├── CONFIGURATION.md # 配置详解 │ └── TROUBLESHOOTING.md # 故障排除 └── scripts/ # 工具脚本 ``` --- ## 📚 文档 - [安装指南](docs/INSTALLATION.md) - 详细安装步骤和系统要求 - [AI 生成器详解](docs/AI_GENERATOR.md) - 从 Axure 到测试用例的完整流程 - [RAG 知识库配置](docs/RAG_SETUP.md) - 向量数据库配置和知识管理 - [自然语言执行原理](docs/EXECUTION.md) - 技术实现详解和最佳实践 - [技术架构](docs/ARCHITECTURE.md) - 系统架构和核心服务 - [配置说明](docs/CONFIGURATION.md) - 环境变量配置详解 - [故障排除](docs/TROUBLESHOOTING.md) - 常见问题和解决方案 --- ## 🐛 常见问题 ### 数据库连接失败 ```bash npx prisma migrate deploy npx prisma generate ``` ### Playwright 浏览器缺失 ```bash npx playwright install chromium ``` ### RAG 知识库连接失败 ```bash curl http://localhost:6333/health docker restart ``` 更多问题:[TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) --- ## 🤝 贡献 & 支持 欢迎 Star ⭐ / Fork 🍴 / PR 🔧 - [提交 Bug](https://github.com/testflow/testflow/issues) - [功能建议](https://github.com/testflow/testflow/issues) - [贡献指南](CONTRIBUTING.md) --- ## 📄 开源许可 GNU General Public License v3.0 © TestFlow Team 查看完整许可:[LICENSE](LICENSE) --- ## 🌟 致谢 感谢以下项目和团队: - [Anthropic](https://www.anthropic.com) - MCP 协议 - [Playwright](https://playwright.dev) - 浏览器自动化 - [Qdrant](https://qdrant.tech) - 向量数据库 - [React](https://reactjs.org) - 前端框架 - [阿里云通义千问](https://dashscope.aliyuncs.com) - Embedding API ---
**TestFlow - 让自动化测试变得简单而强大!** 🚀 Made with ❤️ by TestFlow Team [⬆ 返回顶部](#testflow)