引流回放這個(gè)技術(shù)現(xiàn)在真的越來(lái)越成為了很多公司測(cè)試同學(xué)必備的一個(gè)工具了。當(dāng)然引流回放的技術(shù)有很多,比如下來(lái)會(huì)提到的jvm-sandbox-repeater。 當(dāng)然你也可以通過日志分析解析的方式去獲取到請(qǐng)求返回的信息等。因?yàn)閯偮犨^testerhome開發(fā)者大會(huì),好幾個(gè)主題也討論到了引流回放,而現(xiàn)在大熱的引流回放就是 https://github.com/alibaba/jvm-sandbox-repeater
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)肅北,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
引流回放面向的目標(biāo)人群 - 面向測(cè)試開發(fā)工程師
我們就按照官網(wǎng)的操作步驟來(lái)吧。不過有些地方我們得適當(dāng)修改下,不確定這些是否適合其他同學(xué)哈。
1. 安裝sandbox以及repeatercurl -s https://github.com/alibaba/jvm-sandbox-repeater/releases/download/v1.0.0/install-repeater.sh | sh
注: 這種方式安裝的的repeater 沒有辦法被sandbox 識(shí)別出來(lái),導(dǎo)致repeater的插件一直沒辦法被加載
所以推薦是直接通過拉取repeater的源碼
git clone https://github.com/alibaba/jvm-sandbox-repeater.git
cd jvm-sandbox-repeater/bin
sh install-local.sh
install-local.sh
#!/usr/bin/env bash
# repeater's target dir
REPEATER_TARGET_DIR=../target/repeater
# exit shell with err_code
# $1 : err_code
# $2 : err_msg
exit_on_err()
{[[ ! -z "${2}" ]] && echo "${2}" 1>&2
exit ${1}
}
# package
sh ./package.sh || exit_on_err 1 "install failed cause package failed"
# extract sandbox to ${HOME}
curl -s https://ghproxy.com/https://github.com/alibaba/jvm-sandbox-repeater/releases/download/v1.0.0/sandbox-1.3.3-bin.tar | tar x -C ${HOME} || exit_on_err 1 "extract sandbox failed"
# copy module to ~/.sandbox-module
mkdir -p ${HOME}/.sandbox-module || exit_on_err 1 "permission denied, can not mkdir ~/.sandbox-module"
cp -r ${REPEATER_TARGET_DIR}/* ${HOME}/.sandbox-module || exit_on_err 1 "permission denied, can not copy module to ~/.sandbox-module"
install-local.sh的腳本如上,其他它與上述的sh腳本的區(qū)別在于 repeater它是直接通過源碼打包的,其他都是一樣的,所以只能有理由懷疑的是repeater的問題。導(dǎo)致了插件沒有辦法被加載。具體可以看下,我通過官方的腳本安裝以及通過源碼安裝后執(zhí)行sandbox.sh的日志差異
這個(gè)是根據(jù)官方的方式安裝的,加載完module-jar以后就直接進(jìn)行端口綁定了。
通過源碼打包的方式,就會(huì)出現(xiàn)加載module-lib的邏輯,所以這個(gè)就是具體的差異的地方,這個(gè)問題會(huì)直接repeater完全沒有啟動(dòng)。這個(gè)原因下來(lái)再說為啥會(huì)有這個(gè)情況
先解釋下上邊的腳本,腳本的主要作用就是安裝sandbox以及repeater, 而安裝的路徑分別是在 ~/sandbox 與 ~/.sandbox-module 。
2. 修改repeater的配置這里我們先采用standalone的模式,所以我們需要修改~/.sandbox-module/cfg/repeater.properties的配置信息
改為true. 至于其上面的那些配置想都是配合repeater-console
一起使用的,所以我們暫時(shí)可以先不用管
同時(shí)再修改repeater-config.json, 它默認(rèn)是在~/.sandbox-module/cfg/repeater-config.json
具體配置含義參見:RepeaterConfig.java
這里我們將配置修改為如下:
{"degrade": false,
"exceptionThreshold": 1000,
"httpEntrancePatterns": [
"^/greeting.*$", // 這里主要是錄制接口為greeting的
],
"javaEntranceBehaviors": [
],
"javaSubInvokeBehaviors": [
],
"pluginIdentities": [
"http",
"mybatis",
"ibatis",
"dubbo-provider",
"dubbo-consumer"
],
"repeatIdentities": [
"java",
"http"
],
"sampleRate": 10000,
"useTtl": true
}
啟動(dòng)被測(cè)服務(wù)克隆源碼
git clone https://github.com/chenhengjie123/gs-rest-service.git
這個(gè)項(xiàng)目是在看其他帖子看到的,是個(gè)開源的demo,我在這也引用下。
進(jìn)入到項(xiàng)目路徑:/gs-rest-service/complete,使用**mvn install
**命令,把項(xiàng)目中打好的包,放到本地倉(cāng)庫(kù)
在 target 目錄下,可以看到,生成了一個(gè)jar包,如下所示
在 target 目錄下,使用命令java -jar gs-rest-service-0.1.0.jar
啟動(dòng)項(xiàng)目,出現(xiàn)如下所示內(nèi)容,項(xiàng)目啟動(dòng)成功
記錄下這個(gè)pid,下來(lái)會(huì)用到
獲取到項(xiàng)目PID后,到 sandbox 目錄~/sandbox/bin
下,使用命令./sandbox.sh -p 53972 -P 12580
,運(yùn)行命令后,出現(xiàn)如下內(nèi)容,說明成功
也可以通過查看sandbox日志來(lái)確定,是否有啟動(dòng)成功,日志如下所示:
參數(shù)說明
attach 模式下,錄制應(yīng)用名和錄制環(huán)境這兩個(gè)參數(shù)都會(huì)被默認(rèn)為 unknown。這個(gè)應(yīng)用名與錄制環(huán)境在standalone作用不大,如果是在repeater-console上就比較重要,用來(lái)區(qū)分不用應(yīng)用的流量以及配置使用。
attach關(guān)閉運(yùn)行命令**./sandbox.sh -p 53972 -S
**,出現(xiàn)如下內(nèi)容,jvm-sandbox關(guān)閉成功
jvm-sandbox[default] shutdown finished.
模擬請(qǐng)求此時(shí)我們可以看下repeater的日志,如下:
repeater的日志默認(rèn)也是在sandbox相同的路徑下~/logs/sandbox/repeater
同時(shí)在~/.sandbox-module/
目錄下也會(huì)多出一個(gè)repeater-data
里面也記錄下這此錄制的內(nèi)容,只是通過了序列化保存了。
前面說到的 repeater的問題下來(lái)會(huì)單獨(dú)來(lái)說明這個(gè)問題
另外一個(gè)就是github的下載經(jīng)常容易失敗,建議大家可以參考上邊的鏈接,做一個(gè)加速,在github的鏈接上增加一個(gè) https://ghproxy.com/ 即可。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧