news 2026/9/10 18:58:41

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

做集成测试时最耗时间的往往不是写断言,而是搭环境:数据库、消息队列、上游依赖,得逐个 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 步跑通第一次运行

  1. 准备环境:Linux(x86_64 或 arm64)+ root 权限,源码构建另需 Go 1.16+。验证标志:终端执行go version能输出版本号。

  2. 安装:克隆仓库后执行安装脚本。验证标志:keploy version能输出版本号。

    git clone https://gitcode.com/GitHub_Trending/ke/keploy cd keploy ./keploy.sh install
  3. 首次运行:在你的应用目录记录并重放。验证标志:工作区生成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),仅供参考

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

SMT车间智能ESD防护闸机设计与应用

1. 项目概述:当SMT车间遇上智能ESD防护闸机 在SMT(表面贴装技术)车间里,静电就像个看不见的杀手。去年我们产线就发生过一起典型案例:某批次主板在测试阶段出现不明原因的信号干扰,追溯发现是操作员未规范释…

作者头像 李华
网站建设 2026/9/10 18:56:01

Rust egui窗口配置全攻略:从NativeOptions到ViewportBuilder实战

我在Rust桌面应用里用egui写小工具也有段时间了,每次新建项目都要重新配一遍窗口:大小、标题、全屏、图标、渲染器、垂直同步……这些参数统一由eframe::NativeOptions管理。今天这篇就直接给一份“窗口配置小抄”,把常见窗口形态的配置方式都…

作者头像 李华
网站建设 2026/9/10 18:55:50

2026国产电脑监控软件选型指南:信创适配与合规实践

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

作者头像 李华
网站建设 2026/9/10 18:55:37

ClickHouse实时数据立方体构建与优化实战

1. 为什么选择ClickHouse构建实时数据立方体第一次接触ClickHouse是在三年前的一个电商大促监控项目,当时需要实时分析每分钟千万级的用户行为数据。传统MySQL在写入时就已崩溃,而Hadoop生态的方案又无法满足亚秒级响应需求。当我用单机版ClickHouse轻松…

作者头像 李华
网站建设 2026/9/10 18:55:30

SpEL表达式注入攻防:从反射逃逸到安全加固与扩展实践

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

作者头像 李华
网站建设 2026/9/10 18:54:06

大模型API请求全链路:从Harness编排到KV Cache优化

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

作者头像 李华