背景

在 2019 的 MTSC,阿里开源了jvm-sandbox-repeater——可对 java 服务进行录制回放的工具。
jvm-sandbox-repeater 是提供录制和回放的功能的底层组件,真正要在实际项目中应用起来,还必须有相关的配套服务配合才行。
于是乎我把目光,放到了阿里更早之前推出公测的录制回放平台——Doom。

Doom 简介

在阿里云平台中,Doom 被称为双引擎自动回归服务,属于测试管理中的一个服务。

关于 Doom 可以直接点击官方文档之平台介绍进行了解,因为官方介绍文档写的非常好,从适用场景、原理、使用常见问题以及解决方案都有给出,所以这里不做赘述。

接下来,我们直接进入正题,按照官方提供的双引擎接入使用文档进行接入。后面的接入步骤,同时打开官方双引擎接入使用文档,配合食用更佳。

快速入门之前

在 doom 平台上开始进行服务接入之前,需要做几个步骤。

  1. 注册一个阿里云账号
  2. 访问【云效】:https://my.rdc.aliyun.com/,并按照指引创建企业/加入企业。
  3. 在阿里云购买 OSS服务,并创建 Bucket 以及配置好 Access Key。(如已有 OSS 服务,可直接使用已有的 OSS。不会操作的话按照官方的 OSS 说明文档操作即可)
  4. 访问【Doom 平台】:https://doom.rdc.aliyun.com/,按照双引擎接入使用文档【1.2 数据存储设置】,进行 OSS 配置。
  5. 在【Doom 平台】:https://doom.rdc.aliyun.com/上,按照双引擎接入使用文档【2. 应用接入申请】进行应用接入申请操作。这里的应用接入分云效应用和非云效应用两种,无论是否是云效上的平台,是否是部署在阿里云服务器上,都可以进行申请接入。由于我没有使用过云效,所以我申请的是非云效应用接入申请。申请的审批时效较长,这个过程需要耐心等待一下。 注意:如果 3 个工作日都没有收到审批结果,可以发邮件到 mufeng@aibaba-inc.com 进行咨询。

快速入门

应用申请通过后,按照双引擎接入使用文档第 3 章节以及平台中的引导进行接入,官方文档中的步骤截图和说明都比较清晰,这里不做赘述。

补充说明

以下主要针对官方说明一些有疑问的地方,经过和负责 Doom 的技术同学确认后,给大家补充说明(未完待续)。

接入过程中遇到的问题

按照接入文档完成了 doom 平台中的配置之后,在服务启动到录制还是遇到了一些问题。至今还没有完成一次录制回放。

以下接入尝试,Doom 客户端的安装方式都是采取免变更模式,详情可参看双引擎接入使用文档【3.7 安装 doom 客户端】。

1 平台上显示 doom 客户端连上了,但录制没有成功

最初在公司的电脑进行接入尝试。

系统信息:Mac OS 10.14.3 (18D109)

java版本信息:
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

网络环境:可访问外网,但外网不可访问本机服务

执行 doom 客户端安装脚本attach.sh成功。

doom客户端启动成功日志

doom 平台显示客户端已连接上

doom平台显示客户端已连接上

由于没有配置流量入口,按照文档中的说明预期应该会录制所有的流量。
流量入口配置说明

但实际上当我对目标应用进行请求后,在用例中心却没有看到任何录制记录。
没有采集记录

于是需要通过日志去定位问题。客户端日志地址在使用默认配置的情况下是在/home/{username}/{接入应用名}/logs/doom.log,而在 mac os 下则是/Users/{username}/{接入应用名}/logs/doom.log。从下图日志上看会看到客户端不停地在建立连接,又失败的情况。
从这里的报错看不出更进一步的原因,考虑到公司电脑无法被外网访问,只能推测是网络原因,具体还有需要咨询一下 Doom 的同学。
报错日志

2 doom 客户端安装脚本执行完成,doom 平台显示没连上客户端

考虑到是之前由于网络原因,没有录制成功,于是第二次我使用一台 vps 来进行应用部署。

系统版本信息:
Linux vultr.guest 4.4.0-154-generic #181-Ubuntu SMP Tue Jun 25 05:29:03 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

java版本信息:
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

网络环境:可访问外网,但外网可访问本机服务8080端口

在 ubuntu 服务器上遇到的问题比较多。

2.1 doom 客户端安装脚本attach.sh的兼容问题

在已配置 JAVA_HOME 的情况下,会出现 attach 脚本执行失败的情况。

attach.sh 执行报错:
attach.sh执行报错

attach.sh 执行报错定位:
attach.sh执行报错定位

为了快速解决,我注释掉了attach.sh中修改JAVA_HOME的那段逻辑。从而成功启动了。

注释 JAVA_HOME 修改逻辑:
注释JAVA_HOME修改逻辑

attach.sh 执行成功:
attach.sh执行成功

2.2 attach.sh 执行成功,平台显示客户端连接异常,且应用服务器无日志生成

平台显示连接异常:
平台显示连接异常

这时候就需要借助日志来进行排查,结果发现日志没有生成
找不到 doom.log:
找不到doom.log

查看过确定 ip 没有填写错误。如下图填写的是网卡的 IP 地址。
服务器 IP 信息:
服务器IP信息
由于没有日志,无法进一步定位问题了。还是得咨询 Doom 的同学。


↙↙↙阅读原文可查看相关链接,并与作者交流