ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

测试矩阵设计实战:claude-plugins-community 中 run_report_matrix.py 完整指南

测试矩阵设计实战:claude-plugins-community 中 run_report_matrix.py 完整指南 测试矩阵设计实战claude-plugins-community 中 run_report_matrix.py 完整指南【免费下载链接】claude-plugins-communityCommunity plugin marketplace for Claude Cowork and Claude Code. Read-only mirror — submit plugins at clau.de/plugin-directory-submission.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-plugins-community在开源社区插件市场claude-plugins-community中run_report_matrix.py是一个设计精巧的端到端测试矩阵脚本它连接 TRES Finance MCP 服务器自动发现所有报表类型逐个触发导出并轮询直到完成最终打印一份 pass/fail 结果矩阵。本文将带你快速看懂它的测试矩阵设计思路——无需深厚背景几分钟即可掌握这种批量验证 失败归类的测试范式。测试矩阵是什么为什么需要它 tres-report-create这个技能教会 AI如何生成任意一份 TRES 报表。但技能的配方真的对每一种报表都有效吗run_report_matrix.py给出的答案是全量验证。它不做抽查而是发现服务器上暴露的每一种报表类型对每种报表逐个触发导出轮询直到每种报表完成、报错或超时输出一张一目了然的结果矩阵这种矩阵式设计的核心价值在于让失败可见、可归类、可追踪而不是淹没在一堆日志里。 核心文件位置测试脚本run_report_matrix.py被测技能定义SKILL.md插件总览tres-finance-plugin/README.md测试矩阵的 4 阶段设计 阶段 1连接 MCP 并发现工具脚本内置了一个仅用 Python 标准库实现的 MCP 客户端 McpClient完成三件事发送initialize握手拿到服务器版本信息调用tools/list列出服务器暴露的全部工具自动识别执行查询的那个工具容忍execute/execute_query等命名差异设计亮点不硬编码工具名而是从候选列表中探测。服务器端改名时测试依然能跑。阶段 2发现全部报表类型通过一条 GraphQL 查询availableReportTypes拉取组织支持的所有报表每条包含name报表名、exportType导出格式、entitiesType实体类型。紧接着脚本用一张映射表把实体类型翻译成应调用的查询entitiesType触发的查询LEDGERtransactionASSETS / BALANCE / HISTORICAL_BALANCEorganizationBalanceACCOUNTS / GENERALinternalAccountSTAKING_DATAstakingYieldRecordAUDIT_LOGauditLogLOGIN_HISTORYloginHistoryExport这张表定义在 ENTITIES_TO_QUERY。任何无法映射的报表类型会被标记为SKIPPED而不是让脚本崩溃——单个异常不应中断整个矩阵。阶段 3批量触发导出Phase 1触发逻辑封装在 build_trigger 函数中体现了测试矩阵的**特例处理**思想普通报表统一携带exportFormat、exportName、currency、outputFormat四个参数日期范围类报表transaction、auditLog额外附加timestamp_Gte/timestamp_Lte登录历史参数结构完全不同单独构造查询成本基础清单必须恰好传入一个资产类别 ID脚本会先查询assetClass取一个真实 ID 备用每个触发结果被记录为矩阵中的一行失败原因分门别类标记含义OK触发成功进入轮询TRIGGER_FAILEDGraphQL 报错或抛异常SKIPPED无法映射 / 缺少导出类型阶段 4轮询直到收敛Phase 2导出是异步的——触发成功 ≠ 报表就绪。脚本使用 POLL_QUERY 按精确名称查询每份报表的状态轮询逻辑位于 Phase 2 代码段DONE→ 记录文件大小与下载链接是否存在 ✅ERROR→ 生成器拒绝了输入记为失败其他状态 → 继续等待默认 12 轮 × 每轮 20 秒均可通过参数调整轮完仍未收敛 → 标记为TIMEOUT轮询期间还会实时打印进度round 1: done3 error0 open8让等待过程透明可控。结果矩阵一眼看懂全局 最终输出长这样结构见 RESULT MATRIX 代码段 RESULT MATRIX REPORT ENTITIES TRIGGER FINAL SIZE/NOTE Transaction Ledger LEDGER OK DONE size... linkyes Cost Basis Inventory BALANCE FAIL ERROR GQL_ERROR: ... Login History LOGIN_HISTORY OK TIMEOUT Totals: DONE28, ERROR1, TIMEOUT1三个设计细节值得学习每行状态自解释FINAL列只有 5 种取值DONE/ERROR/TIMEOUT/TRIGGER_FAILED/SKIPPED失败原因列自动补上细节完整结果落盘全部行数据写入matrix_时间戳.json方便事后比对两次运行有意义的退出码只有当所有非跳过项都DONE时返回 0否则返回 1——可以直接接入 CI 流水线常用命令行参数速查 ⚙️脚本支持 4 个参数定义见 main 函数参数作用典型场景--dry-run只连接 列出报表不触发导出先探明环境零副作用--only按 entitiesType 过滤如--only LEDGER ASSETS回归测试某类报表--poll-rounds最大轮询轮数默认 12大数据量表调整等待预算--poll-interval每轮间隔秒数默认 20报表生成慢时放宽节奏典型使用流程export TRES_BEARER_TOKEN你的令牌 python run_report_matrix.py --dry-run # 第 1 步确认连接与报表清单 python run_report_matrix.py # 第 2 步跑完整矩阵值得借鉴的安全与工程细节 令牌只读环境变量从TRES_BEARER_TOKEN读取全程不打印预签名链接不落盘报表下载链接只判断存在与否绝不写入 JSON 或终端零第三方依赖仅用urllib、json、argparse等标准库克隆下来即可运行失败即记录而非中断任何单点异常都被捕获并写入矩阵行保证矩阵完整性总结run_report_matrix.py是测试矩阵设计的一个优秀样本发现 → 触发 → 轮询 → 归类四段式流程配合唯一命名、失败分类、JSON 落盘和 CI 友好退出码把技能配方是否真的对全部报表有效这个模糊问题变成了一张可以逐行核对的表。 延伸阅读技能完整工作流含防静默失败校验SKILL.md报表推荐技能tres-report-advisor报表分析技能tres-report-analyzer【免费下载链接】claude-plugins-communityCommunity plugin marketplace for Claude Cowork and Claude Code. Read-only mirror — submit plugins at clau.de/plugin-directory-submission.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-plugins-community创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表