告别繁琐的测试脚本编写,使用goreplay流量回放真爽
首先什么是goreplay?参照官方介绍GoReplay is the simplest and safest way to test your app using real traffic before you put it into production.GoReplay提供了重用现有流量进行测试的简单想法。
01 What
首先什么是goreplay?
参照官方介绍
GoReplay is the simplest and safest way to test your app using real traffic before you put it into production.
GoReplay提供了重用现有流量进行测试的简单想法。
大致工作流程如下:
简单来说就是goreplay抓取线上真实的流量,并将捕捉到的流量转发到测试服务器上。
02 When
什么时候可以试用goreplay?
简单写几点场景,具体还是根据实际需求来。
Case 1
上线前在预发布环境,使用线上真实的请求,检查是否准备发布的版本,是否具备发布标准
Case 2
压力测试完成后,用线上真实的请求,加速后回放至测试环境,检查是否有报错等问题
Case 3
abtest
用线上的流量转发到预发,检查相同流量下一些指标的反馈情况,检查核心数据是否有改善、优化等等
具体case还需要根据自己的需求,灵活改变。
03 How
上面大致说了goreplay是什么以及什么场景可以用,下面记录一下自己的实践过程。
首先需要线上服务器root权限,这个需要谨慎使用!!!
1.下载安装goreplay
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 打印到控制台
-output-file 将请求写到文件中 gor --input-raw:80 --output-file ./requests.gor
-input-file 从文件中读取请求,与上一条命令呼应 gor --input-file ./requests.gor
-exit-after 5s 持续时间
-http-allow-url url白名单,其他请求将会被丢弃
-http-allow-method 根据请求方式过滤
-http-disallow-url 遇上一个url相反,黑名单,其他的请求会被捕获到
实践一下
捕获2051端口的请求打印到控制台
隐藏了部分敏感信息
将请求保存到本地文件中
sudo ./gor --input-raw :2051 --http-allow-url /recommend_you_like --output-file ./recommend_you_like.gor
只筛选recommend_you_like接口的请求,保存在本地文件中
这边实际上是两个实践
第一个:保存流量到文件
第二个:抓取置顶url的流量
截图可以看到生成了一个文件
转发文件中流量至测试环境
sudo ./gor --input-file ./recommend_you_like_0.gor --output-http="http://172.1.1.1:2051"
至测试环境的服务器上,查看日志可以到流量已经转发过来
04 性能测试
udo ./gor --input-file “./recommend_you_like_0.gor|200%” --output-http="http://172.1.1.1:2051"
将请求以2倍的速度发出去,同时也支持限速 10% 20%等
关于限速还有另一种方法——指定每秒的请求
sudo ./gor --input-file “./recommend_you_like_0.gor” --output-http="http://172.1.1.1:2051|50"
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
更多推荐
所有评论(0)