流量回放工具:goreplay实战

相信做性能测试的小伙伴们一定听说过流量复制回放,没听说过也没关系,我们大都是在性能测试环境完成压测任务出具性能测试报告。

但是实际生产环境的接口压力流量往往和我们在性能测试环境预估的情况不完全一致,甚至出现较大差异的情况,我们如何模拟出真实的压力流量,可以借助工具,例如早期用得较多的是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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
流量回放工具goreplay是一个开源的工具,它可以用来记录和回放HTTP/HTTPS流量。如果你想要进行压测并统计结果,可以对goreplay进行一些改造。 首先,你需要安装goreplay并启动它来进行流量录制和回放。然后,你可以使用一个脚本来发送请求并记录响应时间。以下是一个示例脚本: ```bash #!/bin/bash while read line; do url=$(echo $line | cut -d ' ' -f 2) time=$(curl -o /dev/null -s -w %{time_total} $url) echo $time >> response_times.log done < urls.txt ``` 这个脚本从一个名为urls.txt的文件中读取URL,并使用curl发送请求并记录响应时间。响应时间被写入response_times.log文件中。 一旦你有了响应时间的记录,你可以使用其他工具来进行统计和分析。例如,你可以使用awk命令来计算平均响应时间: ```bash awk '{sum+=$1} END {print "Average response time: " sum/NR "s"}' response_times.log ``` 这个命令将response_times.log文件中的所有响应时间相加,然后除以记录数来计算平均响应时间。 你也可以使用其他工具,如Grafana、Prometheus和InfluxDB等来可视化和分析数据。例如,你可以使用Grafana来创建一个响应时间的实时监控面板。 改造goreplay支持压测统计是可行的,但需要一定的技术水平和时间投入。你需要了解golang和HTTP/HTTPS协议,并对goreplay的代码进行修改。如果你需要更加专业的支持,可以考虑向goreplay的开发团队寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值