[转帖]自动化回归测试工具 —— AREX 上手实践
https://my.oschina.net/arextest/blog/8589156
AREX 是一款开源的自动化测试工具平台,基于 Java Agent 技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。同时提供了接口测试、接口比对测试等丰富的自动化测试功能,无需编程能力也可快速上手。
AREX 可以通过 Docker-Compose 一键安装所有的基础服务组件。除此之外,AREX 也同步提供了在线试用平台 AREX Demo,与官方发布的最新版本保持一致,无需部署所有的服务组件即可试用,大大减少了试用费力度。
本文将介绍试用 AREX Demo 平台中接口测试功能及回放测试功能的详细操作步骤。希望通过本文,为大家提供一种实现高效自动化回归测试的新思路。
访问 AREX Demo 环境
使用 Chrome 浏览器访问 AREX Demo 环境:http://demo.arextest.com/,首次登录需要进行注册。

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

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

页面包括 Work Space 管理区域、接口测试(Collection)、回放测试(Replay)、环境配置(Environment)和应用配置(AppSetting)、用户操作配置等部分,详见 AREX 官方文档。
Chrome 插件安装
由于浏览器访问跨域名服务受限,在使用 AREX 接口测试功能前,需要安装 Chrome 插件,通过插件实现对外请求接口。
访问 Chrome Web Store,在搜索框中输入 AREX,添加 Arex Chrome Extension。如下图:

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

至此,所有的前期准备工作完成,接下来将介绍如何使用 AREX 的接口测试及录制回放功能。
使用 AREX 进行接口测试
本文中验证功能使用的是由官方提供的模拟服务 AREX-Community-test,Demo 环境中该服务接口暴露地址是 demo.arextest.com:18080。
- 在 Collection 中新建一个名为 “Demo-Community-Test” 的集合,用以创建接口请求。

在 “Demo-Community-Test” 集合右侧下拉菜单中选择 Add Request,新增一个请求,并选择请求方式为
GET。输入接口路径
http://{{arex_host}}/nettyTest/nettyTest,其中{{arex_host}}是参数名为arex_host, 值为demo.arextest.com:18080的环境变量,需提前在 Environment 中进行配置。也可直接输入 http://demo.arextest.com:18080/nettyTest/nettyTest 作为接口路径,但如果需要在多个环境(如生产环境、测试环境、开发环境等)进行测试时,逐个修改前置 URL 比较费力,因此建议使用环境变量,在不同环境进行测试只需切换环境即可。在新建的请求右侧下拉菜单中选择 Add Case, 为该接口请求创建一个测试用例,用例的属性可以直接继承于请求,减少维护成本。
其他参数可以根据需要设定,Parameters 中设置参数, Headers 设置请求头, Body 设置请求体, Pre-request Script 设置前置脚本, Tests 设置断言,判断是否符合预期。
全部设置完成后,点击 Send 发送请求并执行脚本验证(如有),如下图。

使用 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
其中:
- -Darex.service.name=community-demo-name 是为了设置该应用在 AREX 中展示的名称;
- -Darex.storage.service.host=demo.arextest.com 是设置 AREX 的 Storage 服务的接口地址为 demo.arextest.com 。
当被测应用装载了 AREX Agent, 并正确配置了 AREX Storage 服务地址后, 即可在回放测试(Replay)列表中看到该应用名,说明应用已经成功注册,如下图所示:

community.0.2.6 为本文中使用的测试应用 Arex-community-test(0.2.6 版本)的缺省名。随后 AREX 会记录下对这个服务接口地址进行的每个访问,包括请求和应答,以及被测服务对外部依赖的访问(数据库,Redis 等等),这个过程就是 AREX 的录制过程。
在录制完成后,点击页面右上角选择 Start Replay 开始回放测试。依次选择回放测试的地址(为了演示方便,本次演示中录制和回放采用同一个地址 http://demo.arextest.com:18080)及需要回放的用例的录制起止时间。

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

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

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

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

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

以上就是 AREX Demo 环境的完整试用操作。Demo 环境目前还存在一些问题需要改进:
- AREX Demo 环境部署在 AWS 上,有些用户反馈访问不是很快,特别是在处理大数据集时,操作速度明显变慢,需要进一步优化;
- AREX 操作界面还有一些不够友好和直观,界面易用性上还需要优化提升。
目前 AREX 保持着每月 1-2 次的发版频率,我们相信,在未来的开源共建之路上,AREX 会越来越成熟和完善。
[转帖]自动化回归测试工具 —— AREX 上手实践的更多相关文章
- gulp自动化构建工具
gulp 自动化构建工具,实时监控.代码合并.压缩... http://www.gulpjs.com.cn/ 中文网 http://gulpjs.com/plugins/ 英文网 ...
- Atitit.gui api自动化调用技术原理与实践
Atitit.gui api自动化调用技术原理与实践 gui接口实现分类(h5,win gui, paint opengl,,swing,,.net winform,)1 Solu cate1 Sol ...
- 自动化回归测试案例评价标准 MeRest
自动化回归测试案例评价标准试图定义不同维度来评价自动化案例的优劣,作为后续我们评判讨论测试框架.测试技术和测试案例编写模式的基础.那什么是好的自动化回归测试案例呢?简而言之,就是投资回报率高的案例,因 ...
- jemeter 实现接口自动化回归测试
jemeter做接口自动化测试的优点: 1.首先我认为最重要的是不需要编程基础,很多一直想做接口测试但一直徘徊在门边的原因可能就是不想写代码 2.可以更快的上手,能让测试人员更好的理解什么是接口测试, ...
- 测试开发:推荐一款阿里最新 Python 自动化开源工具!
大家好,我是麦小米,是狂师老师全栈测开训练营中的一名学员. 如果之前做过iOS自动化的同学相信都知道,一直以来,iOS自动化的实现&执行都必须依赖 Mac 系统,其主要原因是因为需要通过 xc ...
- Monkey工具之fastbot-iOS实践
Monkey工具之fastbot-iOS实践 背景 目前移动端App上线后 crash 率比较高, 尤其在iOS端.我们需要一款Monkey工具测试App的稳定性,更早的发现crash问题并修复. 去 ...
- Jenkins敏捷开发 自动化构建工具
一.序言 Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面. 所谓自动化构建是按照一定 ...
- 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程
之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...
- 项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld
在java应用中,其实做的最多的还是java web应用.所以现在我们做的就是用gradle构建一个简单的web项目,简单点,直接上代码吧. 1.进入目录D:\work\gradle\web,新建文件 ...
- 项目自动化建构工具gradle 入门3——生一个exe的helloWorld
前两次呢,我们能够用一个外部的jar 来实现输出helloWorld.但问题是我每次都要用java -jar 来执行,这样我们自己玩还可以,让用户玩就不好了.所以我们生成一个exe给他们吧.这次我们仍 ...
随机推荐
- C# 查找PDF页面指定区域中的文本并替换和高亮
对PDF文档中的内容进行查找时,可针对文档全篇内容获取查找结果,也可在PDF指定页面中的特定范围内(矩形框区域)进行查找,对获取的查找结果可执行文本高亮或替换等操作,本文将对此作相关介绍(附VB.NE ...
- 让 AI “潜入”物流中心,你的快递很快就到!
摘要:华为利用数字化.智能化的手段从传统物流运营转升成为专业智慧物流,在那些"看不见的地方"华为正在默默耕耘. 网购已经成为了新时代下的"日常",于是每年的「6 ...
- 提升源代码安全性的C#和Java深度混淆工具——IpaGuard
提升源代码安全性的C#和Java深度混淆工具--IpaGuard 摘要 Ipa Guard是一款功能强大的IPA混淆工具,通过对iOS IPA文件进行混淆加密,保护其代码.资源和配置文件,降低破解反编 ...
- PPT 放映时字体缺失怎么办
PPT 放映时字体缺失怎么办 文字转成图片 嵌入字体 没有版权的不给嵌入 安装字体 http://www.hellofont.cn 在线使用安装字体
- Kubernetes(K8S) Deployment 拉取阿里云镜像部署
Docker Image 推到阿里云仓库,可以看 SpringBoot Docker 发布到 阿里仓库 1. 阿里镜像仓库加了授权,所以 K8S 拉之前要做下授权处理 [root@k8smaster ...
- NettyHandler 常用生命周期方法
NettyHandler 常用生命周期方法 @Component @ChannelHandler.Sharable //表示这里是线程安全的 public class ImServerHandler ...
- Spring Boot Admin 自定义健康检查
添加自定义类: /** * 监控接口的健康情况 * */ @Component public class ApiHealthIndicator implements HealthIndicator { ...
- 【主流技术】聊一聊 Redis 的基本结构和简单应用(一)
目录 前言 一.String 类型 二.List 类型 三.Hash 类型 四.Set 结构 五.Sort Set (Zset)结构 六.文章小结 前言 Redis 是目前互联网后端的热门中间件之一, ...
- 火爆全网的条形竞赛图,Python轻松实现
这个动图叫条形竞赛图,非常适合制作随时间变动的数据. 我已经用streamlit+bar_chart_race实现了,然后白嫖了heroku的服务器,大家通过下面的网址上传csv格式的表格就可以轻松制 ...
- 微软商店上架Windows&Office破解工具,并获5星好评?
大家好,我是DD! 最近真的除了俄乌冲突之外,其他消息似乎都被淹没了,连狗血的娱乐圈都哑火了. 但昨天在微信群(点击加入)里的这张图引起了我的注意... 据群友称Windows应用商店上架了一个破解W ...