# 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 自动化** 🚀
[](https://github.com/testflow/testflow)
[](LICENSE)
[](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)