Skip to content

Repository files navigation

AI UI 自动化生成器 (AI-UI-Auto)

基于 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 (测试)

🚀 快速开始

1. 安装

需要 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

2. 配置

复制 .env.example.env 并填入 API Key (推荐使用 DeepSeek)。

OPENAI_API_KEY=sk-your-key
OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_MODEL=deepseek-chat

3. 运行

方式 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                         # 生成测试代码

4. 查看报告

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 入口

📄 许可证

MIT License

About

AI驱动的UI自动化测试代码生成流水线 - 将自然语言需求转换为Playwright/Pytest代码

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages