news 2026/9/25 23:05:24

MaaEnd节点测试教程:如何用测试用例验证识别稳定命中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MaaEnd节点测试教程:如何用测试用例验证识别稳定命中

MaaEnd节点测试教程:如何用测试用例验证识别稳定命中

【免费下载链接】MaaEndMaaEnd 终末地小助手:基于视觉 AI 的「明日方舟:终末地」自动化工具项目地址: https://gitcode.com/gh_mirrors/maa/MaaEnd

MaaEnd 是基于视觉 AI 的《明日方舟:终末地》自动化工具。本文讲解 MaaEnd 的节点测试玩法:用一张张静态截图 + 一份 JSON 测试用例,快速验证识别节点"该命中的命中、不该命中的不命中",把靠感觉能跑的流程变成可回归、可维护的稳定识别。

一、节点测试是什么?什么时候用

MaaEnd 的自动化流程由一个个识别节点串成。某个按钮模板改动了、某个 ROI 调过了、某个新场景上线了,都会影响识别稳定性。节点测试就是给这些节点做"体检":

  • ✅ 适合验证:识别节点、通用节点、场景判断节点是否稳定命中
  • ✅ 适合补回归:改完模板 / ROI / 阈值后,确认没有误伤旧场景
  • ❌ 不适合:验证完整流程时序(流程正确性要结合开发工具和实机调试)

官方开发手册详见 node-testing.md,这是编写测试用例前最值得先读的一份资料。

二、3 分钟看懂目录结构

测试用例和截图都放在tests/下,约定如下:

内容位置
测试用例(JSON)tests/下任意子目录,文件名必须匹配test_*.json
测试截图tests/MaaEndTestset/<控制器>/<资源服>/下

几个关键约定:

  1. image字段要写完整截图文件名,并显式包含扩展名,例如帝江号_大世界.png;
  2. 截图分辨率统一 1280×720,模板和坐标都以 720p 为基准,运行时自动缩放;
  3. 用 VS Code 的 Maa Pipeline Support 插件(Ctrl+Shift+P→Maa: Screenshot)截图,放到对应目录即可。

以现有用例 test_region.json 为例,它针对"地区识别"准备了一组正例:大世界主页应命中InWorld,四号谷地地区建设应命中InRegionalDevelopmentValleyIV,武陵则命中InRegionalDevelopmentWuling。一个测试文件只测一类能力,失败时也好定位原因。

三、测试用例怎么写:hits 是灵魂

每个用例文件都受 test.schema.json 约束,顶层只有两个部分:

  • configs:这组测试跑在哪个控制器(Win32/ADB)和哪个资源服(官服)上;
  • cases:一张截图对应一个用例,每个用例必须有image和hits。

hits表示这张图"期望命中的节点列表",支持三种写法:

  1. 只写节点名——只关心有没有命中,最常用;
  2. 节点名 + box——同时校验识别框位置,格式为[x, y, 宽, 高],适合全屏搜索、同屏多个相似目标的节点;
  3. box 写成矩阵——不同控制器坐标有差异时,可以为Win32和ADB各写一份坐标,还能用default做兜底。

另外别忘了负例:hits写成空数组[],就表示这张图上不该命中任何节点。负例是拦住误识别的关键,尤其适合那些容易串台、容易和相邻按钮混淆的节点。

四、控制器矩阵:一份用例跑两个平台

configs.controller写成数组时,同一个测试文件会在Win32和ADB两个截图目录里各执行一轮,坐标差异用 box 矩阵解决即可,不必维护两份重复文件。展开逻辑实现见 loader.mts。

如果差异只体现在坐标上,保留一个文件 + 矩阵 box;如果截图和命中节点本身都不一样,再拆成独立文件。

五、一键运行:pnpm test

安装依赖后,在项目根目录执行:

pnpm test

这条命令由 package.json 中的test脚本映射到maa-tools test,CI 跑的也是同一条命令。测试日志默认输出到:

tests/maatools/

跑失败了怎么排查?先看终端输出定位失败的用例,再打开tests/maatools/error_details.json查看具体原因(节点没命中、box 不匹配等)。如果只是想先检查配置和资源是否符合约定,可以执行pnpm check。

六、提交前自查清单

  • 文件名符合test_*.json;
  • configs.resource/configs.controller在 maatools.config.mts 中有映射;
  • image写全了扩展名,且对应目录里真的存在这张截图;
  • 正例、负例都覆盖了真实易错场景(Hover 态、弹窗、相邻地区 UI 等);
  • 位置敏感的节点补了box断言;
  • 改完模板、ROI、阈值后重跑过一遍pnpm test。

写在最后

节点测试的价值,是在后续重构、调阈值、换模板时帮你兜底。用例写得越完善,识别就越"稳"——这正是 MaaEnd 这类视觉 AI 自动化工具长期可用、可持续维护的底气所在。动手写第一份用例吧,从你最近改过的那个按钮节点开始 🚀

【免费下载链接】MaaEndMaaEnd 终末地小助手:基于视觉 AI 的「明日方舟:终末地」自动化工具项目地址: https://gitcode.com/gh_mirrors/maa/MaaEnd

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 23:04:18

Pygame小游戏开发全指南:从核心循环到避坑实战

运一次"上下左右控制一个方块躲避障碍"这样的小游戏&#xff0c;从新手到能跑通的完整过程&#xff0c;你会踩哪些坑、需要懂哪些原理&#xff0c;我今天一次性讲清楚。1. Pygame到底是什么&#xff1a;它不是引擎&#xff0c;而是一套媒体工具箱1.1 Pygame的来历与定…

作者头像 李华
网站建设 2026/9/25 23:04:12

湖北煤矿道岔,双开道岔,盾构道岔,单开道岔优质厂家实力参考:林州市创扬矿山设备制造有限公司靠谱定制厂家推荐

湖北地区煤矿企业轨道改造、新建矿井轨道铺设&#xff0c;不少采购负责人都在打听靠谱的煤矿道岔专业制造商&#xff0c;想找能做煤矿道岔个性化定制厂家&#xff0c;不少人问起推荐一下煤矿道岔制造商哪家靠谱&#xff0c;今天我们就结合行业实际情况&#xff0c;给大家聊一聊…

作者头像 李华
网站建设 2026/9/25 22:51:25

网络RTT是什么?一文搞懂延迟、Ping值与卡顿优化

你正跟朋友联机打游戏&#xff0c;语音里突然传来一句&#xff1a;"你RTT怎么这么高&#xff0c;卡成PPT了。"你愣了一下&#xff0c;想问什么是RTT&#xff0c;又觉得这时候追问有点丢人。其实RTT全称是Round-Trip Time&#xff0c;翻译过来就是往返时间。搞网络的人…

作者头像 李华
网站建设 2026/9/25 22:51:02

LLM Agent驱动的CLI代码评审新范式

1. 这不是又一个“AI代码审查工具”&#xff0c;而是一套可落地的开源协作新范式你有没有遇到过这样的场景&#xff1a;团队里新人提交PR&#xff0c;老手点开diff页面扫一眼就点“Approve”&#xff0c;结果上线后发现边界条件没处理&#xff1b;或者某次紧急修复&#xff0c;…

作者头像 李华
网站建设 2026/9/25 22:48:02

长沙市广受好评的湖湘文化相声剧场,旅游打卡不踩坑选择指南

来到长沙旅行&#xff0c;不少游客除了打卡网红景点、品尝本土美食&#xff0c;还希望能体验接地气的本土文化&#xff0c;感受长沙方言自带的幽默基因;本地市民日常休闲、朋友聚会&#xff0c;也希望找到稳定的线下喜剧演出场所&#xff0c;不用等大型巡演、临时节庆&#xff…

作者头像 李华