news 2026/9/10 4:52:20

Keploy 快速上手指南:5分钟为 API 与集成测试自动生成用例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Keploy 快速上手指南:5分钟为 API 与集成测试自动生成用例

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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 4:51:42

CANN/ge静态执行器特性分析

GE Static Executor (Known Shape Executor) Feature Analysis 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少…

作者头像 李华
网站建设 2026/9/10 4:51:42

2026科普:Work Agent,重新定义AI办公的智能体工作平台

随着AI应用持续渗透职场,很多人能够感受到一种明显变化:AI不再局限于接收提问、输出文字回复,部分工具已经可以自主走完一整套工作流程,接收一个宏观目标之后,自动拆分步骤、调用各类工具,输出完整可交付的…

作者头像 李华
网站建设 2026/9/10 4:51:21

从Vibe Coding到Agentic Engineering:开发者角色升维与AI编程新范式

1. Vibe Coding 与 Agentic Engineering:两个时代的真实分野先说结论:Vibe Coding 和 Agentic Engineering 不是同一个东西的两种叫法,而是两个完全不同的工作范式。过去两年大家聊的“Vibe Coding”,本质上是一种“由自然语言驱动…

作者头像 李华
网站建设 2026/9/10 4:44:49

测试场景驱动的CI选型:Jenkins vs GitLab CI vs GitHub Actions实战对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华