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
Keploy 是一款开源的测试生成工具:它会先"录"下你应用运行时的真实 API 调用、数据库查询和消息队列事件,再把这些录像回放成可反复执行的测试与数据存根(stub,即预先准备好的假响应)。全程不改一行代码,适合想在集成测试上省掉手工搭环境、手工写断言的人。
集成测试还要手工搭环境吗?
单元测试好写,难的是集成测试:一个下单流程可能牵扯 MySQL、Kafka 和第三方 HTTP 接口,跑通一次就得把整套依赖在测试环境里摆好,数据越跑越脏,结果时灵时不灵。更麻烦的是用例全靠手写维护,接口一改,测试就得跟着返工。Keploy 的思路很直接——不写了,让真实流量替你"写":你操作一遍,它就记下全部交互,之后随时回放。
🧪 Keploy 是什么:从真实流量到测试用例
零代码录制,语言不限
Keploy 用 eBPF(一种运行在内核里、开销很小的钩子机制)在网络层捕获流量,所以你的应用不需要装 SDK,也不限语言或框架。录制入口在 cli/record.go,启动后它会自动挂起应用的出站连接并记录两端收发内容。
存根不止 HTTP
不少工具只能模拟 HTTP 端点,而 Keploy 对数据库(Postgres、MySQL、MongoDB)和消息队列(Kafka、RabbitMQ)的交互同样能录制并确定性回放,测试时无需再拉起一套基础设施。存根的匹配与生命周期逻辑可看 pkg/agent/proxy/syncMock/syncMock.go。
回放与断言
录制完成后,用keploy test重放这些用例:请求按原样发出,响应与录像比对,不一致的会直接标出。回放命令实现在 cli/test.go,统一测试报告由 pkg/service/report/report.go 生成,可以贴进 CI 或 PR 里。
⏱️ 5分钟跑通第一条 keploy record 命令
先克隆仓库并安装:
git clone https://gitcode.com/GitHub_Trending/ke/keploy./keploy.sh install然后到你自己应用的目录,用下面这条命令启动录制(把-c后的内容换成你的应用启动命令,例如python main.py):
keploy record -c "你的应用启动命令"应用起来后,真实地操作一遍你关心的接口。Keploy 会把这次交互自动转成测试用例,保存在项目根目录的keploy-tests文件夹里,每个用例集一个子目录。录完后执行keploy test -c "同样的启动命令"即可回放验证。
🔍 原理速览:eBPF 代理做了三件事
整体架构可以一句话概括:内核层用 eBPF 钩住网络流量,pkg/agent/proxy/ 下的代理层把 HTTP、数据库、消息等流量按协议分类解析并存成可回放的格式,cli/目录则负责 record、test、update 等命令的编排。细节不展开,想深挖可以从 README 和 docs/ 目录入手。
🔁 进阶用法:流水线与日常维护
- 放进 CI:把
keploy test加进 Jenkins、GitHub Actions 等流水线,每次提交都用存根回放,不依赖外部依赖就能跑完集成验证。 - 保持版本:定期执行
keploy update拉取新版,命令实现见 cli/update.go。 - 细调行为:mock 文件格式、内存上限等开关都列在 docs/env-vars.md,建议团队把常用配置固定到
keploy.yml里。
Keploy 不会替代单元测试,它解决的是"集成测试跑得起来、跑得稳"这件事。建议挑一个你自己的小服务跑一次keploy record,看看keploy-tests里自动长出来的用例和存根——第一次的直观感受,比任何介绍都有说服力。
【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考