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 中的入门步骤)

  1. 访问网站 – https://maafw.com/ 获取更丰富的文档。
  2. 阅读快速入门指南 – docs/zh_cn/1.1-快速开始.md 说明了如何安装所需语言绑定并运行示例流水线。
  3. 集成库 – 按你的语言阅读集成文档(2.1-集成文档.md),然后查看 API 列表(2.2-集成接口一览.md)。
  4. 编写流水线 – 使用“任务流水线协议”(3.1-任务流水线协议.md)描述你的机器人应执行的步骤。
  5. 探索社区扩展 – 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 代理环境。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目