很多团队用 n8n 之类的自动化工具或脚本搬运业务数据:表单线索写进 CRM,订单同步到表格,会员名单导入新系统。流程跑完会显示「运行成功」,但这只说明步骤执行了,不说明数据真的到了:可能少了一条、某个值被改了、同一条记录写了两次,流程照样显示成功。
常见的检查办法是人工抽查,或者用通用的对比工具看差异。抽查覆盖不全,对比工具只能告诉你「哪里不同」,却分不清「确实不对」和「证据不够、还不能下结论」。比如目标系统导出的文件可能只是其中一页,这时「找不到」并不等于「丢了」。
FlowAssert 面向搭建自动化的人、运营和数据人员。适用场景:数据同步或迁移之后核对是否完整、准确;在 CI 中每次自动核对;向别人说明「这批数据到底到没到」时,拿出一份写清前提和原因的报告。
FlowAssert 把「应该有的」(来源 CSV)和「真正到的」(目标系统导出的 CSV)逐条核对,并输出报告。
1. 四种结果:已验证、不一致、待定、未验证。每条记录、每条规则都写明原因。核心规则:证据不够,绝不说「已验证」。CSV 核对没有等待窗口,不会给出待定。
2. 前提写在明处:「来源是完整的一批」「目标导出覆盖了整个对象」由使用者声明。FlowAssert 不替你假设,也不假装检查过,每条前提都写进报告。同一份数据在不同前提下结论不同,例如找不到的记录,没有声明目标完整时是未验证,声明后才是不一致。
3. 比较规则可选(exact、trim、casefold),核对范围可选(只核对来源记录,或同时报告目标中多出的记录)。重复的键不靠猜测去挑一条。
4. 浏览器版:打开网页就能用,文件只在本地读取,不发送任何网络请求。内置合成示例场景,可以下载 JSON 和 HTML 报告,也可以在浏览器里保存和比较报告。
5. 命令行 flowassert-verify 和 GitHub Action:可以放进 CI 自动运行。
在线试用:sun-sh902.github.io/FlowAssert
开源地址:github.com/Sun-sh902/FlowAssert(Apache 2.0)
1. 命令行版用 Python 实现,只用标准库,支持 Python 3.9 及以上,没有第三方依赖。报告是带版本号的 JSON,也可以输出 HTML。
2. 浏览器版用 TypeScript、React 和 Vite 重新实现了同一套核对逻辑,部署在 GitHub Pages 上,是纯静态页面,运行时不发网络请求。
3. 两套实现必须对同样的输入生成逐字节相同的报告。这一点由 97 个黄金样例保证:每个样例都有固定的输入和期望的报告,两边都要逐字节对上。
4. 测试:自动化测试共 4,650 项:Vitest 3,103 项、Python 1,015 项、用 Playwright 驱动真实浏览器的测试 520 项,另有 12 项布局检查。每次提交都由 GitHub Actions 跑 CI,还会自检 GitHub Action 本身。
5. 安全边界:文件和前提声明都不经认证,报告会如实写出哪些内容没有评估。示例只用合成数据。
6. 开发方式:项目由我设计、决策和审查,很多代码由 AI(Claude Code)编写。目前发布到 v0.6.0;直接读取 Google Sheets 来源(只读)的功能在开发中,尚未发布。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论