一个创新的自动化测试平台,允许测试人员使用自然语言描述测试意图,自动生成并执行 UI 测试用例。
现在支持双执行器模式!
- 🎭 Playwright: 传统、稳定、精确控制
- 🌟 Midscene AI: 视觉驱动、智能定位、自然语言
📚 快速开始: MIDSCENE_QUICKSTART.md
📖 完整指南: MIDSCENE_INTEGRATION.md
🎉 集成总结: MIDSCENE_INTEGRATION_SUMMARY.md
- 自然语言驱动:用自然语言描述测试场景,AI 自动生成标准化测试用例
- 双执行器模式:支持 Playwright 和 Midscene AI 两种执行器,灵活选择
- Playwright: CSS 选择器定位,精确可控
- Midscene AI: 自然语言定位,智能适应
- 智能脚本生成:自动将测试用例转换为 Playwright 或 Midscene 执行脚本
- AI 结果判定:使用 LLM 智能分析测试结果,提供详细判定理由
- 完整工件管理:自动采集截图、日志、HAR 文件等测试证据
- 项目级配置:支持多项目管理,每个项目可配置独立的 LLM
- 权限管理:基于角色的访问控制(Admin/Member)
- Web 框架:FastAPI (Python)
- 数据库:MySQL 8.0+
- ORM:SQLAlchemy
- 认证:JWT + bcrypt
- AI 集成:OpenAI / Anthropic
- 自动化引擎:Playwright
- 加密:Cryptography (AES-256)
- 框架:Vue 3
- 状态管理:Pinia
- UI 组件:Element Plus
- 路由:Vue Router
- HTTP 客户端:Axios
- 构建工具:Vite
testserver/
├── backend/ # 后端服务
│ ├── app/
│ │ ├── api/ # API 端点
│ │ │ └── endpoints/
│ │ │ ├── auth.py
│ │ │ ├── users.py
│ │ │ ├── projects.py
│ │ │ ├── test_cases.py
│ │ │ └── test_runs.py
│ │ ├── models/ # 数据模型
│ │ │ ├── user.py
│ │ │ ├── project.py
│ │ │ ├── test_case.py
│ │ │ ├── test_run.py
│ │ │ ├── step_execution.py
│ │ │ └── audit_log.py
│ │ ├── schemas/ # Pydantic schemas
│ │ ├── services/ # 业务逻辑
│ │ │ ├── llm_service.py
│ │ │ └── playwright_executor.py
│ │ ├── utils/ # 工具函数
│ │ │ ├── security.py
│ │ │ └── encryption.py
│ │ ├── config.py # 配置管理
│ │ └── database.py # 数据库连接
│ ├── main.py # 应用入口
│ ├── init_db.sql # 数据库初始化脚本
│ ├── requirements.txt # Python 依赖
│ └── .env # 环境变量
│
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── api/ # API 客户端
│ │ ├── components/ # Vue 组件
│ │ ├── views/ # 页面视图
│ │ ├── stores/ # Pinia stores
│ │ ├── router/ # 路由配置
│ │ ├── App.vue
│ │ └── main.js
│ ├── index.html
│ ├── package.json
│ └── vite.config.js
│
└── artifacts/ # 测试工件存储
└── runs/
└── {run_id}/
├── screenshots/
├── logs/
└── network/
- Python 3.9+
- Node.js 16+
- MySQL 8.0+
- npm 或 yarn
# 创建数据库并执行初始化脚本
mysql -u root -p < backend/init_db.sql默认会创建管理员账号:
- 用户名:
admin - 密码:
admin
cd backend
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
# 编辑 .env 文件,设置数据库连接信息
# 安装 Playwright 浏览器
playwright install chromium
# 启动服务
python main.py后端服务将在 http://localhost:8000 启动
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev前端应用将在 http://localhost:5173 启动
打开浏览器访问 http://localhost:5173
使用默认账号登录:
- 用户名:
admin - 密码:
admin
- 登录后进入「项目管理」
- 点击「创建项目」
- 填写项目信息:
- 项目名称
- 测试站点 URL
- LLM 配置(提供商、模型、API 密钥)
- 保存
- 进入项目详情页
- 点击「创建测试用例」
- 输入自然语言测试描述,例如:
访问登录页面,输入用户名admin和密码admin, 点击登录按钮,验证成功跳转到主页 - 系统将自动生成:
- 标准化测试步骤
- Playwright 执行脚本
- 可以手动调整生成的内容
- 保存用例
- 在测试用例列表中点击「执行」
- 系统将:
- 启动 Playwright 浏览器
- 逐步执行测试脚本
- 采集每步的截图
- 记录控制台日志和网络请求
- 执行完成后,LLM 自动分析结果
- 查看详细的执行报告和判定理由
测试运行详情包含:
- 步骤执行时间线
- 每步的截图
- 控制台日志
- HAR 网络文件
- LLM 智能判定结果和理由
# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=ui_test_platform
# JWT 配置
JWT_SECRET_KEY=your-secret-key-change-in-production
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=1440
# 服务器配置
API_HOST=0.0.0.0
API_PORT=8000
# 工件存储路径
ARTIFACTS_PATH=../artifacts
# 执行配置
MAX_EXECUTION_TIME=300支持的 LLM 提供商:
-
OpenAI
- Provider:
openai - 模型示例:
gpt-4,gpt-3.5-turbo - 需要 OpenAI API Key
- Provider:
-
Anthropic
- Provider:
anthropic - 模型示例:
claude-3-opus,claude-3-sonnet - 需要 Anthropic API Key
- Provider:
- 密码加密:使用 bcrypt 哈希存储密码
- JWT 认证:基于令牌的无状态认证
- API 密钥加密:LLM API 密钥使用 AES-256 加密存储
- 角色权限:基于角色的访问控制
- 审计日志:记录关键操作(待完善)
- user:用户表(认证、权限)
- project:项目表(包含 LLM 配置)
- test_case:测试用例表
- test_run:运行记录表
- step_execution:步骤执行记录表
- audit_log:审计日志表
✅ 已实现
- 用户认证与授权
- 项目管理(含 LLM 配置)
- 自然语言转测试用例
- 测试用例转 Playwright 脚本
- Playwright 脚本执行
- 截图、日志、HAR 采集
- LLM 智能结果判定
- 基础前端界面
⏳ 待完善
- 完整的测试用例创建表单
- 测试运行详情页面
- 用户管理界面
- 审计日志查看
- 工件下载功能
- 数据统计和可视化
🚫 MVP 不包含
- 审批流程
- CI/CD 集成
- 消息通知
- 数据导入导出
- SSO 单点登录
- 视频录制
- 云并发执行
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可证
本项目基于设计文档实现,旨在提供一个创新的自然语言驱动的 UI 自动化测试解决方案。
如有问题,请提交 Issue 或联系开发团队。
注意:这是一个 MVP 版本,部分功能仍在开发中。请勿在生产环境中使用未经充分测试的代码。