Mobile Testing AI Agent MCP Server
移动测试与移动自动化 AI 代理 MCP 服务器
由 AI 代理和 MCP 工具驱动的移动测试、移动自动化、移动 QA 和移动测试自动化框架。
项目概述:移动测试、移动自动化和移动 QA
本仓库提供了一个 AI 驱动的框架,用于移动测试和移动测试自动化(以及 Web 验证),包含:
规划代理 (Planner Agent):探索目标应用或站点,并为移动 QA 生成结构化的 Markdown 测试计划。
生成代理 (Generator Agent):将 Markdown 测试计划转换为可执行的 Playwright 或 Mobilewright 测试,用于移动自动化工作流。
自愈代理 (Healer Agent):运行测试,检测故障,并尝试自动修复循环,以提高移动测试自动化的稳定性。
Android 和 iOS 编排器 (Orchestrators):为每个平台和移动测试生命周期运行“规划 -> 生成 -> 自愈”端到端流水线。
MCP 服务器:通过 stdio 将框架作为可调用的 MCP 工具暴露给 AI 客户端和自动化平台。
该框架旨在加速移动测试编写,提高测试稳定性,并为 AI 辅助的移动 QA 工作流提供可扩展的基准。
移动测试自动化快速设置(一条命令)
对于快速 Web 就绪设置:
npm install && npx playwright install chromium然后运行默认的 Web 测试:
npm run test:web可选的环境设置:
cp .env.example .env在 Windows PowerShell 上:
Copy-Item .env.example .env移动自动化和移动 QA 的依赖项
必需
Node.js 18+
npm 9+
Playwright Chromium 浏览器
核心 NPM 包
mobilewright
@playwright/test
playwright
@modelcontextprotocol/sdk
zod
openai
dotenv
fs-extra
chalk
axios
cheerio
平台先决条件
Web
安装依赖项和 Chromium 后无需额外设置。
Android
已安装 Android SDK
PATH 中可用 ADB
已配置 ANDROID_HOME
至少连接一个 Android 设备或模拟器
有用的检查:
npm run doctor
npm run devicesiOS
用于本地 iOS 自动化的 macOS 主机
Xcode + 命令行工具
已启动的 iOS 模拟器(或兼容的云/移动设备提供商)
移动测试项目的仓库结构
Mobile-App-Testing-AI-Agent-MCP-Server/
├── agents/
│ ├── planner.js
│ ├── generator.js
│ └── healer.js
├── mcp/
│ └── server.js
├── orchestrators/
│ ├── android-orchestrator.js
│ └── ios-orchestrator.js
├── tests/
│ ├── generated/
│ └── uselessweb/
│ ├── uselessweb.spec.js
│ ├── uselessweb-android.test.js
│ └── uselessweb-ios.test.js
├── plans/
│ └── uselessweb-org--web-test-plan.md
├── reports/
├── mobilewright.config.js
├── playwright.config.js
├── .env.example
└── package.json每个区域在移动测试和自动化中的作用
agents:移动测试自动化流水线中用于规划、生成和自愈的 AI 代理实现。
mcp:stdio MCP 服务器,暴露规划器、生成器、自愈器和编排器工具。
orchestrators:针对 Android 和 iOS 移动自动化的平台特定流水线运行器。
tests:可执行规范,包括生成的测试和用于移动 QA 的精选示例。
plans:用作代码生成源输入的 Markdown 测试计划。
reports:移动测试和自愈运行的产物。
移动测试和移动 QA 使用指南
1. 运行 Web 测试套件
npm run test:web2. 在 Playwright 中运行移动视口项目(移动测试)
npm run test:mobile-chrome
npm run test:mobile-safari3. 运行 Android 或 iOS Mobilewright 测试以进行移动自动化
npm run test:android
npm run test:ios4. 使用单个 AI 代理
规划器 (Planner)
npm run agent:planner
npm run agent:planner:android
npm run agent:planner:ios直接 CLI 示例:
node agents/planner.js --url=https://uselessweb.org/ --platform=web --out=plans/生成器 (Generator)
npm run agent:generator
npm run agent:generator:android
npm run agent:generator:ios直接 CLI 示例:
node agents/generator.js --plan=plans/uselessweb-org--web-test-plan.md --platform=web --out=tests/generated/自愈器 (Healer)
npm run agent:healer
npm run agent:healer:android
npm run agent:healer:ios直接 CLI 示例:
node agents/healer.js --spec=tests/uselessweb/uselessweb.spec.js --platform=web --retries=35. 使用 Android 和 iOS 代理添加新测试(移动测试自动化流程)
当您想为移动 QA 流程中的新目标 URL 创建测试时,请使用此流程。
Android 代理流程 (规划 -> 生成 -> 运行 -> 自愈)
生成 Android 测试计划:
node agents/planner.js --url=https://uselessweb.org --platform=android --out=plans/从计划生成 Android 测试:
node agents/generator.js --plan=plans/example-com-android-test-plan.md --platform=android --out=tests/generated/运行生成的 Android 测试:
npx mobilewright test tests/generated/example-com-android-test-plan.test.js自动修复失败的 Android 测试:
node agents/healer.js --spec=tests/generated/example-com-android-test-plan.test.js --platform=android --retries=3iOS 代理流程 (规划 -> 生成 -> 运行 -> 自愈)
生成 iOS 测试计划:
node agents/planner.js --url=https://uselessweb.org --platform=ios --out=plans/从计划生成 iOS 测试:
node agents/generator.js --plan=plans/example-com-ios-test-plan.md --platform=ios --out=tests/generated/运行生成的 iOS 测试:
npx mobilewright test tests/generated/example-com-ios-test-plan.test.js自动修复失败的 iOS 测试:
node agents/healer.js --spec=tests/generated/example-com-ios-test-plan.test.js --platform=ios --retries=3可选:使用编排器而不是手动运行每个步骤
npm run orchestrate:android -- --url=https://uselessweb.org --retries=3
npm run orchestrate:ios -- --url=https://uselessweb.org --retries=36. 运行移动自动化编排流水线
Android 流水线
npm run orchestrate:androidiOS 流水线
npm run orchestrate:ios7. 运行完整的 Web AI 流水线
npm run pipeline:web这会为 Web 执行“规划 -> 生成 -> 自愈”。
7b. 运行完整的移动 QA 流水线
对于每个平台上的端到端移动测试自动化:
npm run orchestrate:android
npm run orchestrate:ios8. 启动 MCP 服务器
npm run mcp:start服务器在 stdio 上运行,并暴露包括以下内容的工具:
health_check
run_planner
run_generator
run_healer
run_orchestrator
list_repo_commands
9. 在本地检查 MCP 工具
npm run mcp:inspect10. MCP 客户端配置示例
在支持 MCP 的客户端配置文件中使用此内容:
{
"mcpServers": {
"mobile-testing-ai-agent": {
"command": "node",
"args": ["mcp/server.js"],
"cwd": "."
}
}
}11. CI/CD 流水线 (GitHub Actions)
本仓库现在包含一个位于 .github/workflows/ci-cd.yml 的 CI/CD 工作流。
CI 行为:
在推送到 main 分支以及针对 main 的拉取请求时运行。
使用 npm ci 安装依赖项。
安装 Playwright Chromium。
使用 npm run test:web 执行 Web 套件。
在可用时上传 Playwright 报告产物。
CD 行为:
在推送到 main 分支的 CI 之后运行。
仅当 DEPLOY_WEBHOOK_URL 配置为仓库密钥时才触发部署。
当未设置密钥时安全跳过部署。
要启用部署,请添加此仓库密钥:
DEPLOY_WEBHOOK_URL
为移动测试和移动自动化做出贡献
欢迎贡献。请遵循以下工作流:
Fork 本仓库。
从 main 创建一个功能分支。
保持更改集中且范围明确。
为新行为添加或更新测试。
在打开 PR 之前运行相关检查:
npm run test:web
npm run test:all
npm run doctor (针对移动环境)
打开拉取请求,并包含:
清晰的问题陈述
实现摘要
验证证据(日志、测试输出、有用的截图)
贡献指南
优先考虑小型、可审查的拉取请求。
避免在同一个 PR 中进行不相关的重构。
保留脚本和文件夹命名约定。
在此 README 中记录新命令和代理行为。
致谢
本项目建立在优秀的 Mobilewright 生态系统之上。
Mobilewright 框架:https://github.com/mobile-next/mobilewright
Mobilewright 文档:https://mobilewright.dev
特别感谢 Mobilewright 的维护者和贡献者,他们实现了跨 Android 和 iOS 的实用移动自动化工作流。
许可证
ISC
移动测试常见问题解答 (SEO)
什么是移动测试自动化?
移动测试自动化是使用工具和脚本自动验证 Android 和 iOS 上的移动应用和移动 Web 体验的实践。
本仓库如何帮助移动 QA?
本项目通过 AI 驱动的规划、测试生成和自愈执行,以及 Android 和 iOS 编排流程,支持移动 QA。
这适合移动自动化团队吗?
是的。它是为需要可扩展移动自动化、可重复测试流水线和更快发布反馈周期的团队而构建的。
该框架针对哪些移动测试关键词?
该框架专注于移动测试、移动自动化、移动 QA 和移动测试自动化的实用工作流。
有疑问吗?
如果您有任何疑问:
💬 打开 GitHub Discussion
🐛 通过 GitHub Issues 报告错误
📧 电子邮件:padmaraj dot nidagundi at gmail.com
响应时间: 通常为 24-48 小时
欢迎首次贡献者!👋
刚接触开源?没问题!寻找标记为 good-first-issue 或 help-wanted 的问题。我们提供指导和帮助,助您成功。
感谢您让测试自动化变得更好! 🚀
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/padmarajnidagundi/Mobile-App-Testing-AI-Agent-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server