2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Impulse:Airbnb 全新的情境感知负载测试框架

作者:Leela Kumili

  • 2025-09-12
    北京
  • 本文字数:1138 字

    阅读完需:约 4 分钟

大小:563.04K时长:03:12
Impulse:Airbnb全新的情境感知负载测试框架

Airbnb 开发了Impulse,这是一个内部使用的负载测试框架,旨在提高其微服务的可靠性和性能。该工具支持大规模分布式测试,使得工程团队可以自助运行情境感知型负载测试,并与持续集成(CI)管道深度集成。通过模拟类似生产环境的流量和交互,Impulse 能够帮助工程师在变更到达生产环境之前识别瓶颈和错误。

 

根据 Airbnb 工程团队的说法,Impulse 系统已在多个客户支持后端服务中投入使用,并且正在接受评估,以确定是否要扩大应用范围。该系统旨在协助服务所有者建立性能基线、主动解决问题,并增强 Airbnb 全球基础设施的弹性。

 

Airbnb 内部的几个团队报告说:

 

Impulse 帮助我们识别并解决服务中潜在的问题。在测试期间,它检测到了线程池耗尽、客户端 API 调用偶尔超时以及服务容器内存使用率高等问题,使我们能够优化性能和资源使用。我们强烈推荐将 Impulse 作为开发和测试流程的一个组成部分。

 

Impulse 集成了一些广泛使用的工具,包括:用于容器化的 Docker、用于测试执行的JavaKotlin和用于自动化的 CI/CD 管道。Airbnb 指出,这种组合能够实现贴近生产环境的真实测试,在代码变更部署前提供可靠保障。


Impulse 与其他测试框架的集成(来源:Airbnb技术博客

 

Impulse 包含四个独立的组件:负载生成器、依赖模拟器、流量收集器和测试 API 生成器。团队可以根据服务的复杂性和需求,按需采用各个组件。


Impulse 框架及其四个核心组件(来源:Airbnb技术博客

 

负载生成器允许团队使用 Java 或 Kotlin 编写测试逻辑,并针对被测试的服务运行容器化测试。使用编程语言而不是领域特定语言,为复杂场景提供了灵活性,支持代码重用,并且可以利用 IDE 提供的调试、测试等功能。每次运行测试都会新启动一组容器,提高了隔离性和成本效率。负载测试工件分布于各数据中心,生成器与 CI/CD 管道集成,通过可配置的预热阶段、稳态阶段和峰值阶段实现测试自动化。

 

依赖模拟器通过引入受控延迟和预定义响应来模拟下游服务。当服务依赖外部供应商或需要在回归或集成测试期间实现隔离时,这一功能非常有用。通过模拟依赖项,团队可以在不影响其他服务的情况下,评估各种负载条件下的系统行为。

 

流量收集器从实时环境中捕获上游和下游交互(包括延迟分析),并在测试环境中重放这些数据。这可以确保负载测试反映了现实世界的模式,并且可以发现合成流量可能无法揭示的瓶颈。

 

测试 API 生成器将事件驱动的异步工作流转换为同步 API 调用,从而能够对在负载条件下难以评估的流程进行全面的负载测试。这种方法有助于发现传统同步测试可能忽略的性能问题。该框架集成了多种工具:采用 Docker 实现容器化,使用 Java 和 Kotlin 执行测试,并通过 CI/CD 管道实现自动化。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:

https://www.infoq.com/news/2025/09/airbnb-impulse-load-testing/

2025-09-12 12:009465

评论

发布
暂无评论

软件测试/测试开发/全日制|pytest如何标记测试用例

霍格沃兹测试开发学社

软件测试/测试开发/全日制 |从Git到Jenkins:Python全栈开发中的版本控制与自动化

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |Python全栈开发实战:搭建强大的Web应用服务器

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |Python全栈开发:构建基于GraphQL的现代Web应用

测吧(北京)科技有限公司

测试

跨境电商通讯服务

cts喜友科技

通信 通讯

软件测试/测试开发/全日制 | Python全栈开发中的自动化部署与持续集成实践

测吧(北京)科技有限公司

测试

软件测试 /测试开发/全日制|Python全栈开发:使用AJAX进行前后端数据交互

测吧(北京)科技有限公司

测试

C 语言文件处理全攻略:创建、写入、追加操作解析

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

2023 IoTDB Summit:华润电力技术研究院副院长郭为民《新型时序数据库在智能发电领域的应用探索与展望》

Apache IoTDB

2024年CoinList上第一个项目Subsquid

币离海

Coinlist Subsquid SQD

软件测试/测试开发/全日制 | Python全栈开发实战:利用Redis提高系统性能

测吧(北京)科技有限公司

测试

为什么建筑设计师选择网络渲染"效果图"

Renderbus瑞云渲染农场

云渲染 云渲染农场 效果图渲染

敏捷监控与可观察性

FunTester

5G之味,在烟火长沙

脑极体

5G

一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器

芯动大师

漫画IT | 关于你天天用的OS与Git

极狐GitLab

软件测试/测试开发/全日制 | Python全栈开发:安全防范与Web应用的漏洞预防

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |构建智能Web应用

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |使用Django构建高效的Web应用

测吧(北京)科技有限公司

测试

左耳听风 - 我对技术的态度「读书打卡 day 02」

Java 工程师蔡姬

读书笔记 程序员 读书 左耳朵耗子

2024第十届上海国际智慧工地展览会

AIOTE智博会

智慧工地展览会 智慧工地展会 智慧工地展

软件测试/测试开发/全日制 |Python全栈开发:利用RabbitMQ构建高效的消息队列系统

测吧(北京)科技有限公司

测试

云渲染适合什么场景下使用?

Renderbus瑞云渲染农场

云渲染 渲染农场 动画渲染 效果图渲染

创业清华人丨 乔嘉林:破茧成蝶,时序数据库赋能工业物联网

Apache IoTDB

博通集成在其Wi-Fi芯片组上集成Alexa Connect Kit

财见

软件测试/测试开发/全日制 |从Flask到FastAPI:Python全栈开发中的后端框架比较

测吧(北京)科技有限公司

测试

软件测试/测试开发全日制培训|Pytest跳过用例和失败重试

霍格沃兹测试开发学社

软件测试/测试开发/全日制|Pytest如何灵活地运行用例

霍格沃兹测试开发学社

软件测试/测试开发/全日制 | Python全栈开发:构建基于RESTful API的微服务

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |Python全栈开发:利用OAuth与JWT实现身份验证

测吧(北京)科技有限公司

测试

博通集成发布BK3633 Apple Find My网络配件解决方案

财见

Impulse:Airbnb全新的情境感知负载测试框架_框架_InfoQ精选文章