流量录制和回放工具AREX

AREX是一款由携程开源的流量录制和回放工具,主要用于自动化回归测试。它通过在生产环境中录制接近全量的业务场景请求和数据,然后在测试环境中回放这些真实的请求和数据,对新版本的应用进行全面、快速的测试[1]。AREX的核心组件是AREX Agent,它通过对入口调用和各个依赖调用的代码进行字节码增强,拦截调用过程,实现服务的录制和回放[2]。

AREX的设计初衷是为了降低测试用例编写和测试环境搭建的成本,同时提供了一套详细的官网文档和活跃的社区支持,使得即使是新手也能快速上手[4]。此外,AREX还提供了接口测试、接口比对测试等丰富的自动化测试功能,无需编程能力也可快速上手[15]。

AREX的开发背景孵化于携程机票BU内部,聚焦于录制回放核心链路的建设,从基础方案建设到核心业务线的深入落地验证,在集团复杂业务场景下不断迭代和优化,积累了大量经验,并取得了显著成果。截至目前,已有4000+应用接入AREX平台[3][5]。

AREX的技术实现基于Java Agent技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。它实现了从流量采集、流量回放,到比对验证、生成报告的一站式工作流程[27]。此外,AREX还支持无代码侵入的流量回放功能,进一步降低了使用门槛[24]。

AREX作为一款开源的自动化测试工具平台,其设计和实现逻辑旨在通过真实请求与数据的录制和回放,为用户提供一个高效、低成本的自动化回归测试解决方案。

地址:快速安装 | AREX (arextest.com)

AREX工具的具体实现技术细节是什么?

AREX工具的具体实现技术细节主要包括以下几个方面:

  1. 字节码增强技术:AREX Agent 通过对入口调用和各个依赖调用的代码进行字节码增强,当代码被执行到时拦截调用过程,将调用的入参、返回值和异常录制下来,发送到存储服务[31]。这种技术利用Java Agent和字节码增强技术,在生产环境中记录真实请求链路的入口和依赖的请求和响应数据[36]。
  2. 自动录制与回放功能:AREX通过自动录制、回放和比对功能,有效解决了回归测试的难题,使得测试过程更加高效和准确[32]。在测试环境回放时会使用生产环境录制的真实数据模拟请求,AREX Agent 通过识别回放标识决定是否需要[31]。
  3. Mock实现原理:AREX是基于真实请求与数据的自动化回归测试平台,利用Java Agent字节码注入技术,通过在生产环境录制和存储请求、应答数据,并在测试环境进行模拟[35]。在进行数据采集时,同一个请求,会采集下来多条数据(如不同的参数组合),以此来达到自动录制、自动回放、自动比对[38]。
  4. 全链路跟踪和Mock数据读写:AREX通过Java Agent字节码注入技术,在生产环境录制和存储请求、应答数据,随后在测试环境回放请求和注入Mock数据,存储新的应答,以此来达到自动录制、自动回放、自动比对,为接口回归测试提供便利[38]。
  5. 插件开发指南:AREX Agent提供了插件开发指南,允许开发者创建自定义的插件来扩展其功能。这些插件可以使用AREX Agent提供的基础类和工具,比如录制回放相关组件,配置信息等[39]。

AREX工具的实现技术细节主要依赖于Java Agent和字节码增强技术,通过自动录制、回放和比对功能,以及支持Mock数据的读写和全链路跟踪,实现了高效的自动化回归测试。此外,AREX还支持插件开发,以满足更广泛的测试需求。

如何配置和使用AREX进行自动化回归测试?

配置和使用AREX进行自动化回归测试的步骤可以概括为以下几个方面:

  1. 安装部署:首先,需要在本地或测试环境中安装AREX。如果是Linux环境,确保已经安装了Docker和Docker Compose。AREX支持通过Docker-Compose一键安装所有基础服务组件[43][45]。此外,AREX也提供了在线试用平台AREX Demo,方便用户快速体验其功能[43]。
  2. 录制生产环境请求:AREX基于Java Agent技术,能够录制生产环境真实用户的请求。这意味着在实际部署前,需要在生产环境中启用AREX Agent,以便收集真实用户的数据[41][42]。
  3. 回放与比对:在测试环境中,使用AREX进行请求的回放,并智能比对分析回放结果。这一步骤是实现快速有效的回归测试的关键[41][42][47]。
  4. 配置Agent:在开发环境中下载AREX Agent JAR包,并对被测试应用进行配置,以运行AREX Agent。这一步骤确保了测试环境能够正确地接收和处理来自生产环境的请求[44]。
  5. 使用智能Mock机制:AREX支持智能Mock机制,包括Mock时间、缓存数据等,还可以编辑Mock数据以满足不同的测试需求。这有助于减少回放过程中的噪声,并提高测试的准确性[49][50]。
  6. 服务状态监控:在使用AREX的过程中,需要注意各个服务的状态,确保它们处于正确的状态(即Up状态)。如果发现服务状态异常,可能需要重启服务或查看服务日志,以检查不能启动的原因[46]。
  7. 端口配置:根据测试环境的具体需求,可以配置AREX前端的端口。默认情况下,AREX前端的端口为8088,但可以根据需要修改为其他端口,例如80端口[46]。

通过上述步骤,可以有效地配置和使用AREX进行自动化回归测试,从而提高测试效率和质量。

AREX在实际项目中的应用案例有哪些?

AREX在实际项目中的应用案例包括:

  1. 在社区提供的community-test应用上,通过流量回放功能实现了一个简单的书店生成订单功能,为特定用户生成某本书的订单。这个过程中会根据营销活动进行相应的调整[51]。
  2. AREX被应用于携程内部落地实践,通过快速部署一站式流量录制回放解决方案来降低接入成本,快速落地。这表明AREX能够支持大规模的流量处理和自动化测试[53]。
  3. AREX还被用于自动化回归测试,特别是在接口测试方面。通过使用AREX的缓存服务Redis来缓存回放过程中的Mock数据和比对结果,以提高比对效率。这一过程从AREX Agent配置到录制回放、问题定位,展示了AREX接口自动化回归测试的全过程[56]。
  4. AREX的技术特点还包括无代码侵入的数据采集和自动化Mock,以及智能的Mock机制,这些技术使得测试运行代码集中在待测应用,而不会产生真正的外部交互,如数据库的写操作[58]。
  5. AREX还支持Apollo配置中心的Mock实现,只需支持Apollo客户端的录制和回放,即可实现在Java应用项目中的自动化测试[59]。

AREX在实际项目中主要应用于自动化回归测试、流量回放、以及无代码侵入的数据采集和自动化Mock等方面,其技术特点和应用场景体现了其在软件测试领域的广泛应用和重要价值。

AREX与其他流量录制和回放工具相比有哪些独特优势?

AREX与其他流量录制和回放工具相比,具有以下独特优势:

  1. 无代码侵入的数据采集和自动化Mock:AREX能够在不修改现有代码的基础上进行数据采集和自动化Mock,这一点使得它在自动化测试中非常灵活和高效[61]。这种无代码侵入的特性,相比于需要修改或重新编写大量测试代码的传统方法,大大降低了测试的复杂性和成本。
  2. 基于真实请求与数据的自动化回归测试:AREX通过复制线上真实流量到测试环境进行自动化回归测试,解决了传统回归测试中难以复现线上环境的问题[62]。这种方法能够确保测试用例的真实性,提高测试的准确性和可靠性。
  3. 数据脱敏功能:AREX提供了数据脱敏功能,这意味着在进行生产环境真实流量录制时,AREX能够在将数据存储到数据库时对其进行脱敏处理[63]。这一功能对于保护敏感数据非常重要,避免了因测试而泄露重要信息的风险。
  4. 智能的Mock机制:AREX采用Java的instrument实现了智能的Mock机制,这使得测试运行代码集中在待测应用,不会产生真正的外部交互(如DB的写入、其他服务的调用等)[64]。这种机制不仅提高了测试的效率,还减少了对实际生产环境的影响。
  5. 无需手动编写大量测试用例:利用AREX工具进行接口自动化测试的一大优势在于,用户无需手动编写大量的测试用例。海量的线上真实请求即可轻松满足覆盖率,用户可以选择直接固化已经录制好的接口用例,或通过强制录制的方式固化所需的接口用例[67]。这大大节省了测试准备的时间和精力。

AREX的独特优势在于其无代码侵入的数据采集和自动化Mock能力、基于真实请求与数据的自动化回归测试、数据脱敏功能、智能的Mock机制以及无需手动编写大量测试用例的能力,这些特点使其在自动化测试领域中具有明显的竞争优势。

AREX的最新版本提供了哪些新功能或改进?

AREX的最新版本提供了以下新功能或改进:

  1. 新增流量分组功能,支持在录制流量时根据不同的环境为流量设置不同的环境标签,以便用户可以灵活地筛选和回放录制的流量[68]。
  2. 在接口请求下新建的测试用例将自动继承当前接口请求下的配置,如URL、请求方式及Parameters、Header、Body及前置脚本(Pre-request Script)等,减少了测试用例重新定义接口请求参数及前置脚本的需求[69]。
  3. 提供了对新功能测试的支持,并且大大简化了这个流程。AREX会智能地预生成测试脚本,用户只需花费几分钟添加验证点即可完成新功能的验证,无需准备验证场景和用例数据[72]。

需要注意的是,证据中也提到了AREX 5加热磁力搅拌器和AREX 6 Connect PRO加热磁力搅拌器,但这些信息与自动化接口测试工具AREX的功能更新无关,因此不作为回答依据[70][71][74]。

参考资料

1. AREX:携程新一代流量录制回放工具的设计与实现 - 稀土掘金 [2023-07-24]

2. 开源流量回放工具AREX快速上手实践 - 稀土掘金 [2023-08-09]

3. 开源流量回放平台AREX 在携程的大规模落地实践 - TesterHome [2024-04-09]

4. 测试人的福音:开源流量回放工具快速上手实践-csdn博客 [2023-08-10]

5. 开源流量回放平台 Arex 在携程的大规模落地实践 - 知乎

6. 测试人的福音:开源流量回放工具快速上手实践 - 开放原子开发者工作坊 [2023-08-10]

7. AREX 上手体验浅谈 - TesterHome [2022-07-29]

9. 基于流量回放的自动化回归测试平台AREX Agent 技术实现细节分享

10. 开源| AREX-携程无代码侵入的流量回放实践-腾讯云开发者社区 [2022-07-26]

11. 自动化回归测试平台——Arex上手实践 - 知乎 - 知乎专栏

12. 自动化回归测试平台——AREX上手实践 - 老K的Java博客

13. 超好用的回归测试工具,我不允许你还不会用! - 知乎专栏

14. 自动化测试 - 自动化接口回归测试神器 AREX 使用初体验 - 个人文章 - SegmentFault 思否 [2023-07-18]

15. java - 自动化回归测试工具—— AREX 上手实践 - 个人文章 - SegmentFault 思否 [2023-04-04]

16. Arex Chrome Extension_chrome插件下载,最新浏览器扩展,crx离线 ...

17. 自动化回归测试工具—— Arex 上手实践-csdn博客 [2023-03-22]

18. Install Arex Client - arextest.com

19. 自动化接口回归测试神器AREX 使用初体验 - 摩杜云开发者社区

20. 本地编译安装部署自动化回归测试平台AREX - 百度开发者中心 [2024-01-17]

21. 自动化接口回归测试神器 Arex 使用初体验 - 知乎

22. 如何在本地快速安装部署自动化回归测试平台AREX [2023-03-06]

23. 订单流量录制与回放探索实践 - 知乎 - 知乎专栏

24. AREX 流量回放实践分享 - 爱Java [2023-04-26]

25. 介绍一个接口测试利器AREX 原创 - CSDN博客 [2023-04-14]

26. 自动化回归测试工具—— AREX 上手实践 · TesterHome [2023-05-08]

27. AREX Test首页、文档和下载 - 自动化测试工具平台 - OSCHINA - 中文开源技术交流社区 [2024-04-02]

28. 自动化接口回归测试神器 AREX 使用初体验_arextest-CSDN博客 [2023-07-18]

29. 开发效率低?试试这款开发人员自测软件 - 稀土掘金 [2023-11-30]

30. 自动化回归测试工具—— AREX 上手实践 - 稀土掘金 [2023-03-21]

31. AREX Agent 技术实现细节分享 - 知乎 - 知乎专栏

32. 基于流量回放的自动化回归测试平台AREX Agent 技术实现细节分享 [2023-08-02]

33. AREX:携程新一代自动化回归测试工具的设计与实现 [2023-07-25]

34. Arex 前后端开发文档 | Arex

35. 自动化回归测试平台AREX 的Mock 实现原理 - 稀土掘金 [2023-06-15]

36. 技术干货| AREX Agent 如何实现Apollo 配置中心Mock - TesterHome [2023-09-04]

37. AREX Agent 技术实现细节分享 - 老K的Java博客

38. java - AREX Agent 源码解读之全链路跟踪和 Mock 数据读写 - 个人文章 - SegmentFault 思否 [2023-05-16]

39. AREX Agent 插件开发指南 - 老K的Java博客

40. 开源流量回放平台AREX 在携程的大规模落地实践原创 - CSDN博客 [2024-04-02]

41. 如何在本地编译安装部署自动化回归测试平台AREX - TesterHome

42. 如何在本地编译安装部署自动化回归测试平台 Arex - 知乎

43. 自动化回归测试工具—— AREX 上手实践_开源 - InfoQ 写作社区 [2023-03-21]

44. AREX 在开发自测场景中应用实践 - TesterHome [2023-12-01]

45. Linux环境AREX部署原创 - CSDN博客 [2023-08-08]

46. AREX:接口自动化回归测试完全指南 - InfoQ 写作社区 [2023-05-25]

47. 基于流量回放的自动化回归测试平台AREX Agent 技术实现细节分享原创 [2023-08-04]

48. 自动化接口回归测试神器AREX 使用初体验 - InfoQ 写作社区 [2023-07-18]

49. 关于AREX | AREX

50. Arex | Arex

51. Arex 流量回放实践分享 - 知乎

52. AREX 广中照明 最新消息 AREX微波感应平板灯在地下车库的节能 ... [2020-12-01]

53. 开源流量回放平台AREX 在携程的大规模落地实践- 大模型知识库 - 53AI

54. 自动化回归测试工具—— AREX 上手实践原创 - CSDN博客 [2023-03-21]

55. AREX 流量回放实践分享原创 - CSDN博客 [2023-04-26]

56. 开源!Arex接口自动化回归测试的全过程 - 知乎

57. 自动化回归测试平台AREX 前端架构演变史—— Tabs 动态组件设计 [2023-06-04]

58. AREX-携程无代码侵入的自动化回归测试平台_开源 - InfoQ 写作社区 [2023-03-14]

59. AREX Agent 如何实现Apollo 配置中心Mock_开源 - InfoQ写作平台 [2023-09-04]

60. 自动化回归测试平台AREX Agent 源码阅读 - TesterHome [2023-05-23]

61. AREX Agent:基于流量回放的自动化回归测试平台技术实现细节分享 [2024-02-15]

62. 回归测试的目的和策略是什么? - 知乎

63. 自动化回归测试平台AREX 0.6.0 新特性之数据脱敏 - 稀土掘金 [2023-10-22]

64. Arex - 携程无代码侵入的自动化回归测试平台 - 知乎

65. 性能工具之常见流量复制工具 - 稀土掘金 [2021-05-11]

66. AREX 数显型加热磁力搅拌器系统,带Pt100温度探针

67. 接口测试利器:AREX - 知乎专栏

68. 自动化接口测试工具AREX 0.6.2 版本发布_开源_AREX 中文社区_ ...

69. 自动化回归测试平台 Arex 0.2.7 版本正式发布! - 知乎专栏 [2023-03-23]

70. AREX 5加热磁力搅拌器

71. AREX 6 Connect PRO 加热磁力搅拌器 - Velp Scientifica

72. AREX - 渠成开源社区

73. AREX Agent 源码解读之全链路跟踪和Mock 数据读写原创 - CSDN博客 [2023-05-16]

74. 磁性实验室摇床- AREX-6 Connect PRO - VELP Scientifica/意大利 ...

  • 32
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自太平洋的暖湿气流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值