在 2019 的 MTSC,阿里开源了jvm-sandbox-repeater——可对 java 服务进行录制回放的工具。
jvm-sandbox-repeater 是提供录制和回放的功能的底层组件,真正要在实际项目中应用起来,还必须有相关的配套服务配合才行。
于是乎我把目光,放到了阿里更早之前推出公测的录制回放平台——Doom。
在阿里云平台中,Doom 被称为双引擎自动回归服务,属于测试管理中的一个服务。
关于 Doom 可以直接点击官方文档之平台介绍进行了解,因为官方介绍文档写的非常好,从适用场景、原理、使用常见问题以及解决方案都有给出,所以这里不做赘述。
接下来,我们直接进入正题,按照官方提供的双引擎接入使用文档进行接入。后面的接入步骤,同时打开官方双引擎接入使用文档,配合食用更佳。
在 doom 平台上开始进行服务接入之前,需要做几个步骤。
应用申请通过后,按照双引擎接入使用文档第 3 章节以及平台中的引导进行接入,官方文档中的步骤截图和说明都比较清晰,这里不做赘述。
以下主要针对官方说明一些有疑问的地方,经过和负责 Doom 的技术同学确认后,给大家补充说明(未完待续)。
ifconfig
查看到的本机 IP。不需要填写公网 IP。这个 IP 主要是用来区分服务器的分组和类型(录制/回放)。按照接入文档完成了 doom 平台中的配置之后,在服务启动到录制还是遇到了一些问题。至今还没有完成一次录制回放。
以下接入尝试,Doom 客户端的安装方式都是采取免变更模式
,详情可参看双引擎接入使用文档【3.7 安装 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 平台显示客户端已连接上
由于没有配置流量入口,按照文档中的说明预期应该会录制所有的流量。
但实际上当我对目标应用进行请求后,在用例中心却没有看到任何录制记录。
于是需要通过日志去定位问题。客户端日志地址在使用默认配置的情况下是在/home/{username}/{接入应用名}/logs/doom.log
,而在 mac os 下则是/Users/{username}/{接入应用名}/logs/doom.log
。从下图日志上看会看到客户端不停地在建立连接,又失败的情况。
从这里的报错看不出更进一步的原因,考虑到公司电脑无法被外网访问,只能推测是网络原因,具体还有需要咨询一下 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 服务器上遇到的问题比较多。
attach.sh
的兼容问题在已配置 JAVA_HOME 的情况下,会出现 attach 脚本执行失败的情况。
attach.sh 执行报错:
attach.sh 执行报错定位:
为了快速解决,我注释掉了attach.sh
中修改JAVA_HOME
的那段逻辑。从而成功启动了。
注释 JAVA_HOME 修改逻辑:
attach.sh 执行成功:
平台显示连接异常:
这时候就需要借助日志来进行排查,结果发现日志没有生成
找不到 doom.log:
查看过确定 ip 没有填写错误。如下图填写的是网卡的 IP 地址。
服务器 IP 信息:
由于没有日志,无法进一步定位问题了。还是得咨询 Doom 的同学。