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