MaaXYZ/MaaFramework
基于图像识别的自动化黑盒测试框架 | An automation black-box testing framework based on image recognition
什么是 MaaFramework?
MaaFramework 是一个基于 图像识别 的开源 自动化与黑盒测试框架。它允许开发者编写低代码的“流水线”,用于监控屏幕、通过计算机视觉识别 UI 元素,然后模拟鼠标/键盘(或触摸)操作。核心库使用现代 C++20 编写,并为多种语言(Python、C#、Node、Go、Rust 等)和平台(Windows、Linux、macOS、Android)提供封装。
为什么重要
- 基于图像的 UI 自动化 – 无需内部钩子或无障碍 API,即可通过匹配截图来控制任何图形程序(游戏、应用、网页)。
- 低代码、高扩展性 – 流水线以简单的声明式格式描述,但你可以插入自定义识别器、控制器或数据源。
- 多语言绑定 – 同一引擎可从 Python、.NET、JavaScript/Node、Go、Rust 等语言调用,便于集成到现有测试套件中。
- 生态系统 – 围绕核心的社区工具(GUI、调试器、日志分析器、CLI 辅助工具、技能库)不断增长,让你无需从零开始即可构建功能齐全的机器人或测试平台。
核心概念(按 README 描述)
| 概念 | 说明 | 使用方法 |
|---|---|---|
| 流水线 | 低代码的“配方”,将图像匹配步骤、判断逻辑和模拟输入串在一起。 | 编写描述序列的 YAML/JSON 文件;框架自动执行。 |
| 项目接口 (PI) v2 | 打包整个自动化项目(资源、流水线、配置)的协议。 | 导出或导入 PI 包以共享或版本控制机器人/测试套件。 |
| 绑定 | 语言特定的包装器(Python maafw、.NET Maa.Framework.Runtimes、Node @maaxyz/maa-node 等)。 |
通过 pip、NuGet、npm、cargo 或 go 模块安装,并从你偏好的语言调用相同的 C++ 核心。 |
| 社区工具 | GUI(MFAAvalonia、MFW‑CFA、MXU、MWU)、调试器(MaaDebugger)、日志分析器(MaaLogAnalyzer、MaaLogs)、CLI 工具(maafw‑cli、MaaCtl)以及 AI 代理的技能库。 | 选择适合你的工作流的工具 – 例如,使用 MaaDebugger 逐步执行流水线,或使用 MaaLogAnalyzer 可视化执行跟踪。 |
快速开始(README 中的入门步骤)
- 访问网站 – https://maafw.com/ 获取更丰富的文档。
- 阅读快速入门指南 –
docs/zh_cn/1.1-快速开始.md说明了如何安装所需语言绑定并运行示例流水线。 - 集成库 – 按你的语言阅读集成文档(
2.1-集成文档.md),然后查看 API 列表(2.2-集成接口一览.md)。 - 编写流水线 – 使用“任务流水线协议”(
3.1-任务流水线协议.md)描述你的机器人应执行的步骤。 - 探索社区扩展 – UI 前端、调试器和技能包列在 社区项目 下。
谁可能使用 MaaFramework?
| 受众 | 典型用例 |
|---|---|
| 游戏自动化开发者 | 为依赖屏幕抓取和模拟点击的移动/PC 游戏构建机器人(例如,明日方舟的“M9A”,阴阳师的“MaaYYs”)。 |
| QA 工程师 | 为源代码或无障碍钩子不可用的应用程序创建黑盒 UI 测试。 |
| AI 代理研究者 | 将框架用作需要视觉感知和动作的代理的“环境”(例如,通过 maafw-cli 或 MaaEvidenceKit)。 |
| 工具构建者 | 开发自定义 GUI、调试器或编排 MaaFramework 流水线的 CI 流水线。 |
更多信息
- 源代码 – https://github.com/MaaXYZ/MaaFramework
- 包仓库 – PyPI (
maafw)、NuGet、npm (@maaxyz/maa-node)、Go (maa-framework-go)、crates.io (maa-framework)。 - 社区中心 – https://hub.maafw.com 共享流水线、技能和模块。
- 文档 – 英文(
README_en.md)和中文(README.md)版本,以及网站。
TL;DR
MaaFramework 是一个基于 C++ 的跨平台自动化引擎,使用计算机视觉驱动 UI 交互。它提供低代码流水线语言、多种语言绑定,以及由 GUI、调试器和 CLI 工具组成的活跃生态系统,适用于游戏机器人、UI 测试和 AI 代理环境。
相关
- 项目
- 项目
- 项目
- 项目
- 项目