昆明网页建站模板,wordpress福利源码,工商局网站开发费用,建站 discuz携程开源 基于真实请求与数据的流量回放测试平台、自动化接口测试平台AREX 官网文档 基于真实请求与数据的流量回放测试平台、自动化接口测试平台AREX 这篇文章稍稍水一下#xff0c;主要讲下部署过程里踩的坑#xff0c;因为部署的过程主要是运维同学去处理了#xff0c;我…携程开源 基于真实请求与数据的流量回放测试平台、自动化接口测试平台AREX 官网文档 基于真实请求与数据的流量回放测试平台、自动化接口测试平台AREX 这篇文章稍稍水一下主要讲下部署过程里踩的坑因为部署的过程主要是运维同学去处理了我只说下踩到的坑官方的教程是可行的。 当你使用docker部署后登录的地方那个邮件如果收不到第一个是要升级到0.6.2.2以上版本第二个是自己公司的邮箱可能收不到邮件如果遇到就使用QQ邮箱这些试试垃圾邮件箱里也翻翻如果一次不行多试几次这个地方踩坑过后面问了维护团队搞定了那个邮件是不需要你配置自己的邮箱或者邮件服务器或者实现的直接AREX官方自己的邮箱发给你。成功的邮件验证码是这样 第二个是arex-agent-java.jar这个东西直接去这里下载arex-agent-java.jar release下载第一个arex-agent-java.tar.gz然后解压拿里面的arex-agent-java.jar去用自己编译的话有报错暂时不走自己编译的方式。 登录进去后的界面是这样
创建app jar启动参数 其他配置项 接口集合支持批量测试
单环境部署 多环境部署 下面的是从官网抄的建议直接看官网快速开始教程 官方的交流群可以加下项目的github上的介绍里有确实有管理在积极回答问题~这点很不错 快速安装
前提条件 在开始使用 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
检查服务日志命令
cd deployments docker-compose logs docker-compose logs arex // 检查 AREX 日志 docker-compose logs arex-schedule-service // 检查调度服务日志 docker-compose logs arex-api-service // 检查 API 服务日志 docker-compose logs arex-storage-service // 检查存储服务日志
日志降级 如果需要降低 AREX 的日志级别以减少日志输出的数量和占用数据库的空间则需要在启动 AREX 前在 docker-compose.yml 的 arex-api-service、 arex-storage-service、arex-schedule-service 配置项中分别加入如下配置项:
-Dlogging.level.com.arextestERROR -Dlogging.level.com.arextest.storageERROR -Dlogging.level.com.arextest.scheduleERROR
如下所示
arex-api-service: … environment: - TZAsia/Shanghai - JAVA_OPTS-Darex.mongo.uri A R E X M O N G O U R I − D a r e x . r e d i s . u r i AREX_MONGO_URI -Darex.redis.uri AREXMONGOURI−Darex.redis.uriAREX_REDIS_URI -Darex.storage.service.urlhttp://arex-storage-service:8080 -Dspring.config.additional-location/usr/local/tomcat/additional-config/ -Dspring.config.nameapplication,oauth -Dlogging.level.com.arextestERROR … arex-storage-service: … environment: - TZAsia/Shanghai - JAVA_OPTS-Darex.mongo.uri A R E X M O N G O U R I − D a r e x . r e d i s . u r i AREX_MONGO_URI -Darex.redis.uri AREXMONGOURI−Darex.redis.uriAREX_REDIS_URI -Darex.api.service.apihttp://arex-api-service:8080 -Dlogging.level.com.arextest.storageERROR … arex-schedule-service: … environment: - TZAsia/Shanghai - JAVA_OPTS-Darex.mongo.uri A R E X M O N G O U R I − D a r e x . r e d i s . u r i AREX_MONGO_URI -Darex.redis.uri AREXMONGOURI−Darex.redis.uriAREX_REDIS_URI -Darex.storage.service.apihttp://arex-storage-service:8080 -Darex.api.service.apihttp://arex-api-service:8080 -Dlogging.level.com.arextest.scheduleERROR …
默认不开启录制 如果希望在后续为被测应用配置 Agent 后不立即进行录制则可以在 arex-api-service 中加入配置项-Darex.config.default.service.collect.sampleRate0如下
arex-api-service: … environment: - JAVA_OPTS-Darex.mongo.urimongodb://arex:iLoveArexmongodb:27017/arex_storage_db -Darex.redis.uriredis://redis:6379/ -Darex.storage.service.urlhttp://arex-storage-service:8080 -Darex.config.default.service.collect.sampleRate0 …
全局比对配置 针对录制回放的比对系统中默认存在一些自定义配置例如不对比数据库的 select 操作等。为了更方便地进行配置和管理AREX 提供了一个全局通用的配置机制。用户可以通过修改 docker-compose.yml 文件将以下启动参数添加到 AREX-API Service 的启动参数中来控制系统的全局比对配置
针对yyyy-MM-dd HH:mm:ss.SSSSSS,“yyyy-MM-dd HH:mm:ss.SSS”, “HH:mm:ss.SSSSSS”, “HH:mm:ss.SSS”, “yyyy-MM-dd’T’HH:mm:ss.SSSXXX”, “yyyy-MM-dd’T’HH:mm:ss.SSSZ” 等时间格式 忽略时间字段的精度单位为毫秒。在比较时间字段时会忽略精确到指定毫秒数之后的部分。 -Darex.compare.ignoredTimePrecisionMillis2000
报文 key 是否转换为小写。当取值为 true 时报文中的 key 会被转换为小写当取值为 false 时不进行转换。 -Darex.compare.nameToLowertrue
当 value 为 null、空字符串(“”)或空数组([])时比对时是否认为一致。当取值为 true 时这些情况下的 value 会被认为是相等的当取值为 false 时不认为它们相等。 -Darex.compare.nullEqualsEmptytrue
是否忽略数据库中 select 语句的比对。当取值为 true 时会忽略 select 语句的比对当取值为 false 时不忽略。 -Darex.compare.selectIgnoreComparetrue
用于控制在比较数据库操作时是否仅比较同名字段。 当配置项的取值为 true 时系统只会比较数据库操作中具有相同名称的字段。换句话说只有在源和目标数据库中具有相同名称的字段才会进行比较其他字段将被忽略。 当配置项的取值为 false 时系统将比较所有字段无论它们的名称是否相同。 -DonlyCompareCoincidentColumntrue
是否忽略 uuid 字段的比对。当取值为 true 时会忽略 uuid 字段的比对当取值为 false 时不忽略。 -Darex.compare.uuidIgnoretrue
根据配置的字段名称忽略比对。多个字段以逗号分隔。配置了这个项后指定的字段在比对时会被忽略。 -Darex.compare.ignoreNodeSet‘time,uuid’
注册应用
AREX Agent 是实现服务录制回放的核心组件进行回放测试前需要为被测应用配置 AREX Agent详见注册应用
AREX 部署场景
AREX 单服务部署场景 如果录制和回放环境即生产和测试环境之间可以互通或者有工具 Zone则部署单个 AREX 服务。如下图所示在生产环境录制数据存储到 AREX(Mongodb)随后在测试环境回放数据。
单服务
AREX 多服务部署场景 如果生产环境和测试环境之间无法互通即录制环境和回放环境互相隔离测试环境无法访问生产环境中数据库则需要部署多个 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-Front AREX 前端页面。 5 1 MongoDB 数据存储及配置管理数据库 6 1 Redis 高速回放缓存 7 1 Nginx Schedule 负载均衡服务 8 1 Nginx Storage 负载均衡服务 当然你也可以修改 docker-compose-distribute.yml 配置文件根据自己的需求配置多实例。