Kerno:面向真实后端的 AI API测试工具

让编程智能体在提交代码前,检查接口、业务流程与运行时行为。

kerno.io
Kerno screenshot

通俗解释:Kerno 这个网站是干什么用的?

Kerno 是一个帮助开发者检查“代码改完之后,程序到底还能不能正常工作”的 AI API测试工具。你可以把它理解为接在编程助手旁边的后端测试搭档:编程助手负责修改代码,Kerno 通过真实运行的应用、数据库和消息服务,验证这些改动产生了什么结果。

例如,电商下单接口返回“成功”,并不一定代表整个流程正确;还需要确认订单真的创建了、金额正确、重试没有重复扣款。Kerno 可以把多个接口串成一条业务流程,检查最终结果,并指出失败发生在哪一步。这里的结账流程是用途示例,具体测试仍取决于你的应用和确认过的测试计划。

Kerno 由 FYCK Limited 运营。官网提供产品说明和入口,实际测试通过本地代理与支持 MCP 的编程工具协作,团队则可以在网页控制台查看报告。它主要服务于后端开发者、QA 工程师和使用 AI 编程助手的研发团队。

从接口响应到完整业务流程,验证改动有没有破坏功能

Kerno 会分析代码仓库中的函数、入口和依赖关系,生成测试并记录当前行为作为基线。之后修改代码时,它根据依赖关系判断受影响的入口,重新执行相关测试,展示新旧行为之间的差异。

它的价值不只是告诉你“测试红了”,而是帮助区分:这是预期中的业务调整,还是无意引入的回归问题。对确认属于预期变化的行为,可以更新测试;关键流程发生有意改变时,需要重新确认流程测试计划,避免把错误直接当成新标准。

具体检查可以覆盖以下任务:

  • 验证请求和响应的数据结构、必填字段与异常输入处理。
  • 检查登录、权限和访问范围,发现角色或资源访问行为异常。
  • 检查错误码、空值、边界条件和重试等运行时行为。
  • 按需请求安全测试,并通过自定义规则补充团队的业务约束。
  • 将多个后端入口组织成关键用户流程,检查最终业务结果,而不只看单个请求是否返回成功。

如何接入项目并完成第一次后端测试

按照官方快速入门,需要准备 Git 仓库、Node.js 18+,以及已经安装并运行的 Docker 或 Podman。被测应用也必须能够启动,并提供 Kerno 可访问的地址。

  1. 使用 npm install -g @kerno/cli 安装命令行工具,通过 kerno login 登录。
  2. 执行 kerno init -w /absolute/path/to/repo 指向目标仓库,使用命令实际输出的 MCP 地址和配置片段,不要照抄旧端口。
  3. 在支持 MCP 的编程工具中连接 Kerno,选择要测试的应用,补齐应用 URL、必要的数据库或消息服务访问配置,并确认环境校准结果。
  4. 请编程助手梳理关键业务流程,再选择一条流程进行测试。先核对计划中的操作步骤和预期结果,确认后再生成并运行测试。
  5. 查看测试结果及失败步骤。修改代码后,请助手验证受影响的接口和流程,确认差异是否符合需求,再决定修复代码或更新基线。

官方列出的接入包括 Claude Code、Cursor、Windsurf 和 Codex。业务流程测试指南进一步说明了如何确认计划、定位失败步骤,以及在业务行为改变后重新测试。建议首次试用选择一个能够明确判断成功与否的小流程,方便验证环境和测试预期是否一致。

支持哪些技术栈,哪些边界需要提前确认

官方文档列出的协议包括 HTTP(S)、MCP Streamable HTTP,以及后台任务和消息消费者。测试场景使用 TypeScript 编写,但被测后端可以使用不同语言;路由识别覆盖 JavaScript、TypeScript、Python、Java、Go、C#、Rust 等语言的常见框架。

可直接连接的依赖包括 PostgreSQL、MySQL、MongoDB、Redis、Kafka、RabbitMQ 等。具体框架和服务应以技术支持列表为准。WebSocket、gRPC 和 GraphQL 当前仍标记为即将支持,不能按已具备的能力选型。SQLite 无法作为网络数据库直接访问,但使用 SQLite 的应用仍可通过 HTTP 接口测试;必须由真人完成外部身份验证的流程,可能被标记为阻塞。

Kerno 一次围绕一个仓库工作,一个 monorepo 可以包含多个应用。它也不应被当作网页视觉测试、通用压测或所有安全问题的保证工具。

已有测试如何放进 CI?

定价页把 CI 集成列在 Pro 中,但更具体的官方 CI 指南说明:已提交到仓库的基线测试可以通过 GitHub Action 独立重放,无需 Kerno 账号、API key 或模型调用;需要将运行记录接入控制台时,再配置凭据。

运行环境需要 Linux、Docker 和已经启动的应用。CI 不负责生成新测试,也不会替你启动应用。报告中的 skipped 或 blocked 项目不能当成通过;即使它们没有让检查失败,也需要单独核查。

免费版够不够用,团队版如何计费

截至 2026 年 10 月 18 日,官网定价页公布的 Community 免费版包含每月 30 次测试运行、1 个仓库和 1 位用户,无需信用卡。这里一次运行指一个测试场景的执行;如果某个接口有 5 个场景,一轮执行就会消耗 5 次,而不是只算一次检查。

Pro 官网标价为每位开发者每月 $50,提供不限测试运行次数和仓库数量,以及团队分析等能力。Enterprise 需要询价,增加自托管、SSO/SAML、审计和数据控制等选项。页面标价不等于面向所有地区的最终结算价格,币种、税费、账期和资格条件应在订阅时再次确认。

免费版适合先检查接入是否顺利、测试结果是否有用;接口多、场景多或需要团队持续使用时,应结合真实场景运行量评估方案。官网还列有符合条件的开源项目优惠,但这不代表 Kerno 本身开源。

代码在本地运行,哪些数据仍会外传

官方安全与隐私说明区分了三类数据:源码、依赖图、测试场景和基线保存在本地;用于生成和分析的相关代码片段会经过 Kerno 代理发送给模型服务商;由代理发起的测试报告会上传到控制台,包含请求体、响应体、请求与响应头,以及状态码。

官方表示模型服务商采用零数据保留配置,代码不用于训练。这个声明不等于全程离线,也不意味着测试报告没有业务数据。如果接口返回了真实客户资料或令牌,这些内容可能进入报告,因此应选择合适的测试环境与数据。SOC 2 Type II 在文档中仍标记为进行中,不能写成已取得认证。

常见问题

Kerno 和单元测试、代码审查有什么区别?

Kerno 重点检查真实应用和依赖运行时的行为,并比较改动前后的结果。代码审查和较小范围的单元测试仍有各自价值;Kerno 提供额外的运行证据,不代表所有路径和错误都已覆盖。

每月 30 次测试,等于可以检查 30 次提交吗?

不是。计量单位是场景执行,创建、更新和按基线检查时执行的场景都可能计数。一次改动涉及多个接口、每个接口又有多个场景,消耗量会相应增加。

能直接使用生产数据进行测试吗?

应先评估报告内容和数据处理要求。测试报告可能包含接口返回的敏感数据,本地运行本身不能消除外传风险。更合适的起点是经过授权、数据适当处理的测试环境。

官方资源与开发者社区