UStackUStack
Keploy icon

Keploy

Keploy 是开源 AI 工具:记录真实 API 流量生成测试用例与 mocks/stubs,支持单元/集成/API 测试,并提供覆盖率报告助力 CI 可靠性。

Keploy

Keploy 是什么?

Keploy 是专为开发者设计的开源 AI 工具,帮助生成测试用例并创建单元、集成和 API 测试的 mocks/stubs。其核心目的是通过捕获真实 API 交互并据此生成稳定测试,来支持可重复的自动化测试。

Keploy 通过记录 API 流量并在 CI 友好的隔离环境中重放,专注于可靠性和覆盖率。结果是一个旨在减少构建测试用例和维护 mocks 的手动工作的流程。

主要特性

  • 记录真实请求的 API 流量:捕获实际 API 调用的交互,使测试输入反映真实使用模式。
  • 重放到沙箱测试环境:重放记录的流量以隔离运行测试,支持 CI 中的一致执行。
  • 生成 AI 辅助测试用例:基于观察到的行为使用 AI 生成测试,旨在减少手动编写测试的工作。
  • 为 API 和集成测试创建 mocks/stubs:生成模拟响应以解耦测试与外部依赖。
  • 测试进度覆盖率报告:包含覆盖率报告,帮助跟踪和提升代码库被执行的程度。
  • 确定性测试运行:强调快速、确定性的重放行为,以保持测试稳定。

如何使用 Keploy

  1. 开始记录您要测试的 API 流量,捕获应用的交互。
  2. 使用记录的流量生成测试和 mocks/stubs,从而拥有可重复的测试输入,而无需依赖实时服务。
  3. 在流水线中重放记录的行为(例如 CI),以在隔离沙箱中运行测试。
  4. 查看覆盖率报告,了解已覆盖内容,并决定下一步记录哪些额外端点或场景。

使用场景

  • 减少依赖管理的 API 集成测试:记录上游服务的交互,使用生成的 mocks/stubs 运行集成测试,而无需调用真实服务。
  • 稳定 CI 中的测试:将记录的 API 流量重放到隔离沙箱,使测试结果依赖确定性输入而非波动外部条件。
  • 高效提升测试覆盖率:使用覆盖率报告识别空白,然后记录额外端点或流程并重新生成测试以扩展覆盖。
  • 加速单元和集成测试:从真实 API 行为生成测试和 mocks,让开发者专注于完善断言和边缘情况,而非从零开始。
  • 从真实流量创建可重复测试场景:捕获真实请求/响应序列并复用,确保跨运行验证相同行为。

常见问题

Keploy 是开源的吗?

是的。官网描述 Keploy 为开源工具。

Keploy 支持哪些类型的测试?

Keploy 适用于单元、集成和 API 测试,包括记录和重放 API 流量的流程。

Keploy 如何提升测试可靠性?

Keploy 通过将记录的 API 流量重放到隔离沙箱中,强调稳定、确定性的测试运行,适用于 CI。

Keploy 生成 mocks 或 stubs 吗?

是的。官网描述 Keploy 根据记录行为生成mocks/stubs用于测试。

Keploy 提供覆盖率可见性吗?

是的。页面提及覆盖率报告以帮助跟踪测试覆盖。

替代方案

  • 带模拟/桩的 API 测试工具(手动或脚本化):此类工具帮助为测试桩端点,但通常需要更多手动配置模拟响应和测试用例。
  • 带 fixture 的传统单元/集成测试框架:框架可覆盖单元和集成测试,但不提供从真实 API 流量记录-重放生成测试和 mocks 的流程。
  • 契约测试方法(基于 schema 验证):契约测试可验证 API 预期,但可能不直接提供从实时流量生成确定性 mocks 和测试的记录/重放机制。
  • 端到端测试框架:E2E 工具执行完整流程,但往往在速度和隔离性上与使用 mocks 和重放的专注单元/集成/API 测试相比有所权衡。
Keploy | UStack