基于 LLM (DeepSeek/OpenAI) 和 Playwright 的工业级 UI 自动化测试代码生成流水线。将自然语言需求自动转换为高质量的 Pytest + POM 代码。
- 🤖 AI 驱动: 自动生成 Page Object Model (POM) 和 Pytest 测试脚本
- 🔄 断点续传: 支持分步执行 (Init -> Scan -> Model -> Plan -> Code)
- 📝 数据驱动: 自动生成 YAML 测试数据,实现逻辑与数据分离
- 📊 Allure 报告: 内置集成,一键生成美观测试报告
- 🛡️ 生产级健壮性: 智能处理流式加载、动态元素和 SPA 页面
Init (初始化) -> Scan (扫描) -> Model (建模) -> Plan (规划) -> Code (编码) -> Test (测试)
需要 Python 3.10+。
git clone https://github.com/your-username/ai_ui_auto.git
cd ai_ui_auto
# 设置环境
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium复制 .env.example 到 .env 并填入 API Key (推荐使用 DeepSeek)。
OPENAI_API_KEY=sk-your-key
OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_MODEL=deepseek-chat方式 A: 一键生成与执行
python main.py run --url "https://example.com" --req "验证登录功能: 1.成功登录 2.密码错误提示"方式 B: 分步调试
python main.py init --url "..." --req "..." # 初始化
python main.py scan # 扫描页面结构
python main.py model # 生成 POM
python main.py plan # 生成测试计划
python main.py code # 生成测试代码python main.py report --serve| 命令 | 说明 |
|---|---|
python main.py run |
运行完整流水线 (Scan -> Code -> Test) |
python main.py batch |
运行 tasks.yaml 中的批量任务 |
python main.py test |
运行生成的测试用例 (支持 -k 过滤) |
python main.py report |
生成 Allure 测试报告 |
系统会自动识别多场景需求,并在 generated/data/ 下生成 YAML 数据文件。
需求示例: "验证登录: 1.用户A成功 2.用户B失败"
自动生成的 generated/data/test_login_data.yaml:
parameter_sets:
- id: success_case
values: { username: "userA", expected: "success" }
- id: fail_case
values: { username: "userB", expected: "error" }测试代码会自动加载此文件进行参数化测试。
ai_ui_auto/
├── core/ # 核心 Agent (Scanner, POMAgent, CoderAgent)
├── generated/ # [自动生成] 的产物目录
│ ├── data/ # 测试数据 (YAML)
│ ├── pages/ # POM 代码
│ └── tests/ # Pytest 脚本
├── tasks.yaml # 批量任务配置
└── main.py # CLI 入口