Metadata-Version: 2.4
Name: opentester
Version: 0.1.0.post1
Summary: AI-driven end-to-end testing platform with MCP-First architecture
Project-URL: Homepage, https://github.com/kznr02/OpenTester
Project-URL: Documentation, https://github.com/kznr02/OpenTester#readme
Project-URL: Repository, https://github.com/kznr02/OpenTester.git
Project-URL: Issues, https://github.com/kznr02/OpenTester/issues
Author: OpenTester Team
License-Expression: MIT
License-File: LICENSE
Keywords: ai,automation,cli,gui,mcp,testing,tui
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.13
Requires-Dist: fastapi>=0.132.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp>=1.6.0
Requires-Dist: pexpect>=4.9.0
Requires-Dist: pillow>=12.1.1
Requires-Dist: pyautogui>=0.9.54
Requires-Dist: pydantic-settings>=2.13.1
Requires-Dist: pydantic>=2.12.5
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: python-multipart>=0.0.22
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: rich>=13.0.0
Requires-Dist: typer>=0.15.0
Requires-Dist: uvicorn>=0.41.0
Requires-Dist: websockets>=16.0
Provides-Extra: dev
Requires-Dist: mypy>=1.19.1; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest>=9.0.2; extra == 'dev'
Requires-Dist: ruff>=0.15.2; extra == 'dev'
Description-Content-Type: text/markdown

# OpenTester

**MCP-First 测试执行基础设施**

OpenTester 是专为 AI 编码工具（Claude Code、Cursor、OpenCode 等）设计的测试执行引擎。它提供统一的 DSL 格式和 MCP 接口，让 Agent 能够生成、执行和管理测试用例，实现"编码-测试-修复"的自动化闭环。

## 核心定位

```
┌─────────────────────────────────────────┐
│  AI Agent (Claude Code / Cursor / ...)  │
│  ├─ 生成 DSL 测试用例                    │
│  ├─ 决策测试策略                         │
│  └─ 分析失败原因                         │
├─────────────────────────────────────────┤
│  OpenTester (MCP Server)                │
│  ├─ 验证 DSL 语法                        │
│  ├─ 执行测试 (CLI/GUI/TUI)               │
│  ├─ 存储用例/项目                        │
│  └─ 返回结构化结果                       │
├─────────────────────────────────────────┤
│  Web UI (辅助观察面板)                    │
│  ├─ 查看执行进度                         │
│  ├─ 调试用例（创建/编辑）                 │
│  └─ 查看历史报告                         │
└─────────────────────────────────────────┘
```

## 安装

```bash
pip install opentester
```

## 快速开始

### 启动服务

```bash
# 一键启动 FastAPI + MCP（前台模式）
opentester start

# 后台运行
opentester start --daemon

# 只启动 API
opentester start --api

# 只启动 MCP
opentester start --mcp

# 查看状态
opentester status

# 停止服务
opentester stop

# 环境检查
opentester doctor
```

### 配置 Claude Code

在 `.claude/settings.json` 中添加 MCP 配置：

```json
{
  "mcpServers": {
    "opentester": {
      "url": "http://localhost:8001/mcp"
    }
  }
}
```

### 配置 Claude Desktop (STDIO)

```json
{
  "mcpServers": {
    "opentester": {
      "command": "opentester",
      "args": ["start", "--mcp", "--stdio"]
    }
  }
}
```

## 核心功能

- **DSL 验证**: YAML 格式的测试定义语言验证
- **测试执行**: 支持 CLI、GUI、TUI 多种执行目标
- **项目管理**: 项目存储于 `~/.opentester/projects/`
- **实时监控**: WebSocket 实时推送执行进度

## MCP 工具列表

| 工具 | 描述 |
|------|------|
| `listProjects` | 列出所有测试项目 |
| `getProject` | 获取项目详情 |
| `createProject` | 创建项目 |
| `deleteProject` | 删除项目 |
| `validateDSL` | 验证 DSL 语法 |
| `saveCase` | 保存用例 |
| `deleteCase` | 删除用例 |
| `runCase` | 执行单个用例 |
| `runProject` | 执行整个项目 |
| `stopExecution` | 停止执行 |
| `getExecutionStatus` | 获取执行状态 |
| `getExecutionLog` | 获取详细日志 |
| `listTemplates` | 列出模板 |
| `createTemplate` | 创建模板 |
| `instantiateTemplate` | 从模板创建用例 |

## 端口

- FastAPI: http://localhost:8000
- MCP Server: http://localhost:8001/mcp
- API Docs: http://localhost:8000/docs

## 数据存储

- 项目数据: `~/.opentester/projects/{project_id}.json`
- 执行日志: `~/.opentester/executions/`
- PID 文件: `~/.opentester/pids/`

## 开源协议

MIT License
