亚马逊AWS官方博客
利用 AWS 部署 AREX:加速研发效能的自动化回归测试实践丨AREX on AWS: Automated Regression Testing Practice to Accelerate R&D Efficiency
在当今快速迭代的软件开发环境中,确保代码变更不会引入新的缺陷至关重要。AREX 作为一款强大的自动化回归测试工具,可以帮助开发团队快速识别潜在问题,提高软件质量。本文将介绍如何在 AWS 上轻松部署 AREX,以加速您的研发效能。
AREX 简介
AREX 是一个基于流量录制和回放技术的自动化回归测试平台。它能够捕获生产环境中的真实流量,并在测试环境中进行精确回放,从而实现全面的回归测试。AREX 的主要优势包括:
- 无需编写测试用例,大幅降低测试成本
- 基于真实流量,提高测试覆盖率和准确性
- 自动比对请求响应,快速定位问题
- 支持多种编程语言和框架
在 AWS 上部署 AREX
AREX 提供了两种在 AWS 上的部署方式,以满足不同用户的需求。本文将详细介绍这两种方法,让您能够根据自身情况选择最适合的部署方式:
- 使用 AREX Cloud
- 手动将 AREX 社区版部署到 AWS EC2
接下来,我们将分别深入探讨这两种部署方法的具体步骤和注意事项,帮助您顺利完成 AREX 在 AWS 上的部署。无论您选择哪种方式,我们都将为您提供清晰的指导,确保您能够充分利用 AREX 的功能。
AREX Cloud
要开始使用 AREX,您需要先注册一个 AREX Cloud 账户。访问 AREX 官网并点击”开始使用”按钮进行注册。
注意:控制台登录用户与 AREX 用户不同。控制台用户供企业组织购买和管理 AREX 平台使用。
注册后,新用户需要使用公司名称创建一个组织,并生成唯一的 AREX 平台访问链接。
组织管理员可以进入 Dashboard 页面点击下载最新版本的客户端,或自行访问官网下载页面下载。
用户可以通过邀请邮件中提供的下载链接下载客户端。
管理员创建组织后,组织成员可以访问之前生成的唯一链接(https://demo.arextest.com)或通过本地客户端登录。
首次登录时,用户需要输入邮箱地址。在邮箱中收到验证码后,点击”登录”即可完成登录过程。
手动部署到 AWS EC2
步骤 1:准备用于 AREX 部署的 EC2
选择 Amazon Linux 2 AMI 作为操作系统。
如果您只是尝试使用,建议选择 t3.large(2C8G) 机器作为最低配置。
密钥对可以根据需要创建和使用(用于快速连接到 EC2)。稍后创建 Amazon DocumentDB 时也可以共享此密钥。
存储配置默认选择 8G。
步骤 2:创建 Amazon DocumentDB 集群
注意:使用 Amazon DocumentDB 时,需要将其部署在与关联 EC2 实例相同的虚拟私有云(VPC)中,以确保它们可以相互通信。
创建 2 个 db.t3.medium 类型的实例,1 个主节点和 1 个从节点。引擎版本选择 5.0.0。
安装后,配置相应的入站规则,允许通过连接字符串从外部网络访问。使用 mongo shell 验证连接字符串是否可用。
运行 show dbs
命令,上图表明 Amazon DocumentDB 创建成功。
步骤 3:准备 Amazon ElastiCache 并创建 Redis 集群
- 在 AWS 控制台中搜索 Amazon ElastiCache 并创建 Redis 集群(Amazon ElastiCache 必须与上面创建的 EC2 在同一 VPC 中)。
- 选择配置并创建新集群。在试用阶段可以禁用集群模式,正式使用时可根据需要修改配置。
- 引擎版本选择 2,节点类型选择 cache.t3.micro,副本数设置为零。
- 选择创建新子网组,并选择与上面 EC2 相同的 VPC ID。
- 要检查是否成功连接到 Amazon ElastiCache,可以在 EC2 上使用 redis-cli 连接 Amazon ElastiCache。如果连接失败,可以检查相应安全组的入站规则,并根据您的网络情况进行配置。
步骤 4:通过 docker-compose 安装 AREX
安装 AREX 非常简单。您可以使用 Docker-Compose,只需一个命令就能安装 AREX 的所有基本服务组件。以下简要介绍- AREX 回归测试的工作原理和各种服务组件。
AREX 回归测试的工作原理是使用 AREX Java Agent 对生产环境中 Java 应用程序的数据流和请求信息进行采样和记录,并将这些信息发送到 AREX Storage Service,导入数据库(MongoDB)进行存储。当需要回放时,AREX Schedule Service 将通过 Storage Service 从数据库中提取被测应用程序的记录数据,然后向目标验证服务发送接口请求。同时,Java Agent 将模拟记录的外部依赖响应,而不是真实的数据访问,并将其传递给被测应用程序。目标服务完成请求逻辑并返回响应消息后,Schedule Service 将比较记录的响应消息和回放的响应消息,以验证系统逻辑的正确性,并将比较结果发送到分析服务(Report Service),生成完整的回放测试报告供测试人员分析记录和回放之间的差异。
首先,通过 git 克隆 AREX 存储库。
配置 Amazon DocumentDB 和 Amazon ElastiCache
如果您想使用 Amazon DocumentDB 作为数据库来替代默认的 MongoDB,并使用 Amazon ElastiCache 来替代默认的 Redis,只需修改 docker-compose.yml 配置文件中的连接字符串即可。将所有 MongoDB 连接字符串替换为 Amazon DocumentDB 连接字符串,将所有 Redis 连接字符串替换为 Amazon ElastiCache 连接字符串。
步骤 5:启动 AREX
配置完成后,运行 docker-compose
启动 AREX。
如果您没有修改端口配置,服务启动后,可以直接通过访问 8088 端口访问 AREX 前端页面。
AREX 上的录制和回放
1. Collection
接口测试的入口点
- 测试用例管理
- API endpoint configurationAPI 端点配置
- Request/response validation 请求/响应验证
2. Report
录制和回放会话的管理中心
- 会话概览和统计
- 详细测试结果分析
3. Traffic
历史录制数据的存储库
- 按时间顺序列出记录的交互
- 数据导出和归档
录制和回放快速入门
设置 Arex Agent
为了使用流量回放功能,需要预先在被测服务上加载 Agent。
执行以下命令克隆并打包 Agent 代码,或直接从 https://github.com/arextest/arex-agent-java/releases 下载。
arex-agent-jar 下将生成相应的 jar 包文件。将此文件夹复制到 D 盘根目录,然后在本地运行以下命令启动演示应用程序。将 x.x.x.x 替换为之前安装 Docker 的 IP 地址:
注意:您也可以直接从 https://github.com/arextest/arex-standalone/releases 下载,其中包含相应的 jar 文件。启动后,应用程序将自动出现在 AREX 的回放应用列表中。
加载了 AREX Agent 的应用程序发布后,会根据设置的录制频率自动收集真实用户请求并保存。这些保存的数据用作后续回放的测试用例,以验证新的代码更改是否有意外后果。
应用设置
可以在 AppSetting 中对目标应用进行一系列设置。在本例中,仅使用与录制相关的设置,如下所示:
您可以在此设置录制时间和频率。
回放
在回放菜单中启动回放任务(将目标回放环境设置为已部署测试应用程序的 IP 地址和端口号)后,您将看到以下执行记录:
从列表中选择回放任务,将显示测试结果摘要,显示成功执行的百分比。以下是一个测试接口的列表:
本演示中的所有用例都失败了,点击 DiffScenes 将显示失败的详细信息:
录制的测试用例的数据详情,”Save”按钮允许您固化测试用例并将其保存在 Request Collection 菜单中:
结论
通过在 AWS 上部署 AREX,您可以显著提高开发团队的效率。自动化回归测试不仅节省了大量的人力和时间成本,还提高了软件质量,降低了生产环境中出现问题的风险。我们鼓励您尝试使用 AREX,体验它如何彻底改变您的开发流程。
要了解更多关于 AREX 的信息,请访问 AREX 官方文档。如果在使用过程中遇到任何问题,请随时联系 AWS 支持团队或 AREX 技术支持。
让我们共同利用 AWS 和 AREX 的强大功能,创建一个更高效、更可靠的软件开发流程!