AI-driven end-to-end testing platform with MCP-First architecture
Project description
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 (辅助观察面板) │
│ ├─ 查看执行进度 │
│ ├─ 调试用例(创建/编辑) │
│ └─ 查看历史报告 │
└─────────────────────────────────────────┘
安装
pip install opentester
快速开始
启动服务
# 一键启动 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 配置:
{
"mcpServers": {
"opentester": {
"url": "http://localhost:8001/mcp"
}
}
}
配置 Claude Desktop (STDIO)
{
"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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
opentester-0.1.1.tar.gz
(80.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opentester-0.1.1.tar.gz.
File metadata
- Download URL: opentester-0.1.1.tar.gz
- Upload date:
- Size: 80.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34853625071d508e696abed550856c435017a027c7c7ae6d586ef90e2d763322
|
|
| MD5 |
afbc2d0cf98eeda8974675e60a50edee
|
|
| BLAKE2b-256 |
29be167e5299b66074bae9c2f017f03709316771c33b17ec900ca01aa6eb5478
|
File details
Details for the file opentester-0.1.1-py3-none-any.whl.
File metadata
- Download URL: opentester-0.1.1-py3-none-any.whl
- Upload date:
- Size: 55.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2b24f30628dd0172a48afd0c11e7686264cc0215d471da56be07a861777dde7
|
|
| MD5 |
528419ea52a4a28b269d1a226a12ace5
|
|
| BLAKE2b-256 |
44dadee61c7098ba23e95ed022d4f58ecd9780949b59a065a545f205ff89a6bc
|