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
改一行 API 代码想验证,得先起数据库、造测试数据、启动应用、发请求,光环境就烧了 15 分钟。keploy 把这 15 分钟压成 3 条命令:测试用例自动录好,依赖自动 mock,离线就能回放。
💡 keploy 到底在做什么
keploy 是一个把真实流量变成可重复测试用例的工具。
它不是你手里那种要手写 stub 的 mock 库,也不是只抓 HTTP 的代理工具。它用 eBPF 在内核层截住你应用进程发出的流量:HTTP 请求、数据库 SQL、消息队列收发,全部原样录下来;测试时再逐条重放,并和录制时的响应做比对(相关逻辑见 pkg/agent/hooks/)。所以对你意味着:应用代码一行不改,什么语言、什么框架都是同一套用法。
🚀 从第一次录制到第一次回放:3 条命令
1. 安装。终端里跑官方脚本,keploy命令即刻可用(Linux 下脚本会自动挂好 debugfs,macOS 不需要 root 权限):
curl --silent -O -L https://keploy.io/install.sh && source install.sh2. 录制。用keploy record包住你的应用启动,然后照常发请求,每个请求会自动落成一个测试用例(录制实现在 pkg/service/record/):
keploy record -c "go run main.go"Python 应用就写keploy record -c "python main.py",改个引号里的事。
3. 回放。keploy test离线跑这些用例,不起库、不连第三方服务(执行逻辑在 pkg/service/replay/):
keploy test -c "go run main.go" --delay 10--delay 10是让应用启动后等 10 秒再开始打测试,防止应用没就绪就报假失败。跑完你会看到每个用例的通过情况和字段级差异报告,第一个录好的测试用例已经躺在项目目录的keploy文件夹里。
录制能覆盖哪些交互,依赖去哪了
HTTP 接口:请求和响应逐字段比对
录制时它存下完整的请求与响应;回放时把两次响应逐字段对比,哪个字段变了直接报出来,不用你手写断言。这帮你省掉了"每次改完接口手动 curl 一遍"的机械活。
数据库:SQL 确定性重放
PostgreSQL、MySQL、MongoDB 的交互同样被录成 mock,回放时由 keploy 直接应答,同一条 SQL 永远返回录制时的结果——不用起库,不用重置数据(MySQL 的解析与匹配逻辑在 pkg/proxy/integrations/mysql/)。这帮你省掉了"重建测试环境"这个最耗时的步骤。
异步调用:流和队列照样 mock
Kafka、RabbitMQ 这类异步交互也能录、能 mock,回放时消息按录制时的顺序和内容给出。这帮你省掉了本地拉一整套消息链的成本。
离线回放怎么跑
启动需要哪些依赖
零。keploy test会拉起和录制时同构的 mock 环境:数据库、队列、外部 API 全被替身接管,应用在一个断网环境里照常运转。所以对你意味着:每次回归前不用再等环境,直接跑测试,几十秒出结果。
测试用例存在哪、怎么管
用例和 mock 数据都以明文 YAML 写进项目里的keploy文件夹,任何编辑器能看,git 能 diff,改动历史一目了然(存储逻辑在 pkg/platform/yaml/testdb/)。这帮你省掉了用例被锁进私有格式、换人接手就失传的麻烦。
👉 三个最出效果的位置
本地开发。改完代码直接keploy test,几十秒看到全部用例的通过情况,对比之前"起库+造数+启动+手测"的一轮 15 分钟,每轮验证都省下来了。
CI 流水线。workflow 里加两行,每次 PR 离线回归,runner 里不需要任何数据库服务:
- run: curl --silent -O -L https://keploy.io/install.sh && source install.sh - run: keploy test -c "go run main.go" --delay 10这帮你省掉了在 CI 里维护测试环境和测试数据的长期开销。
团队共享用例。keploy文件夹随仓库一起提交,谁录的用例大家共用,新成员 clone 下来跑一条keploy test就能接手,不用口头交接"这个接口要怎么测"。
现在打开终端,对着你的一个接口跑一遍keploy record,5 分钟后你会拿到第一个能离线回放的测试用例。
【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考