Web 应用性能和压力测试工具 Gor

常见的 Web 应用的压力测试工具

Web 应用压力测试工具有很多,比如 Apache ab,node-ab,Apache JMeter, LoadRunner, httperf。但是这些工具都没能解决一个问题:

如何正确模拟生产环境的流量

如今 Web 应用的架构变得非常复杂,内部包含复杂的各种负载均衡、 服务和 RPC 调用关系,简单的发送 GET 请求到某些 URL 或者 API 接口完全无法模拟真实的流量。假如回放 HTTP 日志,操作又异常麻烦。Tcpcopy 虽然能够复制实时流量,但是操作也很复杂。之前的 亚马逊云平台的迁移 就用到了 Gor 这个工具。

Gor 是 Web 应用压力测试的完美方案

我一直在找一个简单又方便的解决方案,直到找到了 Gor (https://github.com/buger/gor/releases/tag/0.10.0)。Gor 是用 Golang 写的一个 HTTP 实时流量复制工具。只需要在 LB 或者 Varnish 入口服务器上执行一个进程,就可以把生产环境的流量复制到任何地方,比如 Staging 环境、Dev 环境。完美解决了 HTTP 层实时流量复制和压力测试的问题。

Gor 的功能

Gor 支持流量的放大和缩小、频率限制,这样不需要搭建和生产环境一致的服务器集群也可以正确测试。Gor 还支持根据正则表达式过滤流量,这意味着可以单独测试某个 API 服务。还可以修改 HTTP 请求头,比如替换 User-Agent, 或者增加某些 HTTP Header 。

Gor 还可以把请求记录到文件,以备回放和分析。Gor 支持和 ElasticSearch 集成,将流量存入 ES 进行实时分析。

Gor 的常用命令

简单的 HTTP 流量复制:

gor –input-raw :80 –output-http “http://staging.com”

HTTP 流量复制频率控制:

gor –input-tcp :28020 –output-http “http://staging.com|10″

HTTP 流量复制缩小:

gor –input-raw :80 –output-tcp “replay.local:28020|10%”

HTTP 流量记录到本地文件:

gor –input-raw :80 –output-file requests.gor

HTTP 流量回放和压测:

gor –input-file “requests.gor|200%” –output-http “staging.com”

HTTP 流量过滤复制:

gor –input-raw :8080 –output-http staging.com –output-http-url-regexp ^www.

从指定端口上捕捉流量

1
2
3
4
5

# Run on servers where you want to catch traffic. You can run it on each `web` machine.
sudo gor --input-raw :80 --output-tcp replay.local:28020
# Replay server (replay.local).
gor --input-tcp replay.local:28020 --output-http http://staging.com

保存到文件中

1
2
3
4
5

#writetofile
gor--input-raw:80--output-filerequests.gor
#readfromfile
gor--input-filerequests.gor--output-http"http://staging.com"

注入改变请求流量header

1
2
3

gor--input-raw:80--output-http"http://staging.server"\
    --output-http-header"User-Agent: Replayed by Gor"\
    --output-http-header"Enable-Feature-X: true"

最后

这个 Golang 写的 Gor 是开源的,意味着可以方便的集成到自己的架构中,可以用在压力测试平台、实时流量分析、应用层防火墙等等方面。

项目地址

https://github.com/buger/gor

http://leonsbox.com/blog/2013/06/04/improving-testing-by-using-real-traffic-from-production/

Web 应用性能和压力测试工具 Gor相关推荐

  1. php 压测流量回放,终极 Web 应用性能和压力测试工具 Gor

    常见的 Web 应用的压力测试工具 Web 应用压力测试工具有很多,比如 Apache ab,node-ab,Apache JMeter, LoadRunner, httperf.但是这些工具都没能解 ...

  2. 终极Web应用性能和压力测试工具Gor

    什么是Gor 项目地址:https://github.com/buger/gor 官方描述 Gor is a simple http traffic replication tool written ...

  3. Windows开源Web服务器性能和压力测试工具

    linux有很多开源工具用来测试服务器负载,而windows上非常少,几乎没有除了几个复杂的JMeter WET等 将两个好用的工具是Linux版本通过Cygwin移植过来,方便广大windows人员 ...

  4. php 压测流量回放,Web流量复制和压力测试工具Gor

    Gor概述 Gor 是用 Golang 写的一个 HTTP 实时流量复制工具.只需要在 LB 或者 Varnish 入口服务器上执行一个进程,就可以把生产环境的流量复制到任何地方,比如 Staging ...

  5. 1 网站压力测试工具 WEB性能测试 Web Bench

    Web Bench  (网站压力测试工具) Web Bench是有名的网站压力测试工具,它是由 Lionbridge公司开发. Web Bench最多可以模拟3万个并发连接去测试网站的负载能力. We ...

  6. Web性能压力测试工具——Siege详解

    Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行. ...

  7. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般 ...

  8. Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程

    Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论 一.http_load 程序非常 ...

  9. Web性能压力测试工具之WebBench详解

    在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试的结果 ...

最新文章

  1. 用execSQL语句建表时提示“syntax error”原因及解决方法
  2. 分布式日志收集系统--Chukwa
  3. Android绑定多个aidl,android aidl 多`module`版的实现
  4. windowsXP用VNC客户端连接centos6桌面后再用tsclient连接windows2003/2008桌面
  5. ER TO SQL语句
  6. 基于Linux的 Open×××网络之网络架构应用实例
  7. ADO.NET、ODP.NET、Linq to SQL、ADO.NET Entity 、NHibernate在Oracle下的性能比较
  8. 【Pytorch神经网络理论篇】 09 神经网络模块中的损失函数
  9. MySQL的外键约束
  10. linux diff 补丁,Linux中diff、补丁的用法及介绍
  11. 人脸检测(六)--haar分类器代码理解
  12. 【如何快速的开发一个完整的iOS直播app】(原理篇)
  13. 自动化专业向往硬件方面靠,有什么好的建议?
  14. python数据拟合方法_Python-最小二乘法曲线拟合
  15. CentOS7创建桌面快捷方式
  16. Minimum-Cost Spanning Tree
  17. 怎么添加计算机到网络共享中心,主编教您怎么设置局域网共享
  18. 固态硬盘SSD使用随笔
  19. 北美科技公司“隐藏福利”大盘点:看完我彻底酸了...
  20. 文件查找工具Everything的上下文菜单配置

热门文章

  1. 给10年考博上海交大安泰经济、金融考生一些建议!【zz】
  2. Python【进程和线程】保姆式教学,1个台机子多只手干活的秘籍
  3. 一文了解|氢燃料电池行业痛点问题
  4. 第13章 统一的数据访问异常层次体系
  5. hexo搭建Gitcafe博客(专栏)
  6. 产业互联网平台建设的策略
  7. pytorch计算分类验证精度acc1,acc5代码
  8. 中科院拓扑量子计算机,中国科大等利用量子模拟技术实现拓扑数的直接测量
  9. 重申差异决定了变化,最终解决老婆 IE崩溃问题
  10. 【调剂】桂林电子科技大学计算机与信息安全学院2023年硕士研究生招生复试录取办法...