0
点赞
收藏
分享

微信扫一扫

软件测试学习笔记丨gor流量录制回放

yundejia 03-11 19:45 阅读 1

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29814

一, goreplay 介绍

  • GoReplay 是一个开源工具,用于捕获实时 HTTP 流量并将其重播到测试环境中,以便使用真实数据持续测试您的系统。 它可用于增加对代码部署、配置更改和基础架构更改的信心。
  • GoReplay 是一个开源的网络监控工具,可以记录您的实时流量,并将其用于跟踪、负载测试、监控和详细分析。
  • GoReplay 是一种创新的开源解决方案,它允许您捕获现有用户的活动并将其重新用于测试您的应用程序。使用 GoReplay,您可以执行跟踪、负载测试或详细分析和监控

软件测试学习笔记丨gor流量录制回放_github

二, goreplay 下载安装

2.1 下载路径:

  • 预编译版本 https://github.com/buger/goreplay/releases
  • 编译代码 https://github.com/buger/goreplay
  • 容器版本比较老旧 https://hub.docker.com/search?q=goreplay&type=image

2.2 安装解压

  • 将下载的包通过xftp传输到linux对应的文件目录下
  • 进行解压缩:tar -C /usr/local -zxvf go1.16.4.linux-amd64.tar.gz
  • 配置环境变量:
  • 打开profile文件: vim /etc/profile
  • 配置变量:

export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin

  • 编译配置文件: source /etc/profile
  • 查看是否配置成功:go version

三, gor工具的使用

  • 演练环境:
  • dev 环境 http://127.0.0.1:8001
  • stage 环境 http://127.0.0.1:8002
  • prod 环境 http://127.0.0.1:8000

3.1 核心参数

  • input 参数
  • –input-raw :用来捕捉http流量,需要指定ip地址和端口
  • –input-file : 接收流量
  • –input-http :用来捕捉http流量,需要指定ip地址和端口
  • –input-tcp :将多个Goreplay实例获取的流量聚集到一个Goreplay实例
  • –input-raw-track-response
  • output 参数
  • –output-http :流量释放的对象server,需要指定IP地址和端口
  • –output-file : 录制流量时指定的存储文件
  • –output-tcp :将获取的流量转移至另外的Goreplay实例
  • –output-stdout :终端输出

3.2 监听模式 - 捕获服务器流量保存到本地

  • 捕捉prod环境的流量并通过终端输出 : sudo ./gor --input-raw :8000 --output-stdout
  • 捕捉prod环境的流量并保存至本地文件 :sudo ./gor --input-raw :8000 --output-file=requests.gor

3.3 转发模式 - 将捕获的流量转发到stage环境

  • 将prod环境的流量转发到stage环境: sudo ./gor --input-raw :8000 --output-http="http://localhost:8002"
  • 将prod环境存放的文件中的流量转发到stage环境服务器: gor --input-file requests.gor --output-http="http://localhost:8001"

3.4 性能模式

  • 指定流量的百分比,用来控制放大或者缩小流量: gor --input-file "requests.gor|200%" --output-http "staging.com" ——200%表示放大2倍

3.5 请求过滤

gor --input-raw :8080 --output-http staging.com  --http-allow-url /api                 ——指定URL,只同步/api路径下的请求

gor --input-raw :8080 --output-http staging.com  --http-disallow-url /api             ——同步除了/api路径下的其他请求

gor --input-raw :8080 --output-http staging.com \
    --http-allow-header api-version:^1.0\d                    ——允许的header请求头

gor --input-raw :80 --output-http "http://staging.server" --http-allow-method GET \                                  
    --http-allow-method                                                 ——允许的请求方法

3.6 请求重写

gor --input-raw :8080 --output-http staging.com  --http-rewrite-url /v1/user/([^\/]+)/ping:/v2/user/$1/ping
                                ——重写请求url,转发到staging.com环境时,url将变成重写的url
gor --input-raw :8080 --output-http staging.com --http-set-param api_key=1
                               ——重新设置url参数
gor --input-raw :80 --output-http "http://staging.server" --http-header "User-Agent: Replayed by Gor" \
    --http-header "Enable-Feature-X: true"
                               ——重新设置Header

举报

相关推荐

0 条评论