相信做性能测试的小伙伴们一定听说过流量复制回放,没听说过也没关系,我们大都是在性能测试环境完成压测任务出具性能测试报告。
但是实际生产环境的接口压力流量往往和我们在性能测试环境预估的情况不完全一致,甚至出现较大差异的情况,我们如何模拟出真实的压力流量,可以借助工具,例如早期用得较多的是tcpcopy,但其缺乏过滤HTTP层能力;
推荐使用另外一款工具goreplay,简称gor,其特点如下:
-
实现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=$PATH:$GOROOT/bin
source /etc/profile
# 验证
go en