Metadata-Version: 2.4
Name: ai-ui-testing
Version: 0.2.2
Summary: AI 驱动的 Web UI 自动化测试框架（基于 Playwright + pytest 封装）
Author: my_idea
License-Expression: MIT
Keywords: ui-testing,playwright,pytest,ai,automation
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: playwright>=1.40
Requires-Dist: pytest>=8.0
Requires-Dist: pytest-rerunfailures>=14.0
Requires-Dist: PyYAML>=6.0
Requires-Dist: pydantic>=2.5
Provides-Extra: allure
Requires-Dist: allure-pytest>=2.13; extra == "allure"
Provides-Extra: openai
Requires-Dist: openai>=1.30; extra == "openai"
Provides-Extra: parallel
Requires-Dist: pytest-xdist>=3.5; extra == "parallel"
Provides-Extra: dev
Requires-Dist: pytest-cov>=4.1; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Dynamic: license-file

# ai-ui-testing

AI 驱动的 Web UI 自动化测试框架（基于 Playwright + pytest 封装）

## 特性

- **AI 定位器与自动修复**：自然语言描述元素（"登录按钮"），页面快照驱动生成并校验定位器；失效自动修复并写入学习缓存
- **AI 失败分析**：失败自动采集截图 + DOM 快照 + traceback，给出根因与修复建议
- **自然语言用例生成**：YAML 描述用例意图 → 生成 pytest 代码，按模块保存（描述 + 代码配对）
- **登录态复用**：登录一次保存 cookies/localStorage，用例间自动复用（session 隔离，绕开 SSO/扫码/验证码）
- **外部 AI 可编排**：inspect / act / login 能力命令（输出 JSON），配合 init 生成的 AGENTS.md，AI agent 自动按规范开发用例
- **Mock 降级**：无 API Key 完整可用、可演示、可写用例
- **开箱即用**：`ai-ui -h / init / run / gen / index / analyze` 一条龙

## 安装

```bash
pip install ai-ui-testing
playwright install chromium
```

## 快速开始

```bash
ai-ui init    # 生成项目骨架（含 AGENTS.md / CLAUDE.md，供 AI agent 自动读取）
ai-ui run     # 运行示例用例（mock 模式，无需 API Key）
```

## 写用例

```python
from ai_ui_testing.base_page import BasePage

class LoginPage(BasePage):
    locators = {"username": "#username", "login": "button:has-text('登录')"}
    descriptions = {"login": "登录按钮"}   # 供 AI 定位/修复

    def login(self, user, pwd):
        self.el("username").fill(user)
        self.el("login").click()
        return self
```

或用 AI 对话式开发：AI agent 读取项目根的 `AGENTS.md`，按规范完成「探查页面 → 登录 → 生成用例 → 运行验证」。

## 文档

完整文档随 `ai-ui init` 生成（`docs/` 目录 + `AGENTS.md`），覆盖：POM 编写、AI 能力、登录态复用、CI 集成、外部 AI 驱动。
