news 2026/9/10 21:28:27

keploy 教程:3 条命令完成 API 测试用例生成与测试回放,零代码改动

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
keploy 教程:3 条命令完成 API 测试用例生成与测试回放,零代码改动

keploy 教程:3 条命令完成 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 测试与测试用例生成的开源工具:不需要改一行代码,照常把应用跑起来,它会自动记录过程中的 API 调用和数据库查询,转成可回放的测试用例。从装好工具到第一条测试回放跑通,只需要 3 条命令。

keploy 是怎么工作的

keploy 基于 eBPF 在网络层 hook 进程发出的全部流量,拦截发生在协议之下,所以不用加 SDK、不用改任何应用代码,Go、Java、Python、Node 等任意语言栈都能用。它能记录并确定性地重放 HTTP 接口、数据库(PostgreSQL、MySQL、MongoDB)、消息队列(Kafka、RabbitMQ)和外部 API,让你不搭真实基础设施也能完成测试环境模拟。边界也要说清楚:能回放的只有录过的东西,新代码如果走了未录过的分支,keploy 没有对应 mock,需要重新录制或用 AI 补全。底层 hook 实现见 pkg/agent/hooks/linux/hooks.go。

三步实操

1. 安装命令行

一行装好 keploy 可执行文件:

curl --silent -O -L https://keploy.io/install.sh && source install.sh

执行完二进制就位、环境变量配好,终端里任意目录都能直接调用。

2. 录制:把应用正常跑一遍

照常启动应用,keploy 会把真实流量变成测试用例和 mock 数据。以 Python 服务为例:

keploy record -c "python main.py"

这一步完成了完整的 API 测试录制:每个 API 调用、每条数据库查询都会生成对应条目,写到项目本地 keploy/ 目录下的 YAML 文件里,细节见 pkg/service/record/record.go。

3. 回放:不依赖外部服务离线跑

验证新代码行为是否与录制时一致,不连真实数据库和外部服务:

keploy test -c "python main.py" --delay 10

--delay是应用启动后等待就绪再开始回放的秒数。回放时 keploy 按请求匹配返回录好的数据,任何与录制不一致的响应都会以测试用例失败的形式报出来,见 pkg/service/replay/replay.go。

进阶玩法

  • 🤖AI 补测试用例:基于现有录制和 Swagger/OpenAPI Schema,生成边界值、缺失/多余字段、类型错误、乱序序列、重试/超时等场景,扩大 API 与分支覆盖。
  • 📁YAML 化管理用例:测试用例和 mock 都是本地 YAML 文件,随代码进版本库,两次改动的 diff 一眼可见。
  • 📝契约测试:从 OpenAPI Schema 生成契约,对应用响应做契约断言,实现见 cli/contract.go。
  • 📊统一报告keploy report汇总 API 与集成覆盖率,直接贴进 PR 评审。

接入 CI

用例录完提交进仓库后,CI 自动化测试只需在流水线里多跑两条命令,不用为 CI 单独部署数据库或消息队列:

- name: Setup keploy run: curl --silent -O -L https://keploy.io/install.sh && source install.sh - name: Keploy test run: keploy test -c "CMD_TO_RUN_APP" --delay 10

下一步

更多命令与参数直接翻 README.md;遇到回放匹配、mock 生命周期这类细节问题,docs/ 下的说明文档比搜索引擎更快;想动代码的话,按仓库里的贡献指南提交 Issue 或 PR 即可。

【免费下载链接】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 21:22:21

豆包学习法:构建高效知识管理系统的技术实践

1. 为什么豆包能成为学习神器? 作为一个每天要处理大量信息的知识工作者,我试过市面上几乎所有主流学习工具,直到去年偶然发现豆包这个不起眼的小工具,彻底改变了我的学习效率。你可能在社交平台刷到过"豆包学习法"的分…

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

小波变换在语音降噪中的MATLAB实现与优化

1. 语音降噪技术背景与应用场景在语音通信、语音识别和音频处理领域,背景噪声一直是影响信号质量的关键问题。无论是电话会议中的环境杂音,还是录音设备采集的电流声,都会显著降低语音清晰度。传统降噪方法如傅里叶变换滤波存在时频分辨率固定…

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

Qt与C++图形开发实战:从基础到高级应用

1. C与Qt图形开发概述 在桌面应用开发领域,C与Qt的组合堪称黄金搭档。作为一名长期使用这套技术栈的开发者,我见证过太多项目从零开始到最终交付的全过程。Qt框架提供的跨平台能力和丰富的图形组件,配合C的高性能特性,能够打造出既…

作者头像 李华