背景
在2019的MTSC,阿里開源了jvm-sandbox-repeater——可對java服務(wù)進(jìn)行錄制回放的工具。
jvm-sandbox-repeater是提供錄制和回放的功能的底層組件,真正要在實際項目中應(yīng)用起來,還必須有相關(guān)的配套服務(wù)配合才行。
于是乎我把目光,放到了阿里更早之前推出公測的錄制回放平臺——Doom。
Doom簡介
在阿里云平臺中,Doom被稱為雙引擎自動回歸服務(wù),屬于測試管理中的一個服務(wù)。
關(guān)于Doom可以直接點擊官方文檔之平臺介紹進(jìn)行了解,因為官方介紹文檔寫的非常好,從適用場景、原理、使用常見問題以及解決方案都有給出,所以這里不做贅述。
接下來,我們直接進(jìn)入正題,按照官方提供的雙引擎接入使用文檔進(jìn)行接入。后面的接入步驟,同時打開官方雙引擎接入使用文檔,配合食用更佳。
快速入門之前
在doom平臺上開始進(jìn)行服務(wù)接入之前,需要做幾個步驟。
- 注冊一個阿里云賬號
- 訪問【云效】:https://my.rdc.aliyun.com/,并按照指引創(chuàng)建企業(yè)/加入企業(yè)。
- 在阿里云購買OSS服務(wù),并創(chuàng)建Bucket以及配置好Access Key。(如已有OSS服務(wù),可直接使用已有的OSS。不會操作的話按照官方的OSS說明文檔操作即可)
- 訪問【Doom平臺】:https://doom.rdc.aliyun.com/,按照雙引擎接入使用文檔【1.2 數(shù)據(jù)存儲設(shè)置】,進(jìn)行OSS配置。
- 在【Doom平臺】:https://doom.rdc.aliyun.com/上,按照雙引擎接入使用文檔【2. 應(yīng)用接入申請】進(jìn)行應(yīng)用接入申請操作。這里的應(yīng)用接入分云效應(yīng)用和非云效應(yīng)用兩種,無論是否是云效上的平臺,是否是部署在阿里云服務(wù)器上,都可以進(jìn)行申請接入。由于我沒有使用過云效,所以我申請的是非云效應(yīng)用接入申請。申請的審批時效較長,這個過程需要耐心等待一下。
注意:如果3個工作日都沒有收到審批結(jié)果,可以發(fā)郵件到mufeng@aibaba-inc.com進(jìn)行咨詢。
快速入門
應(yīng)用申請通過后,按照雙引擎接入使用文檔第3章節(jié)以及平臺中的引導(dǎo)進(jìn)行接入,官方文檔中的步驟截圖和說明都比較清晰,這里不做贅述。
補充說明
以下主要針對官方說明一些有疑問的地方,經(jīng)過和負(fù)責(zé)Doom的技術(shù)同學(xué)確認(rèn)后,給大家補充說明(未完待續(xù))。
- 在【3.2 設(shè)置IP】章節(jié)中的IP,填寫應(yīng)用服務(wù)器的網(wǎng)卡IP即可, 即使用
ifconfig查看到的本機(jī)IP。不需要填寫公網(wǎng)IP。這個IP主要是用來區(qū)分服務(wù)器的分組和類型(錄制/回放)。 - 應(yīng)用服務(wù)器需要可訪問公網(wǎng),同時應(yīng)用服務(wù)可被公網(wǎng)訪問。(是否需要開啟特定端口供公網(wǎng)訪問,待確定)
接入過程中遇到的問題
按照接入文檔完成了doom平臺中的配置之后,在服務(wù)啟動到錄制還是遇到了一些問題。至今還沒有完成一次錄制回放。
以下接入嘗試,Doom客戶端的安裝方式都是采取免變更模式,詳情可參看雙引擎接入使用文檔【3.7 安裝doom客戶端】。
1 平臺上顯示doom客戶端連上了,但錄制沒有成功
最初在公司的電腦進(jìn)行接入嘗試。
系統(tǒng)信息: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)
網(wǎng)絡(luò)環(huán)境:可訪問外網(wǎng),但外網(wǎng)不可訪問本機(jī)服務(wù)
執(zhí)行doom客戶端安裝腳本attach.sh成功。


由于沒有配置流量入口,按照文檔中的說明預(yù)期應(yīng)該會錄制所有的流量。

但實際上當(dāng)我對目標(biāo)應(yīng)用進(jìn)行請求后,在用例中心卻沒有看到任何錄制記錄。

于是需要通過日志去定位問題??蛻舳巳罩镜刂吩谑褂媚J(rèn)配置的情況下是在/home/{username}/{接入應(yīng)用名}/logs/doom.log,而在mac os下則是/Users/{username}/{接入應(yīng)用名}/logs/doom.log。從下圖日志上看會看到客戶端不停地在建立連接,又失敗的情況。
從這里的報錯看不出更進(jìn)一步的原因,考慮到公司電腦無法被外網(wǎng)訪問,只能推測是網(wǎng)絡(luò)原因,具體還有需要咨詢一下Doom的同學(xué)。

2 doom客戶端安裝腳本執(zhí)行完成,doom平臺顯示沒連上客戶端
考慮到是之前由于網(wǎng)絡(luò)原因,沒有錄制成功,于是第二次我使用一臺vps來進(jìn)行應(yīng)用部署。
系統(tǒng)版本信息:
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)
網(wǎng)絡(luò)環(huán)境:可訪問外網(wǎng),但外網(wǎng)可訪問本機(jī)服務(wù)8080端口
在ubuntu服務(wù)器上遇到的問題比較多。遇到的第一個問題就是
2.1 doom客戶端安裝腳本attach.sh的兼容問題
在已配置JAVA_HOME的情況下,會出現(xiàn)attach腳本執(zhí)行失敗的情況。


為了快速解決,我注釋掉了attach.sh中修改JAVA_HOME的那段邏輯。從而成功啟動了。


2.2 attach.sh執(zhí)行成功,平臺顯示客戶端連接異常,且應(yīng)用服務(wù)器無日志生成

這時候就需要借助日志來進(jìn)行排查,結(jié)果發(fā)現(xiàn)日志沒有生成

查看過確定ip沒有填寫錯誤。如下圖填寫的是網(wǎng)卡的IP地址。

由于沒有日志,無法進(jìn)一步定位問題了。