跳到主要内容

快速安装

前提条件

在开始使用 AREX 之前,请确保你已经安装以下应用:

Docker 和 Docker Compose。

安装 AREX

首先,通过 git 命令克隆 AREX 仓库:

git clone --depth 1 https://github.com/arextest/deployments.git 
cd deployments

接着通过 docker-compose 启动 AREX。

# 启动
docker-compose up -d
# 停止
docker-compose down -v

另外,也可以通过 Docker Compose 2.0 启动。

# 启动
docker compose -f docker-compose-2x.yml up -d
# 停止
docker compose -f docker-compose-2x.yml down -v

安装完成后,将自动安装好包括前端、服务、数据库等在内的所有组件,每个组件只有 1 个实例,具体如下:

IDInstanceModel NameDescription
11调度服务(AREX-Schedule)用于发送回放请求并检索所有响应以进行比较。
21AREX-API为 AREX 前端页面提供所有 API 接口。
31存储服务(AREX-Storage)AREX Agent 提供了以 Mock 方式保存录制和获取响应的功能。
41AREX 前端(AREX-Front)AREX 前端页面。
51MongoDB数据存储及配置管理数据库
61Redis高速回放缓存

你可以通过在运行 Docker 的宿主机上执行 docker-compose ps 的命令查看各服务运行情况及端口。

[~ deployments]# docker-compose ps   
Name Command State Ports
------------------------------------------------------------------------------------------
arex-front docker-entrypoint.sh node ... Up 0.0.0.0:8088->8080/tcp
arex-mongodb docker-entrypoint.sh --auth Up 0.0.0.0:27017->27017/tcp
arex-redis docker-entrypoint.sh --app ... Up 0.0.0.0:6379->6379/tcp
arex-api catalina.sh run Up 0.0.0.0:8090->8080/tcp
arex-schedule catalina.sh run Up 0.0.0.0:8092->8080/tcp
arex-storage catalina.sh run Up 0.0.0.0:8093→8080/tcp

检查服务日志命令

docker-compose logs
docker-compose logs arex // 检查 AREX 日志
docker-compose logs arex-schedule-service // 检查调度服务日志
docker-compose logs arex-api // 检查 API 服务日志
docker-compose logs arex-storage-service // 检查存储服务日志

注册应用

AREX Agent 是实现服务录制回放的核心组件,进行回放测试前需要为被测应用配置 AREX Agent,详见:注册应用

AREX 部署场景

AREX 单服务部署场景

如果录制和回放环境,即生产和测试环境之间可以互通或者有工具 Zone,则部署单个 AREX 服务。如下图所示,在生产环境录制数据,存储到 AREX(Mongodb),随后在测试环境回放数据。

单服务

AREX 多服务部署场景

如果生产环境和测试环境之间无法互通,即录制环境和回放环境互相隔离,测试环境无法访问生产环境中数据库,则需要部署多个 AREX 服务。生产环境只需要部署数据库和storage 服务,测试环境需要搭建一整套的AREX服务,自己做数据同步。

多服务

部署模式

  1. 在生产环境中部署 AREX A,用于在生产环境中录制数据,并存储到 AREX(Mongodb)。
  2. 在测试环境中部署 AREX B,用于在测试环境中回放数据。
  3. 由 DBA 将数据库数据从 AREX A 单向同步到 AREX B。
  4. AREX A 环境应用录制数据, AREX B 环境应用进行回放。

版本升级更新

通过 Docker Compose 方式一键启动 AREX 时,可以在 deployments 仓库下环境变量 .env 文件中查看当前版本,如果需要使用先前版本,可直接修改该文件中 AREX_VERSION

进入 docker-compose.yml 所在目录,更新前需先停止原有服务:

cd deployments 
docker-compose down -v

注:如果不想保留原有的 Mongodb 数据或日志,请手动删除当前运行目录的 arex-data、arex-logs 目录(请慎重操作,删除后将无法回退!)

更新 deployments 仓库,重新启动 AREX:

git pull 
docker-compose up -d

多实例安装

以上,我们介绍了如何使用 AREX 提供的 docker-compose.yml 文件直接安装 AREX 包括前端、服务、数据库等所有组件,此种安装方式下,每个组件只有 1 个实例,无法实现多实例负载均衡和扩容。

如要进行多实例安装,可通过 AREX 提供的 docker-compose-distribute.yml 文件进行缺省安装,运行以下命令:

git clone https://github.com/arextest/deployments.git 
cd deployments
docker-compose -f docker-compose-distribute.yml up -d
# 停止命令 
docker-compose -f docker-compose-distribute.yml down -v
# PS命令
docker-compose -f docker-compose-distribute.yml ps

缺省配置的调度服务和存储服务是 2 个实例,具体组件实例如下:

IDInstanceModel NameDescription
12AREX-Schedule用于发送回放请求并检索所有响应以进行比较。
21AREX-API为 AREX 前端页面提供所有 API 接口。
32AREX-StorageAREX Agent 提供了以 Mock 方式保存录制和获取响应的功能。
41AREX 前端AREX 前端页面。
51MongoDB数据存储及配置管理数据库
61Redis高速回放缓存
71NginxSchedule 负载均衡服务
81NginxStorage 负载均衡服务

当然你也可以修改 docker-compose-distribute.yml 配置文件,根据自己的需求配置多实例。