Keploy 快速上手教程:5 分钟从真实流量生成 API 测试与数据存根
【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy
做集成测试时最耗时间的往往不是写断言,而是搭环境:数据库、消息队列、上游依赖,得逐个 mock。Keploy 是一款测试自动化工具,它先记录运行中应用的真实流量,再自动产出测试用例和数据存根(mock,即用预录数据冒充外部依赖的桩),回放时测试不再依赖任何外部环境。
📍 一句话定位
Keploy 是开源的测试生成与存根管理工具:你的应用照常启动运行,Keploy 在旁拦截网络流量,结束后落盘测试用例和 mock 数据文件,之后随时离线重放。
⚙️ 记录与回放是这样工作的
核心机制:Keploy 在 Linux 上用 eBPF(一种在内核里安全运行小程序的机制,常用于观测网络事件)在网络层拦截流量,全程无代码侵入、不需要 SDK;它记录 API 请求、数据库查询、流式事件,回放时按录制内容确定性重放。围绕这个机制有三个关键能力:
- 测试生成:真实 API 调用被自动转换成测试用例并执行断言,入口在 cli/record.go 与 cli/test.go。
- 数据存根:MySQL、Postgres、Kafka 等依赖都被录制并可重放;存根的匹配与消费逻辑在 pkg/agent/proxy/syncMock/,存根的会话/连接/单次测试三种生命周期详见 docs/explanation/mock-lifetimes.md。
- 对比报告:回放结束后生成通过/失败及差异报告,逻辑在 pkg/service/report/report.go。
🚀 3 步跑通第一次运行
准备环境:Linux(x86_64 或 arm64)+ root 权限,源码构建另需 Go 1.16+。验证标志:终端执行
go version能输出版本号。安装:克隆仓库后执行安装脚本。验证标志:
keploy version能输出版本号。git clone https://gitcode.com/GitHub_Trending/ke/keploy cd keploy ./keploy.sh install首次运行:在你的应用目录记录并重放。验证标志:工作区生成
keploy.yml、测试用例文件和mocks.yaml(存根数据);随后keploy test输出每个用例的通过/失败结果。keploy record -c "CMD_TO_RUN_APP" keploy test -c "CMD_TO_RUN_APP" --delay 10
🧩 团队落地的 3 个用法
- 接入 CI/CD:在流水线里加一步
keploy test,用录好的存根离线跑测试,CI 机器无需起真实数据库。 - 协作与评审:生成的用例和存根是标准 YAML/Go 文件,可直接入库走 PR 评审;依赖数据变化时 diff 存根即可定位。
- 调优录制格式:
KEPLOY_MOCK_FORMAT=gob可切换为二进制存根,高吞吐下更省 CPU,全部可调项见 docs/env-vars.md。
⚠️ 适用场景与已知局限
Keploy 适合后端 API、集成与 E2E 测试这类"依赖难搭"的场景。局限要提前知道:Linux 上原生拦截依赖 eBPF,需要 root;macOS 没有原生拦截路径,必须把应用和 Keploy 一起放进 Docker 运行;部分协议未开源的依赖在开源版中不受支持。
总的来说,Keploy 把"搭测试环境"变成"先跑一遍、再随时重放"。建议先找一个个人项目试一次记录—回放流程,亲身感受集成测试的维护成本变化,再决定是否引入团队。
【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考