自动化回归测试工具—— AREX 上手实践

时间:2021-10-21 01:00:51

AREX 是一款开源的自动化测试工具平台,基于 Java Agent 技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。同时提供了接口测试、接口比对测试等丰富的自动化测试功能,无需编程能力也可快速上手。

AREX 可以通过 Docker-Compose 一键安装所有的基础服务组件。除此之外,AREX 也同步提供了在线试用平台 AREX Demo,与官方发布的最新版本保持一致,无需部署所有的服务组件即可试用,大大减少了试用费力度。

本文将介绍试用 AREX Demo 平台中接口测试功能及回放测试功能的详细操作步骤。希望通过本文,为大家提供一种实现高效自动化回归测试的新思路。

访问 AREX Demo 环境

使用 Chrome 浏览器访问 AREX Demo 环境:http://demo.arextest.com/,首次登录需要进行注册。

自动化回归测试工具—— AREX 上手实践

输入邮箱后,点击 Send Code 按钮, 稍后邮箱将接收到 AREX 发送的登录验证码,如下图,将验证码填入即可登录。

自动化回归测试工具—— AREX 上手实践

登录后,进入 AREX Demo 的前端页面,如下图所示:

自动化回归测试工具—— AREX 上手实践

页面包括 Work Space 管理区域、接口测试(Collection)、回放测试(Replay)、环境配置(Environment)和应用配置(AppSetting)、用户操作配置等部分,详见 AREX 官方文档

Chrome 插件安装

由于浏览器访问跨域名服务受限,在使用 AREX 接口测试功能前,需要安装 Chrome 插件,通过插件实现对外请求接口。

访问 Chrome Web Store,在搜索框中输入 AREX,添加 Arex Chrome Extension。如下图:

自动化回归测试工具—— AREX 上手实践

如无法访问 Web Store,可以直接下载最新的插件包到本地进行安装,当前最新的插件版本是 v1.0.45。

自动化回归测试工具—— AREX 上手实践

至此,所有的前期准备工作完成,接下来将介绍如何使用 AREX 的接口测试及录制回放功能。

使用 AREX 进行接口测试

本文中验证功能使用的是由官方提供的模拟服务 AREX-Community-test,Demo 环境中该服务接口暴露地址是 demo.arextest.com:18080。

  1. Collection 中新建一个名为 “Demo-Community-Test” 的集合,用以创建接口请求。

自动化回归测试工具—— AREX 上手实践

  1. 在 “Demo-Community-Test” 集合右侧下拉菜单中选择 Add Request,新增一个请求,并选择请求方式为 GET

    1. 输入接口路径 http://{{arex_host}}/nettyTest/nettyTest ,其中 {{arex_host}} 是参数名为 arex_host, 值为 demo.arextest.com:18080 的环境变量,需提前在 Environment 中进行配置。也可直接输入 http://demo.arextest.com:18080/nettyTest/nettyTest 作为接口路径,但如果需要在多个环境(如生产环境、测试环境、开发环境等)进行测试时,逐个修改前置 URL 比较费力,因此建议使用环境变量,在不同环境进行测试只需切换环境即可。

    2. 在新建的请求右侧下拉菜单中选择 Add Case, 为该接口请求创建一个测试用例,用例的属性可以直接继承于请求,减少维护成本。

    3. 其他参数可以根据需要设定,Parameters 中设置参数, Headers 设置请求头, Body 设置请求体, Pre-request Script 设置前置脚本, Tests 设置断言,判断是否符合预期。

    4. 全部设置完成后,点击 Send 发送请求并执行脚本验证(如有),如下图。

自动化回归测试工具—— AREX 上手实践

使用 AREX 进行回放测试

AREX 的流量录制功能是通过 Java Agent 技术实现的,如需录制应用,首先需要在被测的 Java 应用启动中加入 Java Agent 配置:

environment:``- JAVA_TOOL_OPTIONS=``'-javaagent:/usr/local/tomcat/arex-agent-0.1.0.jar'` `-Darex.service.name=community-demo-name -Darex.storage.service.host=demo.arextest.com -Darex.enable.debug=``true

其中:

当被测应用装载了 AREX Agent, 并正确配置了 AREX Storage 服务地址后, 即可在回放测试(Replay)列表中看到该应用名,说明应用已经成功注册,如下图所示:

自动化回归测试工具—— AREX 上手实践

community.0.2.6 为本文中使用的测试应用 Arex-community-test(0.2.6 版本)的缺省名。随后 AREX 会记录下对这个服务接口地址进行的每个访问,包括请求和应答,以及被测服务对外部依赖的访问(数据库,Redis等等),这个过程就是 AREX 的录制过程。

在录制完成后,点击页面右上角选择 Start Replay 开始回放测试。依次选择回放测试的地址(为了演示方便,本次演示中录制和回放采用同一个地址 http://demo.arextest.com:18080)及需要回放的用例的录制起止时间。

自动化回归测试工具—— AREX 上手实践

AREX 执行回放操作时,首先由 Schedule 调度服务将被测应用的录制数据(请求)从数据库梳理出来,随后向目标被验证服务发送接口请求,当服务接收到请求后,处理请求逻辑,同时由 Agent 把需要 MOCK 的外部依赖数据装载进来,处理结束后返回响应报文。调度服务会将回放的响应报文和录制的响应报文进行比对,并由分析服务统计分析比对结果,将存在的 BUG 或者疑似 BUG 展示在回放报告中,供开发和测试人员检查。

回放报告页面如下图所示:

自动化回归测试工具—— AREX 上手实践

当录制与回放的比对结果存在差异时,报告中会出现失败用例(Failed):

自动化回归测试工具—— AREX 上手实践

1.在报告页面中选择某条路径下 Case Table,可以看到每个回放用例的状态,如下图所示。点击 Detail 查看详情, Save 将该用例保存为常规测试用例。下图中的 Failed 用例左侧基准版本(录制)存在数据库查询(query),但右侧最新版本(回放)没有,则标识回放失败。

自动化回归测试工具—— AREX 上手实践

  1. 选择 Diff Scenes,进入分析比对差异页面,AREX 将该路径下的比对差异点进行了合并展示,方便开发及测试人员查看分析。

自动化回归测试工具—— AREX 上手实践

当然也可以选择 Tree Mode 进行树状图展示。

自动化回归测试工具—— AREX 上手实践

以上就是 AREX Demo 环境的完整试用操作。Demo 环境目前还存在一些问题需要改进:

  1. AREX Demo 环境部署在 AWS 上,有些用户反馈访问不是很快,特别是在处理大数据集时,操作速度明显变慢,需要进一步优化;
  2. AREX 操作界面还有一些不够友好和直观,界面易用性上还需要优化提升。

目前 AREX 保持着每月 1-2 次的发版频率,我们相信,在未来的开源共建之路上,AREX 会越来越成熟和完善。