使用goreplay流量回放實(shí)踐

What

關(guān)于goreplay
首先什么是goreplay?
參照官方介紹

GoReplay is the simplest and safest way to test your app using real traffic before you put it into production.

GoReplay提供了重用現(xiàn)有流量進(jìn)行測(cè)試的簡(jiǎn)單想法淆两。
大致工作流程如下:


goreplay.png

簡(jiǎn)單來說就是goreplay抓取線上真實(shí)的流量碰缔,并將捕捉到的流量轉(zhuǎn)發(fā)到測(cè)試服務(wù)器上

When

什么時(shí)候可以試用goreplay?
簡(jiǎn)單寫幾點(diǎn)場(chǎng)景,具體還是根據(jù)實(shí)際需求來。

  • Case 1
    上線前在預(yù)發(fā)布環(huán)境社付,使用線上真實(shí)的請(qǐng)求丧肴,檢查是否準(zhǔn)備發(fā)布的版本,是否具備發(fā)布標(biāo)準(zhǔn)
  • Case 2
    壓力測(cè)試完成后昏苏,用線上真實(shí)的請(qǐng)求,加速后回放至測(cè)試環(huán)境,檢查是否有報(bào)錯(cuò)等問題
  • Case 3
    abtest
    用線上的流量轉(zhuǎn)發(fā)到預(yù)發(fā)贤惯,檢查相同流量下一些指標(biāo)的反饋情況洼专,檢查核心數(shù)據(jù)是否有改善、優(yōu)化
    等等
    具體case還需要根據(jù)自己的需求孵构,靈活改變屁商。

How

上面大致說了goreplay是什么以及什么場(chǎng)景可以用,下面記錄一下自己的實(shí)踐過程颈墅。
首先需要線上服務(wù)器root權(quán)限蜡镶,這個(gè)需要謹(jǐn)慎使用!P羯浮官还!

1.下載安裝goreplay

參照文檔,這一步很簡(jiǎn)單

wget [https://github.com/buger/goreplay/releases/download/v1.0-rc2/gor_1.0-RC2_x64.tar.gz](https://github.com/buger/goreplay/releases/download/v1.0-rc2/gor_1.0-RC2_x64.tar.gz)
tar xvf gor_1.0-RC2_x64.tar.gz

2.一些常用的命令

-input-raw 抓取指定端口的流量 gor --input-raw :8080
-output-stdout 打印到控制臺(tái)
-output-file 將請(qǐng)求寫到文件中 gor --input-raw :80 --output-file ./requests.gor
-input-file 從文件中讀取請(qǐng)求毒坛,與上一條命令呼應(yīng) gor --input-file ./requests.gor
-exit-after 5s 持續(xù)時(shí)間
-http-allow-url url白名單望伦,其他請(qǐng)求將會(huì)被丟棄
-http-allow-method 根據(jù)請(qǐng)求方式過濾
-http-disallow-url 遇上一個(gè)url相反,黑名單煎殷,其他的請(qǐng)求會(huì)被捕獲到

實(shí)踐一下

  • 捕獲2051端口的請(qǐng)求打印到控制臺(tái)
    隱藏了部分敏感信息
sudo ./gor --input-raw :2051 --output-stdout

Version: 1.0-RC2
1 45aea8cbxxxxxxx61a7600f384b263bb49dd60 1551432827638974877
POST /absoxxxxlar HTTP/1.1
Host: inner-xxxxxxxx.com
Accept: */*
Content-Length: 259
Content-Type: application/x-www-form-urlencoded

{"page":1,"count":10,"group":"exp_xxxxxr08","content_id":"77769a95f43438xxxx7f2e82c742","uid":"69xxxx68","device_code":"86093xxxxx2318","register_timestamp":1xxxxx75,"sex":0,"channel":"bxxxu","flavor":"","fancy":"","district":"\u5b81\u6ce2\u5e02"}
1 1944f453259c95c1cc8b4cf1227104ed791c428c 1551432827642028761
POST /sixxxxxlar HTTP/1.1
Host: inner-xxxxxx.com
Accept: */*
Content-Length: 259
Content-Type: application/x-www-form-urlencoded

{"page":1,"count":10,"group":"expxxxx07","content_id":"9142a79e98b7xxxxxa67eaecd9de1","uid":"98xxxxx459","device_code":"868xxxx34136943","register_timestamp":15xxxx5663,"sex":2,"channel":"gdt79","flavor":"","fancy":"","district":"\u8861\u9633\u5e02"}
1 28e10318f1d512f4e57b583aec4457e25daaadb6 1551432827657153296
POST /abxxxxxilar HTTP/1.1
Host: inner-xxxxxxxx.com
Accept: */*
Content-Length: 260
Content-Type: application/x-www-form-urlencoded
  • 將請(qǐng)求保存到本地文件中
sudo ./gor --input-raw :2051 --http-allow-url /recommend_you_like --output-file ./recommend_you_like.gor
只篩選recommend_you_like接口的請(qǐng)求屯伞,保存在本地文件中

這邊實(shí)際上是兩個(gè)實(shí)踐
第一個(gè):保存流量到文件
第二個(gè):抓取置頂url的流量
截圖可以看到生成了一個(gè)文件


reuqest.gor.png
  • 轉(zhuǎn)發(fā)文件中流量至測(cè)試環(huán)境
sudo ./gor --input-file ./recommend_you_like_0.gor --output-http="http://172.1.1.1:2051"

至測(cè)試環(huán)境的服務(wù)器上,查看日志可以到流量已經(jīng)轉(zhuǎn)發(fā)過來

性能測(cè)試

image.png
sudo ./gor --input-file “./recommend_you_like_0.gor|200%” --output-http="http://172.1.1.1:2051"

將請(qǐng)求以2倍的速度發(fā)出去
同時(shí)也支持限速
10% 20%等
關(guān)于限速還有另一種方法——指定每秒的請(qǐng)求數(shù)


limit.png
sudo ./gor --input-file “./recommend_you_like_0.gor” --output-http="http://172.1.1.1:2051|50"

更多參考官方文檔:https://github.com/buger/goreplay/wiki/Getting-Started

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末豪直,一起剝皮案震驚了整個(gè)濱河市愕掏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顶伞,老刑警劉巖饵撑,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異唆貌,居然都是意外死亡滑潘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門锨咙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來语卤,“玉大人,你說我怎么就攤上這事酪刀〈舛妫” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵骂倘,是天一觀的道長(zhǎng)眼滤。 經(jīng)常有香客問我,道長(zhǎng)历涝,這世上最難降的妖魔是什么诅需? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任漾唉,我火速辦了婚禮,結(jié)果婚禮上堰塌,老公的妹妹穿的比我還像新娘赵刑。我一直安慰自己,他們只是感情好场刑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布般此。 她就那樣靜靜地躺著,像睡著了一般牵现。 火紅的嫁衣襯著肌膚如雪恤煞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天施籍,我揣著相機(jī)與錄音居扒,去河邊找鬼。 笑死丑慎,一個(gè)胖子當(dāng)著我的面吹牛喜喂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播竿裂,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼玉吁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了腻异?” 一聲冷哼從身側(cè)響起进副,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悔常,沒想到半個(gè)月后影斑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡机打,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年矫户,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片残邀。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡皆辽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芥挣,到底是詐尸還是另有隱情驱闷,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布空免,位于F島的核電站空另,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鼓蜒。R本人自食惡果不足惜痹换,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望都弹。 院中可真熱鬧娇豫,春花似錦、人聲如沸畅厢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽框杜。三九已至浦楣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咪辱,已是汗流浹背振劳。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留油狂,地道東北人历恐。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像专筷,于是被迫代替她去往敵國(guó)和親弱贼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Getting Started Burp Suite 是用于攻擊web 應(yīng)用程序的集成平臺(tái)磷蛹。它包含了許多工具吮旅,并為...
    Eva_chenx閱讀 28,650評(píng)論 0 14
  • 一、交易型系統(tǒng)設(shè)計(jì)的一些原則 1.在設(shè)計(jì)系統(tǒng)時(shí)味咳,應(yīng)該多思考墨菲定律: * 任何事情都沒有表面看起來那么簡(jiǎn)單 * 所...
    ZyBlog閱讀 13,094評(píng)論 2 48
  • Repeater Burp Repeater(中繼器)是用于手動(dòng)操作和補(bǔ)發(fā)個(gè)別HTTP請(qǐng)求庇勃,并分析應(yīng)用程序的響應(yīng)一...
    Eva_chenx閱讀 9,657評(píng)論 1 12
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,827評(píng)論 0 5
  • 挖的坑都來不及補(bǔ)槽驶,請(qǐng)叫我坑王 挖的坑都來不及補(bǔ)匪凉,請(qǐng)叫我坑王 挖的坑都來不及補(bǔ),請(qǐng)叫我坑王 挖的坑都來不及補(bǔ)捺檬,請(qǐng)叫我...
    Emily金金閱讀 168評(píng)論 1 0