资讯动态

Keploy record 的 mock 存储格式 yaml 和 gob 怎么选?

发布时间:2026/9/14 2:18:17 来源:尧图企业网站定制
Keploy record 的 mock 存储格式 yaml 和 gob 怎么选【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy用keploy record录制应用流量时Keploy 会把捕获到的依赖响应存成 mock 文件供后续keploy test重放。落盘格式有两种yaml默认写成mocks.yaml和gob写成mocks.gob。选择依据是KEPLOY_MOCK_FORMAT环境变量取值yaml或gob或keploy.yml里的record.mockFormat配置项两者同时存在时环境变量优先。选型的决策依据来自 docs/env-vars.md 中对这两种格式的说明以及keploy record的标准用法见 README。两种格式的差异配置值落盘文件特性未设置 /yamlmocks.yaml默认。人类可读兼容所有现有 keploy 工具链、CI diff 和 PR review 工作流gobmocks.gob二进制。高吞吐场景下 record client 约省 28% CPU不便于 grep/diff没有跨 Go 版本的稳定性契约——pkg/models/*中依赖gob.Register的 struct 变更可能破坏对旧mocks.gob的重放。文件带魔法头版本标记keploy-gob-v1破坏性变更会 bump 后缀旧文件在读取时快速失败两点值得注意约 28% CPU 节省只在高吞吐录制场景下成立是文档给出的量化依据gob 没有跨版本稳定性契约意味着今天录的mocks.gob在未来某个 keploy/Go 结构变更后可能无法重放而mocks.yaml没有这个问题。怎么选默认选yaml即什么都不配置。只要 mock 文件需要被团队成员直接阅读、在 CI 中做 diff、或作为 PR review 的一部分yaml 是文档明确兼容的工作流。选gob当且仅当录制端 CPU 是瓶颈、流量吞吐高并且你的团队接受 mock 文件不可读、不可 diff接受旧mocks.gob可能在新版本下无法重放。如果你只是想临时对比 gob 的效果用环境变量做一次 ad-hoc 运行即可不需要改配置文件。配置方法临时切换环境变量ad-hoc 实验KEPLOY_MOCK_FORMATgob keploy record -c ./my-app其中./my-app替换为你实际的应用启动命令与 README 中keploy record -c CMD_TO_RUN_APP的用法一致。适用条件与限制KEPLOY_MOCK_FORMAT是进程全局的——在 shell 里 export 之后该 shell 启动的每一次 keploy 调用都会带上它。文档明确说明正是因此才提供了配置文件字段配置项只作用于具体的某次运行并且在 code review 时可见。所以环境变量适合一次性实验不适合作为团队默认。团队固定默认keploy.ymlrecord: mockFormat: gob该字段对应源码 config/config.go 中的MockFormat或yaml为默认gob写二进制mocks.gob。环境变量设置后优先于该字段。结果验证运行keploy record结束后检查 test-set 目录下的落盘文件yaml 格式生成mocks.yamlgob 格式生成mocks.gob文件名即扩展名就是格式的直接证据。重放侧无需额外配置读取路径按文件扩展名自动探测同一 test-set 目录里两种文件都存在时mocks.gob优先被使用。如果想确认 mock 内容yaml 路径可以打开mocks.yaml查看每个 mock 的spec.metadata.type格式参见 docs/explanation/mock-lifetimes.md 中Inspecting a recording一节给出的文档示例。限制与边界gob 的 CPU 收益约 28%是高吞吐录制下的数字不要在低流量场景预期同样收益。gob 文件不可 grep/diffPR review 中无法直接比对 mock 变化。gob 无跨 Go 版本稳定性契约破坏性变更通过keploy-gob-v1魔法头后缀 bump 来隔离旧文件读取时快速失败而不是静默出错。环境变量在 shell 中 export 会泄漏到该 shell 之后启动的所有 keploy 调用包括标准模式录制长期生效请走record.mockFormat。如果你的场景是默认 CI 友好 偶尔做高吞吐录制的 CPU 对比实验推荐组合是keploy.yml不设置mockFormat保持 yaml需要实验时用KEPLOY_MOCK_FORMATgob keploy record -c ...单次覆盖。【免费下载链接】keployOpen-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.项目地址: https://gitcode.com/GitHub_Trending/ke/keploy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价