使用真实流量请求进行系统测试

对测试环境进行测试时,如果能使用线上环境真实的请求进行测试的话,是不是更好些 GoReplay 就可以用来捕获真实的HTTP请求,并进行回放 在线上环境中使用 GoReplay 来收集请求,可以实时转给测试环境,也可以保存为文件,然后拿到测试环境进行回放 GoReplay 在进行请求回放时,会模拟真实情况,例如 request1 和 request2 间隔了 3 秒,回放时,也会保留这3秒的间隔,可以准确呈现访问的负载状况 GoReplay 收集请求时,可以进行过滤,只收集自己关心的请求 回放时,还可以调整速度,例如想以真实环境下的2倍速度进行压力测试,设置一下回放速率即可 使用示例

  • 实时转发

例如 8000 端口运行的是线上系统,8001 端口运行的是测试系统 ./gor --input-raw :8000 --output-http="http://localhost:8001" 把 8000 端口的请求都输出到后面的地址

执行后就监听并转发,直到退出

  • 录制回放

录制 ./gor --input-raw :8000 --output-file=requests.gor --output-file 参数指定了保存到哪个文件

执行后,就开始监听记录,直到退出 退出后,在当前目录下生成了一个 requests_0.gor 文件 回放 ./gor --input-file requests_0.gor --output-http="http://localhost:8001" --input-file 指定要回放哪个文件,后面跟上文件名 --output-http 就是要把请求发送到什么地址

  • 请求过滤

例如只收集 /api 下的请求 ./gor --input-raw :8080 --output-http staging.com --http-allow-url /api 例如只收集请求头中符合 api-version 为 1.0x 的请求 ./gor --input-raw :8080 --output-http staging.com --http-allow-header api-version:^1\.0\d

  • 回放速度调整

例如使用2倍速度进行回放 ./gor --input-file "requests.gor|200%" --output-http "staging.com" 安装测试 下载地址 https://github.com/buger/gor/releases 下载并解压 gor_v0.15.1_x64.tar.gz 后,是一个 gor 可执行文件,就可以直接用了 为了便于马上实验,GoReplay 提供了一个简单的 web server ./gor file-server :8000 在浏览器中访问 http://localhost:8000 可以列出本地文件列表 使用这个server和不同的端口,就模拟出了不同的环境,方便实践 GoReplay 的用法 官网 https://goreplay.org ,有详细的使用文档

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2016-09-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始学自动化测试

pytest文档26-conftest.py作用范围

一个测试工程下是可以有多个conftest.py的文件,一般在工程根目录放一个conftest.py起到全局作用。 在不同的测试子目录也可以放conftest....

8184
来自专栏L宝宝聊IT

部署Tomcat及其负载均衡示例

1213
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(十一)SVN服务器进阶

前言 上一篇文章《Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建》简单的讲了一下SVN服务器的搭建,并没有详细的介绍配...

31810
来自专栏web编程技术分享

【php增删改查实例】第二十五节 - 在main.php中显示头像

1943
来自专栏皮振伟的专栏

linux、kernel 使用 systemtap 分析 sys_clone 失败的原因

linux 操作系统的 sys_clone失败并不是常见问题,通常也没有太好的办法来分析。 文章中,介绍使用 systemtap 来分析一次 sys_clone...

4461
来自专栏linux系统运维

NFS介绍,NFS服务端安装配置,NFS配置选项

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在...

4195
来自专栏雨过天晴

原 荐 IntelliJ IDEA系列编辑器

3653
来自专栏电光石火

如何让nginx显示文件夹目录

vi /etc/nginx/conf.d/default.conf

21410
来自专栏菩提树下的杨过

msmq在Internet上访问的问题(只能发送,不能接收)

今天测试了一下,message queue的private队列,在internet上可以发送,只要知道服务端的IP地址即可(当然服务端的队列权限要给足) 注意:...

20510
来自专栏云计算教程系列

如何在FreeBSD 10.1上安装MongoDB

MongoDB是一个免费的开源NoSQL数据库。它是当今Web应用程序中最常用的数据库之一,因为它在数据库模式设计中提供了高性能,可伸缩性和大量灵活性。在本教程...

1680

扫码关注云+社区

领取腾讯云代金券