经 AI Skill Hub 精选评估,AI测试平台 获评「强烈推荐」。这款MCP工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.0 分,适合有一定技术背景的用户使用。
AI驱动的轻量测试管理平台,覆盖需求评审到报告分析
AI测试平台 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
AI驱动的轻量测试管理平台,覆盖需求评审到报告分析
AI测试平台 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/Jaredxh/AITestPlatform
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"ai----": {
"command": "npx",
"args": ["-y", "aitestplatform"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 AI测试平台 执行以下任务... Claude: [自动调用 AI测试平台 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"ai____": {
"command": "npx",
"args": ["-y", "aitestplatform"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
AITestPlatform 是一款AI 驱动的轻量级测试管理平台,目标是把测试团队最耗时的"读需求 → 写用例 → 跑回归 → 看报告"四个环节交给 AI 做,让人专注在需求理解 / 边界覆盖 / 失败诊断这些真正需要判断力的地方。
技术上采用:
@playwright/mcp(微软官方 MCP),AI 直接驱动 chromium与同类平台的差异化优势:
| 差异点 | 说明 |
|---|---|
| 🔌 **AI 用 MCP 操作浏览器** | 不写 selector,靠语义定位元素,对页面 DOM 重构强健 |
| 🧪 **三层数据可信度** | 区分"功能问题"和"测试数据问题",业务通过率自动剔除数据噪音 |
| 🖥️ **服务器也能"看见"AI 的浏览器** | 内置 Xvfb + x11vnc + noVNC,远程实时观察 chromium 操作 |
| 🌐 **VPN / 内网场景一键解** | 双路代理(http_login + chromium 出口分别可控),mac/win/linux 三平台都覆盖 |
| 🛠️ **运维深度** | 25 条排错速查、清理 cron、token 预算守卫、错误回放、镜像瘦身计划全套 |
---
pip install mitmproxy mitmdump --listen-host 0.0.0.0 --listen-port 8118 &
本项目通过开源代码免费为大家提供服务。然而,其持续的开发、维护和服务器运营需要投入大量时间和资源。 
| 部署方式 | 必需 | 推荐版本 |
|---|---|---|
| **本地开发** | Docker(仅 DB) + Python 3.11 + Node 18+ + uv + pnpm | Docker Desktop 最新;Python 3.11;Node 20 LTS |
| **Docker 本地部署** | Docker 20.10+ + Compose v2 | Docker Desktop 4.30+ |
| **Linux 服务器部署** | Docker 20.10+ + Compose v2 | Ubuntu 22.04 / Debian 12 / RHEL 9 |
| **GHCR 拉取部署** | Docker 20.10+ + Compose v2 + 公网(或 GHCR mirror) | 见 [docs/DEPLOYMENT_GHCR.md](docs/DEPLOYMENT_GHCR.md) |
| **VPN 场景(D-1)** | 上面任一 + 宿主机已连接公司 VPN + 一个 HTTP 代理工具(pproxy / mitmproxy / tinyproxy 任一) | — |
| **VPN 场景(D-2)** | Linux 主机 + WireGuard 或 OpenVPN 配置文件 | Ubuntu 22.04+ |
最低硬件:
UI_MEDIA_RETENTION_DAYS 滚动)./run.sh install
./run.sh up
./run.sh add-backend openai # 后端:自动改 pyproject + uv.lock
./run.sh add-frontend dayjs # 前端:自动改 package.json + pnpm-lock
bash scripts/init.sh
```
不用 git clone 整个仓库,不用本地 build,直接拉 GitHub Actions 预构建好的镜像:
```bash
mkdir -p ~/aitestplatform && cd ~/aitestplatform curl -fsSL -o docker-compose.prod.yml \ https://raw.githubusercontent.com/<your-username>/AITestPlatform/main/docker-compose.prod.yml curl -fsSL -o .env.example \ https://raw.githubusercontent.com/<your-username>/AITestPlatform/main/.env.example cp .env.example .env
→ 📦 部署方式(共 5 种方案:本地开发 / Docker 本地 / 服务器自 build / VPN 内网 / GHCR 拉取)
---
提供五种部署模式,覆盖从本地开发到生产环境的所有场景:
| 方案 | 适用场景 | 启动方式 | 首次耗时 |
|---|---|---|---|
| **A** | 本地开发联调(前后端热更新) | ./run.sh dev | 5 分钟 |
| **B** | 本地或测试环境 Docker 一键 | bash scripts/init.sh | 10-15 分钟(含本地 build) |
| **C** | Linux 服务器自己 build 部署 | 同 B + 生产化清单 | 10-15 分钟 |
| **D** | 被测系统在公司内网 / 需 VPN | D-1 宿主机代理 / D-2 容器内 VPN | 同 B/C |
| **⭐ E** | **生产服务器首选**:拉 GHCR 预构建镜像,无需本地 build | 见 [§方案 E](#方案-eghcr-拉取预构建镜像最快3-5-分钟部署--生产首次部署推荐) | **3-5 分钟** |
💡 第一次在服务器上部署? 强烈推荐方案 E:跳过本地 build(节省 10 分钟),直接拉 GitHub Actions 预构建好的镜像,几行命令搞定。
brew install uv node pnpm # macOS
最常用方式。三个容器(db / backend / frontend),一行命令启动。
```bash git clone <repo-url> && cd AITestPlatform
bash scripts/init.sh
./run.sh up-vpn
与方案 B 几乎相同,但有几个生产化要点。
```bash
curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER && newgrp docker
services: db: ports: [] # ← 注释或删除原 5432 行;不写 ports 即不对外
backend 容器仍可经容器网络访问 `db:5432`,无影响。
#### 系统服务化(开机自启)
`docker compose up -d` 加 `restart: unless-stopped` 已能自动重启。如要更严格的开机启动,写一份 systemd unit:
ini
services: backend: deploy: resources: limits: cpus: "2.0" memory: 3G ```
services: vpn: image: lscr.io/linuxserver/wireguard:latest cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.conf.all.src_valid_mark=1 volumes: - ./vpn:/config # 把 .conf 放在 ./vpn/wg_confs/ - /lib/modules:/lib/modules:ro environment: - PUID=1000 - PGID=1000 restart: unless-stopped healthcheck: test: ["CMD", "wg", "show"] interval: 30s
backend: network_mode: "service:vpn" # ← 关键:完全共享 vpn 容器的网络命名空间 depends_on: vpn: condition: service_started db: condition: service_healthy # 注意:当使用 network_mode: service:xxx 时,本服务自身不能再声明 ports。 # backend 的 8000 端口要由 vpn 容器代为暴露: ports: !reset [] vpn: ports: - "${BACKEND_PORT:-8000}:8000" # backend 的 API 端口(宿主机端口随 .env 走) # 6080 不暴露(前端经容器网络反代)
> 注意:`network_mode: service:vpn` 让 backend 完全没有自己的网络栈,**它的 `ports`、`networks`、`extra_hosts` 都不能再写,要写在 vpn 容器上**。
OpenVPN 版本(用 `kylemanna/openvpn` 或 `dperson/openvpn-client`):
yaml services: vpn: image: dperson/openvpn-client:latest cap_add: [NET_ADMIN] devices: ["/dev/net/tun"] volumes: - ./vpn/client.ovpn:/vpn/client.ovpn:ro command: -f "" -r 192.168.0.0/16 -r 10.0.0.0/8 -r 172.16.0.0/12 # 推送内网网段路由 restart: unless-stopped ports: - "8000:8000"
backend: network_mode: "service:vpn" ports: !reset [] depends_on: [vpn, db]
**步骤三:启动**
bash docker compose -f docker-compose.yml -f docker-compose.sidecar-vpn.yml up -d
**步骤四:验证 VPN 隧道与连通性**
bash
适用场景:服务器已装 Docker、希望跳过 5-10 分钟本地 build 的所有部署;首次部署、生产环境、CI/CD 自动化都强烈推荐这种方式。
GitHub Actions 已在仓库 push / tag 时自动构建并推送镜像到 GHCR(GitHub Container Registry),服务器只需 pull 即用,无需 git clone 整个仓库。
镜像地址(假设你的 GitHub 用户名是 your-username):
ghcr.io/your-username/aitestplatform-backend:latest
ghcr.io/your-username/aitestplatform-frontend:latest
```bash
curl -fsSL -o docker-compose.prod.yml \ https://raw.githubusercontent.com/<your-username>/AITestPlatform/main/docker-compose.prod.yml
curl -fsSL -o .env.example \ https://raw.githubusercontent.com/<your-username>/AITestPlatform/main/.env.example
cp .env.example .env
##### 步骤 3:编辑 `.env`(必填,少一个启动不了)
打开编辑器:
bash nano .env # 或 vi .env / vim .env
**关键变量**(生产环境每一项都要改!):
bash
UI_HTTP_LOGIN_PROXY= # 仅 http_login 走它;空 = 关闭 UI_BROWSER_PROXY= # chromium 启动时透传给 --proxy-server UI_BROWSER_PROXY_BYPASS=localhost,127.0.0.1,host.docker.internal,db,backend,frontend SKILL_HTTP_PROXY= # 三期 Skill 包 http_get_json/http_post_json 走它;空 = 回退到 UI_HTTP_LOGIN_PROXY → HTTP_PROXY
| 现象 | 根因 | 解法 |
|---|---|---|
docker compose build 卡在 playwright install | 拉 Chromium 二进制慢(~300MB) | 等待,或预先 docker pull mcr.microsoft.com/playwright/python:v1.59.0 套层 base |
entrypoint.sh: chmod 700 ...: Operation not permitted | volume 挂载点权限被宿主映射成 root,容器里非 root 改不了 | 不影响功能,可忽略;或 volumes: 加 :Z(SELinux)/ :U(rootless) |
| backend 启动卡在 "Waiting for database" 然后 30s 退出 | DB 容器没起来 / 健康检查失败 | docker compose logs db;检查端口冲突 5432 |
Bind for 0.0.0.0:8000 failed: port is already allocated | 服务器上 8000 已被其它项目占用 | .env 加 BACKEND_PORT=7008(或其它空闲端口),docker compose up -d backend 重建即可。容器内 uvicorn 仍是 8000,前端反代不受影响 |
Bind for 0.0.0.0:80 failed: port is already allocated | 服务器上 80 已被其它 nginx / Apache / 项目占用 | .env 加 FRONTEND_PORT=8080(或其它空闲端口),docker compose up -d frontend 重建。改完后访问需带端口:http://your-server-ip:8080 |
alembic upgrade head 报 target database is not up to date | 上次部署中断,alembic_version 表残留 | docker compose exec backend alembic stamp head 然后重启 |
docker compose exec backend alembic upgrade head ```
docker compose -f docker-compose.prod.yml --env-file .env pull docker compose -f docker-compose.prod.yml --env-file .env up -d
./run.sh dev
docker compose up -d
./run.sh docker-smoke ./run.sh docker-smoke-vpn # VPN 场景使用 ```
run.sh 的本地探活会显式绕过宿主机代理;如果你手动 curl localhost 验证,也建议加 --noproxy "*",避免本机 HTTP_PROXY/ALL_PROXY 把请求送到代理端口。
docker-smoke 会检查:
- GET /api/health 是否可访问; - 前端 nginx 页面是否可访问; - 容器内 alembic current 是否能读取当前迁移; - 三期 failure_diagnosis 的 4 个 system__failure_diagnosis__* 工具是否注册到 backend 运行时。
三期功能验收入口:
- 物料语义化:测试物料集编辑页,检查字段 purpose / semantic / source_type 与 CSV 导入的 semantic 列。 - 风险环境:UI 环境列表/编辑页,检查 risk_level 与严格确认文案。 - 即席用例:聊天里说“帮我测试 xxx 流程”,无匹配用例时应出现可编辑的即席步骤确认卡。 - runtime_data:多用例编排中先保存 runtime_data,后续步骤使用 {{runtime.xxx}}。 - 失败诊断:失败执行事件卡点击“失败诊断”,或直接说“请诊断任务 <task_id> 为什么失败”,应输出 FixActionCard。
docker compose up -d --build
docker compose -f docker-compose.prod.yml --env-file .env up -d
API 管理是三期新增的接口测试能力,入口在左侧一级菜单 API 管理,包含 环境配置、API 列表、API 自动化 三个页面。
nano .env
git clone <repo-url> && cd AITestPlatform cp .env.example .env
cp .env.example .env
python -c "from cryptography.fernet import Fernet; print('ENCRYPT_KEY=' + Fernet.generate_key().decode())" >> .env
curl --noproxy "*" http://localhost:${BACKEND_PORT:-8000}/api/health
cp .env.example .env vi .env
pip install pproxy pproxy -l http://0.0.0.0:8118 &
brew install tinyproxy cat >/tmp/tinyproxy.conf <<EOF Listen 0.0.0.0 Port 8118 Allow 127.0.0.1 Allow 192.168.65.0/24 EOF tinyproxy -c /tmp/tinyproxy.conf
**步骤二:宿主机自验证(一定要做)**
bash curl --proxy http://localhost:8118 -sSI https://你的内网域名/api/health
sudo tee /etc/caddy/Caddyfile > /dev/null <<EOF your-domain.com { reverse_proxy localhost:${FRONTEND_PORT:-80} } EOF
sudo systemctl restart caddy
→ 浏览器访问 `https://your-domain.com`(Caddy 自动申请证书 + 续签)。
**前提**:
- 域名 A 记录已指向服务器公网 IP
- 防火墙放行 80 + 443 端口(80 用于 ACME challenge)
#### E-2:服务器日常升级(已有部署 → 拉新镜像)
每次本地 `git push origin main` 后,GitHub Actions 自动构建新镜像并打 `:latest` tag。服务器升级只需 3 行命令:
bash cd ~/aitestplatform
sed -i 's/^IMAGE_TAG=.*/IMAGE_TAG=v1.2.0/' .env
.env(基于 .env.example)所有变量按域分组:
API 管理 → 环境配置,按项目创建环境,例如测试环境、预发环境、生产只读环境。https://api.example.com。{{变量名}} 引用,实际执行时会替换为当前环境变量值。1. UI 自动化 → 环境列表 → 创建 2. 关键字段: - Base URL:被测系统首页 - Browser:chromium / firefox / webkit - Headless:是否无头;服务器场景设 false 配合 noVNC 看画面 - 前置步骤: - http_login:直接调登录接口拿 token,最快 - ai_login:让 AI 在登录页操作(复杂场景) - state_inject:注入预录制的 storage_state - 默认物料集:每次执行自动加载
| 模块 | 能力 | 优势 |
|---|---|---|
| 🧩 **Skill 体系** | OpenClaw 协议对齐;支持 SKILL.md、触发词、always / agent_callable 自动激活、自定义 skill 导入、用量统计与安全扫描 | 把平台能力沉淀为可复用工具包 |
| 🌐 **API 环境配置** | 项目级 API 环境 URL;环境变量增删改查;接口请求中通过 {{变量名}} 引用 | 测试 / 预发 / 生产环境切换更清晰 |
| 📡 **API 列表** | 独立 API 模块树;接口名称、方法、环境 URL / 自定义 URL、Path、Query、Header、Body、断言管理 | 常规接口测试配置可沉淀到项目模块 |
| 🔎 **接口调试** | 单接口执行;请求和响应在当前页展示;响应 JSON 格式化;复制响应体、复制实际 curl | 调试闭环更接近 Reqable / Postman 的使用习惯 |
| 📊 **批量执行报告** | 勾选多个 API 或执行模块下全部 API;报告展示环境、状态码、通过/失败、断言期望值和实际值 | 快速验证一组接口健康度 |
| 🔁 **API 自动化** | 多接口顺序编排;上游响应字段提取为 {{runtime.xxx}};下游 Query/Header/Body/Path 依赖注入;支持手动和定时执行 | 覆盖登录取 token、创建数据后查询、链路接口回归等场景 |
---
完成后:
| 服务 | 地址 |
|---|---|
| 前端 | http://localhost(端口默认 80,由 `.env` 的 `FRONTEND_PORT` 控制;80 是 HTTP 默认端口,URL 不需要写) |
| 后端 Swagger | http://localhost:8000/docs(端口默认 8000,由 `.env` 的 `BACKEND_PORT` 控制) |
默认管理员:`admin / admin123`,**首次登录后立即修改!**
> **服务器上 80 / 8000 被其它项目占用?** 在 `.env` 里加:
> bash > FRONTEND_PORT=8080 # 浏览器访问端口(改了之后访问要带端口) > BACKEND_PORT=7008 # API 端口 > > 然后 `docker compose up -d` 重建即可。容器内 nginx / uvicorn 仍是 80 / 8000,
> 前端反代不受宿主端口影响(详见上文 [端口](#端口) 章节)。
#### B-2:手动逐步(看清楚每一步)
bash git clone <repo-url> && cd AITestPlatform
python3 -c "from cryptography.fernet import Fernet; print('ENCRYPT_KEY=' + Fernet.generate_key().decode())" >> .env
服务器没有 python3 时,用 openssl 替代:
bash echo "SECRET_KEY=$(openssl rand -base64 48 | tr -d '\n')" >> .env echo "ENCRYPT_KEY=$(openssl rand -base64 32 | head -c 44 | tr '+/' '-_')=" >> .env
##### 步骤 4:(仅 private 包需要)登录 GHCR
GitHub 上每个 GHCR 包默认是 **private**,需要先在 GitHub 上把包改成 public(推荐)或 docker login。
**推荐:把包改 public**(一次性操作):
> GitHub → 你的头像 → Packages → 选中 `aitestplatform-backend` / `aitestplatform-frontend` → 右侧 `Package settings` → 滚到底 `Change visibility` → `Public`
如果坚持 private,则需要在服务器上登录:
bash
| 模块 | 主要资源路径 | 主要能力 |
|---|---|---|
auth | /api/auth/* | 登录、注册、刷新、修改密码、退出 |
users | /api/users/* | 用户 CRUD + 个人资料 |
projects | /api/projects/* | 项目 + 成员 + 角色绑定 |
requirements | /api/requirements/* | 文档上传 / 解析 / 评审 / SSE 流式生成 |
llm | /api/llm-configs/*(兼容 /api/llm/*) | LLM Provider 配置 |
chat | /api/chat/* | AI 对话 SSE、会话管理、意图识别 |
prompts | /api/prompts/*、/api/projects/{id}/prompts/* | 系统 / 自定义模板、版本管理 |
testcases | /api/testcases/* | 用例 CRUD、模块树、AI 批量生成(流式) |
dashboard | /api/dashboard/*、/api/projects/{id}/ui-stats | 项目维度指标聚合(含 UI 双视图 + 任务通过率) |
ui_automation | /api/ui-environments/*、/api/ui-preconditions/*、/api/ui-executions/*、/api/ui-automation/live-view/*、/api/projects/{id}/ui-environments/*、/api/projects/{id}/ui-executions/* | 环境、前置步骤、执行、SSE 进度、live-view 状态、视频/trace/截图下载 |
test_data | /api/test-data-sets/*、/api/test-data-items/*、/api/projects/{id}/test-data-sets/* | 物料集 / 物料 / 推荐 / 合并预览 / reveal |
api_testing | /api/projects/{id}/api-test-environments/*、/api/projects/{id}/api-tests/*、/api/projects/{id}/api-automation-tasks/* | API 环境、环境变量、API 列表、单接口调试、批量执行、API 自动化任务 |
admin | /api/admin/* | 超管能力(手动触发清理 cron 等) |
| 健康检查 | /api/health | 不需鉴权 |
完整 API 文档:开发模式 DEBUG=true 下访问 http://localhost:${BACKEND_PORT:-8000}/docs(生产模式自动关闭)。
API 管理 → API 列表,左侧维护独立的 API 模块树。参数、请求头、请求体 使用 Tab 管理。Query / Header 使用 key-value 行;JSON 请求体可直接填写原始 JSON。API 管理 → API 自动化,创建任务并按顺序添加多个 API 步骤。runtime 变量。{{runtime.xxx}},例如先登录提取 token,再把 Authorization: Bearer {{runtime.token}} 注入后续接口。---
---
./run.sh db-migrate "add foo column" # 自动生成
高效的测试管理平台,AI驱动的自动化执行
该工具未明确声明开源协议,商业使用前请联系原作者确认授权范围,避免侵权风险。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
AI Skill Hub 点评:AI测试平台 的核心功能完整,质量优秀。对于Claude Desktop / Claude Code 用户来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | AITestPlatform |
| 原始描述 | 开源MCP工具:AI驱动的轻量测试管理平台——AI做重活,让人做决策。 一站式覆盖需求评审→案例→UI自动化执行→生成报告分析的全流程;内置LLM工具调用循环跑+Playwr。⭐8 · Python |
| Topics | AI测试管理自动化 |
| GitHub | https://github.com/Jaredxh/AITestPlatform |
| 语言 | Python |
收录时间:2026-05-27 · 更新时间:2026-05-27 · License:未公布 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端