Hoverfly HTTP 依赖捕获模拟
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/capture-simulate-and-diff-http-dependencies-before-flaky-integration-tests-hit-real-external-services-with-hoverfly。
技能介绍
为什么需要这个技能
集成测试常因依赖真实外部服务而变得脆弱:网络波动、第三方接口变更、速率限制或认证失效,都会让测试结果不可预测。当测试用例直接调用外部HTTP依赖时,不仅运行速度慢,还可能在服务不可用时导致整体CI流程阻塞。更麻烦的是,这些依赖的行为往往无法在本地完整复现,一旦出现问题,定位成本高且难以验证。
技能如何工作
该技能基于Hoverfly实现,核心能力分为三个阶段:
- 捕获真实流量:通过配置代理,记录应用发起的HTTP请求与响应,生成可复用的fixture文件,完整保留依赖的交互细节。
- 模拟服务重放:在测试环境中以模拟模式运行Hoverfly,直接使用捕获的fixture响应请求,无需访问真实第三方服务。
- 对比依赖行为:通过比对模拟响应与预期或实时捕获的响应,快速发现依赖行为的变化,避免因外部服务更新导致的隐性故障。
适用边界与注意点
该技能仅支持HTTP协议的依赖管理,无法处理非HTTP协议(如数据库、消息队列)的外部依赖。使用前需确保环境中已安装Hoverfly,并配置好代理指向。对于依赖认证或动态参数的场景,需在捕获阶段完整记录认证信息与动态参数处理逻辑,否则模拟重放可能失败。此外,若上游Hoverfly工具本身存在限制(如不支持某些特殊HTTP方法或头部),该技能的行为也会受其约束。
使用场景
- 持续集成流水线里,微服务集成测试因第三方接口偶发超时而经常失败,需录制依赖流量生成固定Mock以排除干扰
- 前端联调阶段后端接口尚未就绪,需拦截应用发出的请求并返回预置的Hoverfly模拟响应以验证界面逻辑
- 重构业务代码后回归测试,需对比重构前后系统对外发出的HTTP依赖请求与响应数据,确认调用契约未发生破坏性变更
- 本地开发环境无外网访问权限,需利用本地代理将应用的真实外部请求重定向到离线的Hoverfly仿真服务
适合人员
- 后端开发工程师,正为频繁因第三方依赖抖动而失败的集成测试寻找脱机Mock方案
- 全栈开发者,需要在前端开发阶段绕过未完成的后端接口,通过录制流量进行前端逻辑联调
- 测试开发工程师,试图将易碎的外部服务依赖改造为可预测、可重放的测试替身以提升流水线稳定性
- 架构师或技术负责人,希望在重构或升级框架时对比系统依赖流量,确认外部API契约无破坏性变更