免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

Keploy v1.0 实测:自动生成测试用例到底能省多少事?

Keploy v1.0 实测:自动生成测试用例到底能省多少事? Keploy v1.0 实测自动生成测试用例到底能省多少事【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keployKeploy 是一款开源的无代码测试生成工具解决的是「测试用例编写与维护」靠人肉堆时间的问题它把 API 测试录制回放做成了自动化流程。核心机制是 eBPF——Linux 内核里的可编程抓包机制——在网络层直接捕获应用流量一行应用代码都不用改即可自动生成可执行的测试用例与 stub依赖的预录响应数据回放时用来替代真实的外部依赖。v1.0 还加入了 AI 驱动的单元测试生成UTG能力。测试写得多腐化得也快手维护的用例永远慢真实流量一拍接口字段改个名、报错文案调一下一批快照就要人肉对齐。工程师忙起来忘了更新用例过时测试开始变 flaky时过不过了。维护成本随代码量线性上涨而收益并不成正比。Mock 测试在 CI 里过了线上照样挂另一种常见坑单元测试只看函数内部数据库加 API 的组合行为没人覆盖CI 里 mock 全绿的测试到了生产环境对不上真实行为。问题不在用例数量而在用例和真实流量脱节。不写代码测试用例从哪来Keploy 的思路是不写录。无侵入的测试生成eBPF 在网络层抓流量不加 SDK 不插桩直接在 socket 层拿流量eBPF 是 Linux 内核提供的可编程钩子。Keploy 把捕获程序注册到网络栈里应用 socket 上的流量会被直接复制一份应用本身对此无感知。这也是它语言无关的原因只要走 TCPGo、Java、Python、Node 都成立不需要装 SDK。这套 eBPF 测试工具的捕获逻辑源码就放在 pkg/agent/hooks/linux/ 目录可以看它怎么挂 hook。不只是 HTTP数据库和队列流量也进录制范围Keploy 录的是一次运行的全貌API 请求与响应之外Postgres、MySQL、MongoDB 的查询以及 Kafka、RabbitMQ 的流事件都会被捕获。回放时这些依赖由录下来的 stub 确定性接管跑一遍测试不必再拉起整套真实基础设施省掉的是环境成本而不只是时间。完整上手安装、录制、测试三条命令一条命令完成安装Linux 下从官方脚本装curl --silent -O -L https://keploy.io/install.sh source install.sh录一次流量换回一整套测试把应用启动命令交给keploy record跑起来即可sudo -E env PATH$PATH keploy record -c go run main.goeBPF 需要内核权限所以要 root-E env负责透传环境变量。应用这次运行产生的接口流量和出站依赖调用会被一起转成测试用例加 stub。回放keploy test 加个 10 秒延迟sudo -E env PATH$PATH keploy test -c go run main.go --delay 10回放阶段外部依赖全部由录好的 stub 应答不用真数据库。--delay给应用留出启动窗口。之后接口行为变了怎么办重新跑一次 record用例集自动刷新这就是 API 测试录制回放加自动生成测试用例的完整闭环。另外两种场景Docker 容器和 AI 单元测试生成Docker 里怎么用特权容器加几个挂载点容器化场景直接用 Keploy 官方镜像跑分三步以特权模式启动容器对外暴露 16789 端口Keploy 控制台用把工作目录挂载进容器作为工作区同时挂载宿主机的/sys/fs/cgroup、/sys/kernel/debug、/sys/fs/bpf和 docker.sock——eBPF 挂点和 cgroup 可见性都依赖这几条路径容器内执行keploy record -c Docker_CMD --network network --containerName 容器名完成录制test 命令照同样方式执行追加--delay 20即可。UTG 会把源码发出去吗AI 单元测试生成UTG让 LLM 读你的源码直接产出单元测试代码。这里的数据边界值得说清楚发往 LLM 后端的只有源代码与生成的单元测试代码没有别的内容Keploy 默认走 litellm 网关可以接多种 LLM 后端也支持私有部署的模型。 有数据合规要求的话把 UTG 指向自己部署的模型整条链路可以不碰外网。Keploy 用 Keploy 测试自己先回放失败才重录团队在 CI 里对核心 API server 跑「录制 → 回放 → 重录」闭环每个 PR 先重放已有 API 用例行为没变直接通过接口变了就自动重跑并重录新行为快照不需要人手工改。模板化稳定化与覆盖率兜底时间戳、UUID、token 这类动态值在重录用例被接受前会先模板化且在模板化前后各验证一次避免用例本身变 flaky。PR 还只按变更行统计覆盖率低于阈值不予合并。这条流程的完整说明写在仓库的 adopters/organizations/keploy.md 里。下一步做什么先克隆仓库读团队自测文档获取代码git clone https://gitcode.com/GitHub_Trending/ke/keploy。然后建议按顺序看三处adopters/organizations/keploy.md 了解团队如何用 Keploy 自测docs/env-vars.md 查环境变量清单cli/record.go 看 record 命令的实现入口。社区入口见 README 末尾的 Slack 链接。应用能跑起来之后就可以开始第一次录制了。【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表