☰
少写一半 API 测试:Keploy 用流量录制自动生成可运行测试
2026/10/16 4:01:35 网站建设 项目流程

少写一半 API 测试:Keploy 用流量录制自动生成可运行测试

【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy

Keploy 是一个开源的 API 与集成测试工具。你只需要运行keploy record,它就能把应用真实的 API 调用、数据库查询、消息队列事件录制下来,重放为可反复运行的测试用例与数据存根(Data Mocks)。适合任何需要为 Go、Python、Java 等任意语言服务补测试的开发者,核心价值是 API 测试自动生成,全程不写一行测试代码。

它解决了什么

先看两个熟悉的场景。

第一个场景:一个中台服务有 80 个接口,其中大量逻辑藏在「请求 → 数据库 → 响应」的完整链路里。手工写测试,你要先理解业务,再为每个依赖造数据,最后还要维护这些测试。接口一改,测试全红。

第二个场景:团队里同时跑着 Go 后端、Python 脚本和 Java 服务。每种语言一套测试框架、一套 mock 库,CI 里还要再拉一套数据库环境。测试环境的搭建和维护成本,常常超过写测试本身。

传统单元测试覆盖不了链路行为,纯手工集成测试又维护不动。这是大多数团队测试覆盖上不去的真实原因。

它是怎么做到的

Keploy 的思路是录制-重放(Record & Replay)。

它不靠 SDK、也不读你的代码。底层用 eBPF 钩子挂在操作系统的网络层,应用发出的每一个包都在这里被捕获。因此它无需改代码、语言无关:无论应用用 Go、Python 还是 Java 写,只要流量过了网络层,Keploy 就能录下来。

录制阶段,你像平时一样启动应用并打请求:

keploy record -c "go run main.go"

Keploy 会把这次运行中出现的 API 调用、数据库语句(PostgreSQL、MySQL、MongoDB)、Kafka 消息等一并记录,生成测试用例和对应的 mock 文件。

重放阶段,外部依赖全部换成录下来的 mock:

keploy test -c "go run main.go" --delay 10

应用照常启动,但所有出站请求命中 mock 并返回录制时的真实响应。测试在离线、确定的环境下跑,不依赖任何真实基础设施。动态值(时间戳、UUID、token)会被模板化处理,避免测试因为随机字段而变红。

关于 eBPF 钩子的实现细节,可以看 pkg/agent/hooks/README.md。

适合谁、怎么用

普通开发者—— 给已有服务快速补上 API 级回归测试,不写断言。最短命令:

keploy record -c "CMD_TO_RUN_APP"

多语言团队—— Go、Python、Java、Node 服务共用同一套测试与 mock,CI 里不再需要各语言各异的测试基建。运行方式完全一致,keploy test即可。

容器化部署—— 用官方镜像把 Keploy 跑在 Docker 里,录制容器应用:

keploy record -c "docker run <app_image>" --containerName "<name>"

镜像与挂载细节见 README.md 的 Docker 部分。

快速上手

一行安装(Linux amd64),随后即可开始录制:

curl -sL https://keploy.io/install.sh | bash keploy record -c "CMD_TO_RUN_APP"

录制完成后用keploy test重放。更多选项(mock 格式、环境变量、报告)参见 docs/env-vars.md。

它凭什么不一样

不挑语言,因为拦截点在网络层。eBPF 钩住的是系统内核的网络调用,不是应用进程,所以任何运行时都适用,源码中可直接看到 hook 定义(pkg/agent/hooks/linux/)。

mock 的不只是 HTTP。只有接口 mock 的工具很多,但数据库协议、Kafka、Redis、gRPC 都能录下来并确定性重放。mock 的生命周期模型(会话级 / 连接级 / 单测试级)见 docs/explanation/mock-lifetimes.md。

用自己的流程测自己。Keploy 团队的 CI 每次 PR 都重放录好的 API 流量,失败时自动重新录制、模板化稳定用例并强制覆盖率。这条「录制 → 重放 → 重新录制」链路没有人工维护测试的环节,完整说明见 adopters/organizations/keploy.md。

🔒 使用 AI 相关能力时,Keploy 默认对接你可自选的 LLM 后端(含私有部署),只有源代码与测试代码会发送到你配置的后端,其余流量数据留在本地。

接下来

克隆仓库,跑通你的第一条录制:

git clone https://gitcode.com/GitHub_Trending/ke/keploy

然后从keploy record开始,把真实流量变成你的第一批测试。更多能力(覆盖率、CI 集成、mock 注册表)可在仓库 docs/ 目录中查阅。

【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询