实现HTTP请求的录制以及回放,应用场景是在线上环境录制请求,然后在测试环境进行重放
实现HTTP层面的流量过滤,只过滤出待测流量
支持流量放大,可以应用于性能容量规划测试
01 go环境准备
gor是go语言实现的,要使用gor工具,需要提前准备go运行环境。
具体操作步骤如下所示:
解压缩 如下 gor工具包:
go1.18.linux-amd64.tar.gz、gor_1.3.3._×64.tar.gz
tar -C /usr/local-zxvf go1.18.linux-amd64.tar.gz
tar -zxvf gor_1.3.3._×64.tar.gz
配置环境变量
vim /etc/profile
export GOROOT=/usr/local/go
export PATH= P A T H : PATH: PATH:GOROOT/bin
source /etc/profile
验证
go env
02 goReplay流量复制回放步骤
首先是对生产环境进行流量复制操作,使用如下命令:
流量复制
./gor --input-raw:8081 --output-stdout
或者 流量复制并保存到文件(推荐)
./gor --input-raw:8081 --output-file “requests.gor”
然后根据业务高峰期等待1小时,甚至更长时间,例如12小时,
这个过程中会看到在gor运行目录下生成requests_0.gor,如果1个文件放不下,会继续生成_1、_2等录制文件。
gor文件会记录整个录制过程中所有发的http协议请求,分批存到不同的gor文件中,按【ctrl+c】停止录制。
然后是在性能环境进行流量回放操作,使用如下命令:
#流量回放 默认回放等待5秒
./gor --input-file “requests_0.gor” --output-http “http://82.156.80.137:8082”
这样就能实现在8081生产环境录制的http流量,重新在性能环境8082上回放一遍,默认是每隔5秒发一次请求。
也可以设置回放倍速为5倍,并且循环发请求,使用如下命令:
回放倍速5倍,并且循环(压测推荐)
./gor --input-file “requests_0.gor|500%” --output-http “http://82.156.80.137:8082” --input-file-loop
还可以使用如下流量回放命令:
保留上次信息
./gor --input-raw:8081 --output-file “requests_0.gor” --output-file-append
#实时回放
./gor --input-raw:8081 --output-http “http://82.156.80.137:8082”
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
…(img-zwVTFdQ7-1713040327446)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!