快速安装
前提条件
在开始使用 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 个实例,具体如下:
ID | Instance | Model Name | Description |
---|---|---|---|
1 | 1 | 调度服务(AREX-Schedule) | 用于发送回放请求并检索所有响应以进行比较。 |
2 | 1 | AREX-API | 为 AREX 前端页面提供所有 API 接口。 |
3 | 1 | 存储服务(AREX-Storage) | 为 AREX Agent 提供了以 Mock 方式保存录制和获取响应的功能。 |
4 | 1 | AREX 前端(AREX-Front) | AREX 前端页面。 |
5 | 1 | MongoDB | 数据存储及配置管理数据库 |
6 | 1 | Redis | 高速回放缓存 |
你可以通过在运行 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服务,自己做数据同步。
部署模式
- 在生产环境中部署 AREX A,用于在生产环境中录制数据,并存储到 AREX(Mongodb)。
- 在测试环境中部署 AREX B,用于在测试环境中回放数据。
- 由 DBA 将数据库数据从 AREX A 单向同步到 AREX B。
- 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 个实例,具体组件实例如下:
ID | Instance | Model Name | Description |
---|---|---|---|
1 | 2 | AREX-Schedule | 用于发送回放请求并检索所有响应以进行比较。 |
2 | 1 | AREX-API | 为 AREX 前端页面提供所有 API 接口。 |
3 | 2 | AREX-Storage | 为 AREX Agent 提供了以 Mock 方式保存录制和获取响应的功能。 |
4 | 1 | AREX 前端 | AREX 前端页面。 |
5 | 1 | MongoDB | 数据存储及配置管理数据库 |
6 | 1 | Redis | 高速回放缓存 |
7 | 1 | Nginx | Schedule 负载均衡服务 |
8 | 1 | Nginx | Storage 负载均衡服务 |
当然你也可以修改 docker-compose-distribute.yml
配置文件,根据自己的需求配置多实例。